Первая открытая реализация анклава для аппаратно изолированных окружений

Представлен первый выпуск проекта 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.

©  OpenNet