Trusty — это безопасная операционная система (ОС), предоставляющая доверенную среду выполнения (TEE) для Android. ОС Trusty работает на том же процессоре, что и ОС Android, но Trusty изолирована от остальной системы как аппаратно, так и программно. Trusty и Android работают параллельно. Trusty имеет доступ ко всей мощности основного процессора и памяти устройства, но при этом полностью изолирована. Изоляция Trusty защищает её от вредоносных приложений, установленных пользователем, и потенциальных уязвимостей в Android.
Trusty совместим с процессорами ARM и Intel. В системах ARM Trusty использует TrustZone от ARM для виртуализации основного процессора и создания защищенного TEE. Аналогичная поддержка также доступна на платформах Intel x86 с использованием технологии виртуализации Intel.

Рисунок 1. Общая схема системы Trusty.
В состав Trusty входят:
- Небольшое ядро операционной системы, созданное на основе Little Kernel.
- Драйвер ядра Linux для передачи данных между защищенной средой и Android.
- Библиотека пользовательского пространства Android для взаимодействия с доверенными приложениями (то есть, с безопасными задачами и службами) через драйвер ядра.
Примечание: Trusty и Trusty API могут быть изменены. Для получения информации о Trusty API см. справочник по Trusty API .
Преимущества Trusty
Другие операционные системы TEE традиционно поставляются в виде бинарных файлов сторонними поставщиками или разрабатываются внутри компании. Разработка собственных систем TEE или лицензирование TEE у стороннего поставщика может быть дорогостоящим для производителей систем на кристалле (SoC) и OEM-производителей. Финансовые затраты в сочетании с ненадежными системами сторонних поставщиков создают нестабильную экосистему для Android. Trusty предоставляется своим партнерам как надежная и бесплатная альтернатива с открытым исходным кодом для их TEE. Trusty предлагает уровень прозрачности, недоступный для систем с закрытым исходным кодом.
Android поддерживает различные реализации TEE, поэтому вы не ограничены использованием Trusty. Каждая ОС с поддержкой TEE имеет свой уникальный способ развертывания доверенных приложений. Эта фрагментация может стать проблемой для разработчиков доверенных приложений, стремящихся обеспечить их работу на каждом устройстве Android. Использование Trusty в качестве стандарта помогает разработчикам приложений создавать и развертывать приложения, не учитывая фрагментацию множества систем TEE. Trusty TEE обеспечивает разработчикам и партнерам прозрачность, возможность совместной работы, возможность проверки кода и простую отладку. Разработчики доверенных приложений могут использовать общие инструменты и API, чтобы снизить риск появления уязвимостей безопасности. Эти разработчики могут с уверенностью разрабатывать приложения и повторно использовать их на нескольких устройствах без дополнительной доработки.
Приложения и сервисы
Приложение Trusty представляет собой набор бинарных файлов (исполняемых файлов и файлов ресурсов), бинарного манифеста и криптографической подписи. Во время выполнения приложения Trusty работают как изолированные процессы в непривилегированном режиме под управлением ядра Trusty. Каждый процесс работает в своей собственной виртуальной песочнице памяти, используя возможности блока управления памятью процессора TEE. Конструкция оборудования изменяет точный порядок выполнения процессов Trusty, но, например, ядро планирует эти процессы с помощью планировщика на основе приоритетов, работающего по принципу циклического распределения и управляемого безопасным таймером. Все приложения Trusty имеют одинаковый приоритет.

Рисунок 2. Обзор приложения Trusty.
Сторонние приложения Trusty
Все приложения Trusty разрабатываются одной компанией и поставляются вместе с образом ядра Trusty. Весь образ подписывается и проверяется загрузчиком во время загрузки. Разработка приложений сторонними компаниями в Trusty не поддерживается. Хотя Trusty позволяет разрабатывать новые приложения, делайте это с предельной осторожностью; каждое новое приложение увеличивает область доверенной вычислительной базы (TCB) системы. Доверенные приложения могут получать доступ к секретам устройства и выполнять вычисления или преобразования данных, используя их. Возможность разработки новых приложений, работающих в TEE, открывает множество возможностей для инноваций. Однако, в силу самого определения TEE, эти приложения не могут распространяться без какой-либо формы доверия. Это доверие выражается в виде цифровой подписи организации, которой доверяет пользователь продукта, на котором работает приложение.
Примеры и варианты использования
TEE-модули становятся стандартом в мобильных устройствах. Пользователи все больше полагаются на свои мобильные устройства в повседневной жизни, и потребность в безопасности растет. Мобильные устройства с TEE-модулем более защищены, чем устройства без TEE-модуля.
На устройствах с реализацией TEE основной процессор часто называют *недоверенным*, что означает, что он не может получить доступ к определенным областям ОЗУ, аппаратным регистрам и предохранителям однократной записи, где производитель хранит секретные данные (например, криптографические ключи, специфичные для устройства). Программное обеспечение, работающее на основном процессоре, делегирует любые операции, требующие использования секретных данных, процессору TEE.
Наиболее известным примером этого в экосистеме Android является система DRM для защищенного контента. Программное обеспечение, работающее на процессоре TEE, может получать доступ к ключам, специфичным для устройства, необходимым для расшифровки защищенного контента. Основной процессор видит только зашифрованный контент, что обеспечивает высокий уровень безопасности и защиты от программных атак.
Технология TEE находит применение и в других областях, таких как мобильные платежи, безопасное банковское обслуживание, многофакторная аутентификация, защита от сброса настроек устройства, защищенное от повторного воспроизведения постоянное хранилище, безопасная обработка PIN-кодов и отпечатков пальцев, и даже обнаружение вредоносных программ.