ARM TrustZone
ARM TrustZone — это аппаратная технология безопасности, разработанная компанией ARM Holdings (ныне часть SoftBank Group), предназначенная для создания изолированной и доверенной среды выполнения (Trusted Execution Environment, TEE) на системах на кристалле (SoC) с архитектурой ARM. Она обеспечивает разделение ресурсов процессора, памяти и периферии между двумя независимыми мирами: «обычным» (Normal World), где работает основная операционная система (например, Android, iOS, Linux), и «безопасным» (Secure World), где функционирует доверенное программное обеспечение (Trusted OS или Secure Monitor). Технология встроена непосредственно в ядро процессора на уровне аппаратуры, что позволяет защищать критически важные операции, такие как обработка криптографических ключей, биометрическая аутентификация, цифровые платежи и управление цифровыми правами (DRM), от атак со стороны вредоносного ПО, работающего в основной ОС.
История и развитие
Технология ARM TrustZone была впервые представлена в 2004 году как часть архитектуры ARMv6K. Первоначально она была реализована в процессорах семейства ARM1176JZ(F)-S и предназначалась для встраиваемых устройств и мобильных телефонов. Основной целью было создание аппаратного барьера, который невозможно обойти программными средствами, в отличие от чисто программных решений изоляции.
С развитием архитектуры ARMv7-A (используемой в Cortex-A8, Cortex-A9, Cortex-A15) TrustZone стала стандартным компонентом для всех процессоров этого класса. В 2011 году ARM выпустила спецификацию TrustZone для архитектуры ARMv8-A (64-битные процессоры Cortex-A53, Cortex-A72 и другие), которая расширила возможности технологии, в том числе за счёт поддержки виртуализации и улучшенной работы с памятью.
В 2018 году ARM представила TrustZone для архитектуры ARMv8-M (микроконтроллеры Cortex-M23, Cortex-M33), что позволило применять технологию в устройствах интернета вещей (IoT) с ограниченными вычислительными ресурсами. Это расширение получило название TrustZone for Cortex-M и отличается упрощённой моделью безопасности, ориентированной на встраиваемые системы.
Архитектура и принцип работы
Два мира
Основой TrustZone является разделение всех аппаратных и программных ресурсов SoC на два изолированных «мира»:
- Normal World (обычный мир) — среда, в которой работает пользовательская операционная система (например, Android, Windows 10/11 на ARM, GNU/Linux) и все прикладные программы. Этот мир считается потенциально небезопасным.
- Secure World (безопасный мир) — изолированная среда, в которой работает доверенная операционная система (Trusted OS, например, OP-TEE, Trusty, QSEE) и доверенные приложения (Trusted Applications, TA). Доступ к ресурсам этого мира из Normal World строго контролируется.
Монитор безопасности
Переключение между мирами осуществляется через специальный программный компонент — монитор безопасности (Secure Monitor). Он работает в наиболее привилегированном режиме (EL3 в ARMv8-A) и обрабатывает запросы на переход из Normal World в Secure World (и обратно). Запрос обычно инициируется через специальную инструкцию SMC (Secure Monitor Call).
Аппаратная поддержка
- Процессор: В процессорах ARM добавлен новый бит состояния — NS (Non-Secure). Этот бит определяет, в каком мире в данный момент работает процессор. Вся память и периферия маркируются как принадлежащие одному из миров.
- Память: Контроллер памяти (например, AMBA/AXI шина) проверяет бит NS при каждом обращении к оперативной памяти. Память, помеченная как Secure, недоступна для чтения или записи из Normal World. Это реализуется через аппаратный модуль TZASC (TrustZone Address Space Controller).
- Периферия: Периферийные устройства (например, клавиатура, дисплей, криптографический ускоритель) могут быть подключены к шине с проверкой NS-бита. Устройство может быть настроено так, чтобы принимать команды только от Secure World или от обоих миров. Для управления этим используется TZPC (TrustZone Protection Controller).
- Кэш и TLB: Кэш-память и буфер ассоциативной трансляции (TLB) также маркируются битом NS, чтобы предотвратить утечку данных из Secure World при переключении контекста.
Виртуализация
В архитектуре ARMv8-A TrustZone интегрирована с поддержкой виртуализации. В Normal World может работать несколько виртуальных машин (гипервизор), а Secure World остаётся изолированным от них. Это позволяет строить системы с высокой степенью изоляции.
Классификация и реализации
По архитектуре процессора
- TrustZone for Cortex-A (ARMv7-A, ARMv8-A): Применяется в мобильных устройствах, планшетах, серверах, автомобильных системах. Обеспечивает высокую производительность и поддержку сложных ОС.
- TrustZone for Cortex-M (ARMv8-M): Используется в микроконтроллерах для IoT-устройств, датчиков, носимой электроники. Имеет упрощённую модель безопасности с фиксированным набором исключений и меньшими накладными расходами.
По типу доверенной ОС
- Qualcomm Secure Execution Environment (QSEE): Проприетарная реализация Trusted OS от Qualcomm, используемая в процессорах Snapdragon. Широко распространена в Android-устройствах.
- Trusty TEE: Открытая реализация от Google, используется в Android и Chrome OS.
- OP-TEE (Open Portable Trusted Execution Environment): Открытая реализация, поддерживаемая Linaro. Используется в различных встраиваемых и мобильных системах.
- Kinibi: Проприетарная реализация от Trustonic, часто применяется в банковских и платёжных приложениях.
Применение
Мобильные устройства и платежи
TrustZone является основой для таких технологий, как Apple Pay, Google Pay, Samsung Pay. Криптографические ключи, используемые для аутентификации платежей, хранятся и обрабатываются исключительно в Secure World. Даже если основная ОС скомпрометирована, злоумышленник не может получить доступ к этим ключам.
Биометрическая аутентификация
Обработка отпечатков пальцев, сканирование лица (Face ID) и радужной оболочки глаза выполняется в Secure World. Шаблоны биометрических данных хранятся в защищённой памяти и не передаются в Normal World. Это предотвращает их кражу или подмену.
Управление цифровыми правами (DRM)
Для защиты контента (фильмы, музыка, книги) от нелегального копирования используется TrustZone. Декодирование защищённого контента и управление ключами дешифрования происходит в Secure World, а вывод изображения на экран — через защищённый видеовыход.
Загрузка и обновление прошивки
TrustZone используется для реализации безопасной загрузки (Secure Boot). Доверенный загрузчик проверяет цифровую подпись ядра ОС и других компонентов перед их запуском. Это предотвращает запуск модифицированного или вредоносного ПО.
Автомобильные системы
В современных автомобилях TrustZone применяется для изоляции критически важных функций (например, управление двигателем, тормозной системой) от информационно-развлекательных систем (IVI). Это повышает безопасность и предотвращает несанкционированный доступ к управляющим блокам.
Критика и ограничения
Несмотря на высокий уровень безопасности, TrustZone не является панацеей. Основные ограничения включают:
- Уязвимости в Secure World: Если доверенная ОС (например, QSEE) содержит ошибки, злоумышленник может получить контроль над Secure World. Известны случаи эксплуатации уязвимостей в QSEE для обхода защиты DRM или кражи ключей.
- Сложность разработки: Создание и аудит доверенных приложений требует высокой квалификации и специализированных инструментов. Ошибки в коде TA могут привести к компрометации всей системы.
- Атаки по сторонним каналам: TrustZone не защищает от атак, основанных на анализе времени выполнения, энергопотребления или электромагнитного излучения (SPA/DPA, DFA). Для защиты от них требуются дополнительные аппаратные меры.
- Физический доступ: Если злоумышленник имеет физический доступ к устройству, он может использовать методы, такие как снятие чипа, инжекция ошибок (fault injection) или анализ шины, чтобы обойти TrustZone.
- Проблемы с производительностью: Переключение между мирами через SMC-вызовы требует времени, что может снижать производительность приложений, интенсивно использующих TEE.
Интересные факты
- Технология TrustZone является одной из наиболее широко распространённых аппаратных систем безопасности в мире — она используется в миллиардах устройств, от смартфонов до серверов.
- В 2019 году исследователи из компании Check Point обнаружили уязвимость в реализации TrustZone на процессорах Qualcomm, которая позволяла получить полный контроль над Secure World. Уязвимость была исправлена вендором.
- В некоторых реализациях TrustZone (например, в Samsung Knox) используется для создания корпоративных контейнеров, изолирующих рабочие данные от личных на одном устройстве.
Источники
- ARM Architecture Reference Manual ARMv8-A (Issue J.a).
- ARM TrustZone Technology Overview (ARM White Paper, 2005).
- Спецификация OP-TEE (Open Portable Trusted Execution Environment).
- Документация Qualcomm Secure Execution Environment (QSEE).
- Материалы конференций Black Hat и REcon по безопасности ARM TrustZone.
- Статья «TrustZone: Hardware-based Security for Mobile Devices» (IEEE Security & Privacy, 2014).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →