Trusty — это безопасная операционная система (ОС), которая предоставляет доверенную среду выполнения (TEE) для Android. ОС Trusty работает на том же процессоре, что и ОС Android, но Trusty изолирована от остальной системы как аппаратно, так и программно. Trusty и Android работают параллельно. Trusty имеет доступ к полной мощности основного процессора и памяти устройства, но полностью изолирован. Изоляция Trusty защищает его от установленных пользователем вредоносных приложений и потенциальных уязвимостей, которые могут быть обнаружены в Android.
Trusty совместим с процессорами ARM и Intel. В системах ARM Trusty использует Trustzone™ от ARM для виртуализации основного процессора и создания безопасной доверенной среды выполнения. Аналогичная поддержка также доступна на платформах Intel x86 с использованием технологии виртуализации Intel.
Верный состоит из:
- Небольшое ядро ОС, полученное из Little Kernel .
- Драйвер ядра Linux для передачи данных между защищенной средой и Android.
- Библиотека пользовательского пространства Android для связи с доверенными приложениями (то есть безопасными задачами/службами) через драйвер ядра.
Примечание. Trusty и Trusty API могут быть изменены. Для получения информации о Trusty API см. Справочник по API.
Почему Трасти?
Другие операционные системы TEE традиционно поставляются в виде двоичных двоичных объектов сторонними поставщиками или разрабатываются внутри компании. Разработка внутренних систем TEE или лицензирование TEE у третьей стороны может быть дорогостоящим для поставщиков систем на кристалле (SoC) и OEM-производителей. Денежные затраты в сочетании с ненадежными сторонними системами создают нестабильную экосистему для Android. Trusty предоставляется своим партнерам в качестве надежной и бесплатной альтернативы с открытым исходным кодом для их Trusted Execution Environment. Trusty предлагает уровень прозрачности, который просто невозможен в системах с закрытым исходным кодом.
Android поддерживает различные реализации TEE, поэтому вы не ограничены использованием Trusty. Каждая ОС TEE имеет свой уникальный способ развертывания доверенных приложений. Эта фрагментация может стать проблемой для доверенных разработчиков приложений, пытающихся обеспечить работу своих приложений на всех устройствах Android. Использование Trusty в качестве стандарта помогает разработчикам приложений легко создавать и развертывать приложения без учета фрагментации нескольких систем TEE. Trusty TEE предоставляет разработчикам и партнерам прозрачность, совместную работу, возможность проверки кода и простоту отладки. Надежные разработчики приложений могут объединить общие инструменты и API, чтобы снизить риск появления уязвимостей в системе безопасности. Эти разработчики будут уверены, что смогут разработать приложение и повторно использовать его на нескольких устройствах без дальнейшей разработки.
Приложения и сервисы
Приложение Trusty определяется как набор двоичных файлов (исполняемых файлов и файлов ресурсов), двоичного манифеста и криптографической подписи. Во время выполнения приложения Trusty работают как изолированные процессы в непривилегированном режиме под ядром Trusty. Каждый процесс работает в своей собственной изолированной программной среде виртуальной памяти, используя возможности модуля управления памятью процессора TEE. Сборка оборудования изменяет точный процесс, которому следует Trusty, но, например, ядро планирует эти процессы, используя циклический планировщик на основе приоритетов, управляемый тиком безопасного таймера. Все приложения Trusty имеют одинаковый приоритет.
Сторонние надежные приложения
В настоящее время все приложения Trusty разрабатываются одной стороной и упаковываются вместе с образом ядра Trusty. Весь образ подписывается и проверяется загрузчиком во время загрузки. В настоящее время разработка сторонних приложений в Trusty не поддерживается. Хотя Trusty позволяет разрабатывать новые приложения, делать это нужно с особой осторожностью; каждое новое приложение увеличивает площадь доверенной вычислительной базы (ТКБ) системы. Доверенные приложения могут получать доступ к секретам устройства и выполнять с их помощью вычисления или преобразования данных. Возможность разрабатывать новые приложения, работающие в TEE, открывает множество возможностей для инноваций. Однако из-за самого определения TEE эти приложения не могут распространяться без какой-либо формы доверия. Обычно это происходит в виде цифровой подписи лица, которому доверяет пользователь продукта, на котором работает приложение.
Использование и примеры
Доверенные среды выполнения быстро становятся стандартом для мобильных устройств. Пользователи все больше и больше полагаются на свои мобильные устройства в повседневной жизни, и потребность в безопасности постоянно растет. Мобильные устройства с TEE более безопасны, чем устройства без TEE.
На устройствах с реализацией TEE главный процессор часто называют «ненадежным», что означает, что он не может получить доступ к определенным областям ОЗУ, аппаратным регистрам и предохранителям с однократной записью, где хранятся секретные данные (например, криптографические ключи конкретного устройства). хранится у производителя. Программное обеспечение, работающее на основном процессоре, делегирует любые операции, требующие использования секретных данных, процессору TEE.
Наиболее широко известным примером этого в экосистеме Android является структура DRM для защищенного контента. Программное обеспечение, работающее на процессоре TEE, может получить доступ к ключам конкретного устройства, необходимым для расшифровки защищенного содержимого. Основной процессор видит только зашифрованный контент, обеспечивая высокий уровень безопасности и защиты от программных атак.
Существует множество других применений TEE, таких как мобильные платежи, безопасное банковское обслуживание, многофакторная аутентификация, защита от сброса устройства, постоянное хранилище с защитой от воспроизведения, безопасная обработка PIN-кода и отпечатков пальцев и даже обнаружение вредоносных программ.