Google анонсировал Asylo, универсальный фреймворк для защищённых анклавов
6 мая 2018 года
Представлен новый открытый фреймворк Asylo, при помощи которого можно легко адаптировать приложения для выноса части функциональности, требующей повышенной защиты, на сторону защищённого анклава ( TEE, Trusted Execution Environment). Код фреймворка написан на языке С++ и распространяется под лицензией Apache 2.0. Фреймворк подготовлен компанией Google, но не является официально поддерживаемым продуктом Google. Для упрощения разработки предлагаются образы Docker-контейнеров с реализацией готового сборочного окружения и среды для тестирования работы анклавов.
Использование анклавов подразумевает разбиение приложения на две логические части: небольшой верифицированный защищённый компонент для анклава (например, код для работы с секретными данными) и незащищённый компонент (остальной код приложения). Asylo абстрагирует функциональность анклавов и позволяет создавать переносимые приложения, которые могут быть портированы для разных технологий анклавов без изменения кода программы. Использующая Asylo программа может сохранять возможность изолированного выполнения конфиденциальных вычислений в различных окружениях, в которых применяются аппаратные или программные технологии изоляции.
Для выполнения в анклаве, например, может быть вынесен код для шифрования, аутентификации, работы с конфиденциальными данными, ключами и паролями. В качестве базового набора примитивов шифрования, которые могут использоваться в анклаве, предлагается BoringSSL (форк OpenSSL). Кроме того Asylo предоставляет API для управления анклавом (Enclave Manager, Enclave Client), набор POSIX-функций для применения в анклаве, средства для идентификации и авторизации, API для защищённого ввода/вывода и виртуализации доступа к ФС, поддержку Protocol Buffers и gRPC c протоколом EKEP (Enclave Key Exchange Protocol).
Основными задачами, которые ставятся при использовании анклавов, являются защита выполняемого в анклаве кода от компрометации основной системы и эксплуатации уязвимостей в окружении вне анклава, обеспечение конфиденциальности и целостности хранимой в анклаве информации, гарантия целостности анклава в процессе выполнения кода. Применение анклавов также позволяет защитить приложения, работающие с конфиденциальными данными, от саботажа администраторов или доступа третьих лиц, в условиях применения совместно используемых инфраструктур виртуализации и облачных систем.
Из аппаратных механизмов изоляции в Asylo пока поддерживается только технология Intel SGX. В будущих выпусках обещают добавить поддержку и других систем, таких как ARM TrustZone, AMD PSP (Platform Security Processor) и AMD SEV (Secure Encryption Virtualization). Программные механизмы формирования анклавов основаны на применении технологий виртуализации.
В контексте технологии Intel SGX анклав представляет собой закрытые области памяти, в которых может выполняться код приложений пользовательского уровня, содержимое которых не может быть прочитано и изменено даже ядром и кодом, выполняемым в режимах ring0, SMM и VMM. Передать управление коду в анклаве невозможно традиционными функциями перехода и манипуляциями с регистрами и стеком - для передачи управления в анклав применяется специально созданная новая инструкция, выполняющая проверку полномочий. При этом помещённый в анклав код может применять классические методы вызова для обращения к функциям внутри анклава и специальную инструкцию для вызова внешних функций. Для защиты от аппаратных атак, таких как подключение к модулю DRAM, применяется шифрование памяти анклава.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.