Первая открытая реализация анклава для создания аппаратно изолированных окружений
Представлен первый выпуск проекта Keystone, в рамках которого подготовлен набор спецификаций и программных интерфейсов для встраивания функциональности защищенных анклавов в чипы на базе архитектуры RISC-V. Наработки проекта распространяются под лицензией BSD. Проект развивается исследовательской группой из Калифорнийского университета в Беркли при участии исследователей из Массачусетского технологического института.
Анклав (TEE, Trusted Execution Environment) подразумевает предоставление процессоров специальной изолированной области, которая позволяет вынести часть функциональности приложений и операционной системы в отдельное окружение, содержимое памяти и выполняемый код в котором недоступны из основной системы, независимо от уровня имеющихся привилегий. Для своего выполнения в анклав могут перемещаться реализации различных алгоритмов шифрования, функции обработки закрытых ключей и паролей, процедуры аутентификации, код для работы с конфиденциальными данными.
В случае компрометации основной системы злоумышленник не сможет определить хранимую в анклаве информацию и будет ограничен лишь внешним программным интерфейсом. Применение аппаратных анклавов может рассматриваться как альтернатива применению для защиты вычислений методов на основе гомоморфного шифрования или протоколов конфиденциального вычисления, но в отличие от данных технологий анклав практически не влияет на производительность вычислений с конфиденциальными данными и существенно упрощает разработку.
Keystone может рассматриваться как открытая альтернатива таким решениям, как Intel SGX (Software Guard Extensions), ARM TrustZone и AMD PSP (Platform Security Processor). Достоинством предлагаемого открытого решения является полная доступность для аудита на всех уровнях, в отличие от вышеупомянутых решений, полагающихся на принцип "security by obscurity" (безопасность через скрытие внутренней реализации). Как показала практика, подход основанный на ограничении не оградил Intel SGX, ARM TrustZone и AMD PSP от критических уязвимостей.
Разработанные в рамках проекта Keystone спецификации позволяют интегрировать функциональность анклава в любой процессор на базе архитектуры RISC-V с минимальным числом вносимых изменений, обеспечивающих аппаратную изоляцию. Изменения касаются обеспечения физической изоляции доступа к памяти и изоляции таблиц страниц памяти. Для защиты от физических атак (анализ чипов памяти) содержимое памяти анклава и передаваемые по шине адреса шифруются. Для защиты от атак по сторонним каналам применяется полностью изолированная архитектура.
Для разработки приложений, выносящих часть функциональности и данных в анклав, предлагается специальный SDK. Проектом также развивается модифицированный вариант ядра Linux, минимальный runtime, загрузчик с поддержкой верификации загружаемого кода по цифровой подписи и специальное программное окружение, формирующие операционную систему анклава, набор утилит для верификации окружений и генерации цифровых подписей. Для тестирования разрабатываемых анклавов предоставляются эмулятор на базе QEMU и аппаратный симулятор на базе FireSim, использующий платы FPGA.