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 предоставляется своим партнерам как надежная и бесплатная альтернатива с открытым исходным кодом для их доверенной среды выполнения. Trusty предлагает уровень прозрачности, который просто невозможен в системах с закрытым исходным кодом.
Android поддерживает различные реализации TEE, поэтому вы не ограничены использованием Trusty. Каждая ОС TEE имеет свой собственный уникальный способ развертывания доверенных приложений. Эта фрагментация может стать проблемой для доверенных разработчиков приложений, пытающихся обеспечить работу своих приложений на каждом устройстве Android. Использование Trusty в качестве стандарта помогает разработчикам приложений легко создавать и развертывать приложения без учета фрагментации нескольких систем TEE. Trusty TEE обеспечивает разработчикам и партнерам прозрачность, сотрудничество, возможность проверки кода и простоту отладки. Доверенные разработчики приложений могут объединиться вокруг общих инструментов и API, чтобы снизить риск появления уязвимостей безопасности. Эти разработчики будут уверены, что смогут разработать приложение и повторно использовать его на нескольких устройствах без дальнейшей разработки.
Приложения и услуги
Приложение Trusty определяется как набор двоичных файлов (исполняемых файлов и файлов ресурсов), двоичного манифеста и криптографической подписи. Во время выполнения приложения Trusty выполняются как изолированные процессы в непривилегированном режиме под ядром Trusty. Каждый процесс выполняется в своей собственной изолированной программной среде виртуальной памяти, используя возможности блока управления памятью процессора TEE. Сборка оборудования меняет точный процесс, которому следует Trusty, но, например, ядро планирует эти процессы с помощью циклического планировщика на основе приоритетов, управляемого тактом безопасного таймера. Все приложения Trusty имеют одинаковый приоритет.
Сторонние приложения Trusty
В настоящее время все приложения Trusty разрабатываются одной стороной и упаковываются с образом ядра Trusty. Весь образ подписывается и проверяется загрузчиком во время загрузки. В настоящее время в Trusty не поддерживается разработка сторонних приложений. Хотя Trusty позволяет разрабатывать новые приложения, делать это необходимо с особой осторожностью; каждое новое приложение увеличивает площадь доверенной вычислительной базы (TCB) системы. Доверенные приложения могут получать доступ к секретам устройства и выполнять с их помощью вычисления или преобразования данных. Возможность разрабатывать новые приложения, работающие в TEE, открывает множество возможностей для инноваций. Однако из-за самого определения TEE эти приложения не могут распространяться без присоединения той или иной формы доверия. Обычно это делается в виде цифровой подписи лица, которому доверяет пользователь продукта, на котором работает приложение.
Использование и примеры
Доверенные среды выполнения быстро становятся стандартом для мобильных устройств. Пользователи все больше и больше полагаются на свои мобильные устройства в повседневной жизни, и потребность в безопасности постоянно растет. Мобильные устройства с TEE более безопасны, чем устройства без TEE.
На устройствах с реализацией TEE главный процессор часто называют «недоверенным», что означает, что он не может получить доступ к определенным областям ОЗУ, аппаратным регистрам и предохранителям однократной записи, где хранятся секретные данные (например, криптографические ключи для конкретного устройства). хранится у производителя. Программное обеспечение, работающее на главном процессоре, делегирует любые операции, требующие использования секретных данных, процессору TEE.
Наиболее широко известным примером этого в экосистеме Android является платформа DRM для защищенного контента. Программное обеспечение, работающее на процессоре TEE, может получить доступ к ключам конкретного устройства, необходимым для расшифровки защищенного контента. Главный процессор видит только зашифрованный контент, обеспечивая высокий уровень безопасности и защиты от программных атак.
Существует множество других применений TEE, таких как мобильные платежи, безопасные банковские операции, многофакторная аутентификация, защита от перезагрузки устройства, постоянное хранилище с защитой от повторного воспроизведения, безопасная обработка PIN-кода и отпечатков пальцев и даже обнаружение вредоносного ПО.