TrustZone – это технология создания безопасного режима исполнения программ, разработанная компанией ARM для процессоров Cortex-A и Cortex-M, которые сейчас почти везде.
В своей основе она содержит разделение процесса выполнения программ на два режима, доверенный и недоверенный, или Secure World и Normal World. Режимы эти относятся к одному и тому же процессорному ядру, но дают полностью раздельное выполнение программ, и Secure World изолирован от Normal World. В них выполняются разные программы, или операционные системы.
В типовом случае с Cortex-A, в Normal World может работать Android, iOS, или Linux, а в Secure World – специальная Secure OS, которая реализует, например, сервис Android Keystore.
TrustZone обеспечивает принципиально более высокий уровень безопасности, например, хранения ключей в Keystore, ведь благодаря изоляции двух миров программные уязвимости обычного Android практически не влияют на Secure World. Между мирами существует только узкий канал взаимодействия, построенный по принципу почтового ящика, или RPC, а подключиться к этому каналу в Normal World можно только из режима ядра. Это обеспечивает очень малую поверхность атаки.
На данный момент эта технология внедрена практически во всех смартфонах и планшетах, и в меньшей степени – в разных одноплатных компьютерах, которые используются и в робототехнике. Чаще всего там пока нет TrustZone. Но, например, в RPi 3 или Wandboard можно установить Open Source реализацию Secure OS – OP-TEE. А некоторые платы, построенные на Mediatek, Qualcomm и HiSilicon вполне могут содержать код TrustZone и без него не будут запускаться. Проверить это довольно легко – просто поищите ассемблерную команду SMC в исходниках кода поддержки Linux под этот процессор.
А еще – в прошлом году технология стала доступной на микроконтроллерах Cortex-M восьмого поколения, что по мнению многих экспертов открывает новый уровень безопасности для носимой электроники и IoT.
Материал подготовлен русскоязычным каналом про TrustZone:
@tz_ru.