Доверенная вычислительная среда

Доверенная вычислительная среда (англ. trusted execution environment, TEE) — это защищённая область основного процессора (ЦПУ), обеспечивающая безопасность кода и данных, загруженных в неё, с точки зрения конфиденциальности и целостности. Конфиденциальность данных предотвращает несанкционированный доступ к данным из-за пределов TEE, тогда как целостность кода препятствует его подмене или изменению неавторизованными лицами, которыми в некоторых случаях могут быть даже владельцы устройства, как это реализовано в схемах DRM, например, в Intel SGX.

Это достигается за счёт аппаратной поддержки, уникальных, неизменяемых и секретных архитектурных механизмов безопасности, которая включает шифрование памяти на уровне «железа» и изоляцию участков кода и данных приложений. Пользовательское приложение может выделять в памяти приватные регионы, называемые анклавами, защищённые даже от процессов с более высокими привилегиями[1][2][3]. Как изолированная среда исполнения, TEE предоставляет такие возможности безопасности, как изолированное выполнение, контроль целостности доверенных приложений и обеспечение конфиденциальности их ресурсов. В целом TEE формирует пространство исполнения с более высокой степенью защиты для доверенных приложений, чем развитая операционная система (OS), и обеспечивает большую функциональность, чем специализированные микросхемы — SE.

История

Впервые термин TEE был введён консорциумом Open Mobile Terminal Platform (OMTP) в стандарте «Advanced Trusted Environment: OMTP TR1», где TEE определялась как «совокупность аппаратных и программных компонентов, предоставляющая необходимые функции для работы приложений», причём оговаривался уровень безопасности — только от программных атак (Профиль 1) либо как от программных, так и от физических атак (Профиль 2)[4].

Позднее на базе технологии TrustZone от ARM появились коммерческие решения TEE, соответствующие TR1, такие как Trusted Foundations от Trusted Logic[5].

Работа над стандартами OMTP завершилась в 2010 году, когда организация интегрировалась в Wholesale Applications Community (WAC)[6].

Документация OMTP, включая определения TEE, в дальнейшем была размещена у GSMA[7].

Технические особенности

TEE, как правило, представляет собой аппаратный механизм изоляции и специальную защищённую операционную систему, хотя иногда понятие трактуется шире — «как любое защищённое решение» (в том числе и программное)[8][9][10][11]. В то время как спецификация GlobalPlatform требует аппаратной изоляции, другие организации, такие как EMVCo, допускают как аппаратные, так и программные решения[12]. FIDO использует концепцию TEE в ограниченных средах функционирования доверенных устройств на базе аппаратной изоляции[13]. Только доверенные приложения в TEE имеют доступ ко всем возможностям процессора, периферии и памяти устройства, при этом аппаратная изоляция защищает эти ресурсы от пользовательских приложений на основной ОС. Защита между доверенными приложениями внутри TEE обеспечивается программными и криптографическими средствами[14].

К стандартам TEE причастны поставщики услуг, мобильные операторы (MNO), разработчики ОС и приложений, производители устройств и платформ, а также чипмейкеры.

Для предотвращения имитации аппаратных функций пользовательским ПО используются механизмы «аппаратного корня доверия» — набор приватных ключей, внедряемых в чип на этапе производства, обычно с использованием одноразовой памяти (eFuse), что делает невозможным их замену даже после сброса устройства. Открытая часть ключей хранится у производителя вместе с хэшем публичного ключа доверенного лица (обычно производителя чипов), который применяется для подписи доверенной прошивки и контроля операций с криптографией.

Доступ к привилегированным функциям осуществляется только для программ, подписанных ключом поставщика. При запуске открытый ключ сверяется с эталонным хэшем в чипе, и, если хэши совпадают, его используют для проверки цифровой подписи контролируемой производителем прошивки (например, цепочки загрузчиков в Android или «архитектурных анклавов» в SGX). Такая прошивка нужна для реализации механизма удалённого засвидетельствования («remote attestation»)[15].

При засвидетельствовании приложение загружает доверенный компонент в память, защищённый аппаратно от модифицируемых недоверенных частей. Сервер-верификатор выдаёт не-дубликатируемое случайное число (nonce), используемое в протоколе аутентификации, подтверждающем целостность и подлинность приложения. Создать такое подтверждение невозможно на имитируемом оборудовании (QEMU), так как ключи доступны только доверенной прошивке[16].

Реальное извлечение ключей требует сложного и дорогостоящего оборудования и навыков, например, сканирующего электронного микроскопа, микрозондирования, декапсуляции чипа, focused ion beam и проч.[17][18][19][20] В хорошо спроектированных устройствах вскрытие приводит к уничтожению ключа, поэтому извлечённые значения недоступны повторно; чаще всего ключи уникальны для каждого чипа (например, физически неклонируемые функции)[21].

Хотя в архитектуре TEE возможно обеспечение контроля устройства только его владельцем (например, путём записи собственного ключа в e-fuse), на практике крупные производители электроники реализуют схемы, при которых реальный контроль и допуск к алгоритмам засвидетельствования принадлежит вендору. Это позволяет коммерциализировать рынок доступа к TEE, реализовать такие модели, как монетизация через антифункции (реклама, сбор статистики, искусственное ограничение функций), tivoization и DRM.

Применения

TEE используется в различных целях, хотя большинство из них связано именно с ограничением управления устройством его владельцем.

Защита премиального контента и DRM

Многие публикации по TEE рассматривают вопросы защиты премиального контента, что является предпочтительным обозначением для правообладателей. Эта задача представляет частный случай DRM и вызывает споры в некоторых сообществах, таких как Фонд свободного программного обеспечения (FSF)[22]. Такой подход даёт возможность ограничить способы использования контента (например, 4К-видео) конечным пользователем на смартфонах, планшетах и телевизорах благодаря невозможности доступа владельца устройства к защищённым данным и прямым аппаратным каналам между TEE и экранами или подсистемами вывода.

TEE применяется для защиты расшифрованных данных на устройстве: если при передаче видео и аудио используется внешнее шифрование, то именно TEE гарантирует, что после расшифровки контент не попадёт во внешнюю среду или к программам, не одобренным поставщиком.

Мобильные финансовые сервисы

Мобильные приложения, такие как кошельки, P2P-платежи, бесконтактная оплата и торговые терминалы, предъявляют особые требования к безопасности. Для защиты финансовых операций используется TEE, в том числе совместно с NFC, безопасными элементами (SE) и защищёнными серверными системами.

В ряде сценариев необходимо взаимодействие с пользователем и ввод чувствительных данных (PIN-код, пароль, биометрия), для чего TEE может предоставлять доверенный пользовательский интерфейс.

С ростом числа криптовалют TEE применяют также для реализации крипто-кошельков, обеспечивая аппаратную защиту токенов и необходимых вычислений[23].

Аутентификация

TEE подходит для поддержки биометрических систем аутентификации — распознавания лиц, отпечатков пальцев, голосового подтверждения, позволяя хранить шаблонные данные для сравнения с текущим «снимком» (отпечаток, образец голоса), а также запускать сопоставляющий механизм непосредственно внутри доверенного окружения.

Такой подход надёжно изолирует биометрические данные от пользовательских приложений и может соответствовать высоким стандартам безопасности операторов связи при низкой себестоимости устройств.

Для корпоративных, государственных и облачных решений

Государственные структуры, корпорации и облачные сервисы используют TEE для обработки конфиденциальных данных на мобильных устройствах и серверах. TEE защищает от атак на программном уровне, изолируя доверенные приложения от основной ОС и вредоносных программ. Это особенно важно при модели BYOD (bring your own device) и в корпоративных облачных инфраструктурах.

Защищённое модульное программирование

Рост использования повторяемых программных модулей стимулирует переход к модульной архитектуре: независимые модули взаимодействуют друг с другом, а TEE обеспечивает изоляцию, надёжность и защищённую коммуникацию между ними (например, через сериализацию объектов и прокси-сервисы).

Операционные системы TEE

Компания Продукт Используемое оборудование API-стандарт Тип сертификации Примечания
Alibaba Cloud Link TEE GlobalPlatform Полная [24]
Apple Secure Enclave Отдельный процессор Проприетарный [25]
BeanPod ARM TrustZone GlobalPlatform [26]
Huawei iTrustee ARM TrustZone GlobalPlatform Полная [27]
Google Trusty ARM / Intel Проприетарный [28]
Linaro OPTEE ARM TrustZone GlobalPlatform [29]
ProvenRun ProvenCore ARM TrustZone [30]
Qualcomm QTEE ARM TrustZone GlobalPlatform + проприетарный [31]
Samsung TEEgris и Knox ARM TrustZone GlobalPlatform Полная [32]
TrustKernel T6 ARM / Intel GlobalPlatform [33]
Trustonic Kinibi ARM TrustZone GlobalPlatform Полная [34]
Trustonic SW TEE Программная TEE GlobalPlatform [34]
uberSpark uberXMHF ARM TrustZone / Intel Формальная машинная верификация [35]
Watchdata WatchTrust ARM TrustZone GlobalPlatform Полная [36]

Аппаратная поддержка

Для реализации TEE применяются следующие аппаратные технологии:

Примечания

  1. Introduction to Trusted Execution Environment: ARM's TrustZone (англ.) (19 июня 2018). Дата обращения: 21 июня 2024.
  2. Security evaluation of Trusted execution environments: Why and how? (англ.). Дата обращения: 15 февраля 2024.
  3. Trusted Execution Environment, millions of users have one, do you have yours? (англ.). Poulpita (18 февраля 2014). Дата обращения: 17 мая 2017. Архивировано 27 января 2021 года.
  4. Omtp Hardware Requirements And Defragmentation. Gsma.org. Дата обращения: 17 мая 2017. Архивировано 14 декабря 2018 года.
  5. Gemalto's website has moved to Thales (англ.). Архивировано 3 сентября 2014 года.
  6. OMTP announces final documents prior to transition into Wholesale Application Community (англ.). Mobileeurope.co.uk. Дата обращения: 27 августа 2014. Архивировано 14 декабря 2018 года.
  7. OMTP documents (англ.). Gsma.com (май 2012). Дата обращения: 12 сентября 2014. Архивировано 19 февраля 2015 года.
  8. Sabt, M. Trusted Execution Environment: What It is, and What It is Not // 2015 IEEE Trustcom/BigDataSE/ISPA : [англ.] / M Sabt, M Achemlal, A Bouabdallah. — IEEE, 2015. — P. 57–64. — ISBN 978-1-4673-7952-6. — doi:10.1109/Trustcom.2015.357.
  9. Pinto, S.; Santos, N. (2019). “Demystifying Arm TrustZone: A Comprehensive Survey”. ACM Computing Surveys [англ.]. 51: 1—36. DOI:10.1145/3291047. S2CID 59337370.
  10. Lee, S; Lee, JH (2018). “TEE based session key establishment protocol for secure infotainment systems”. Design Automation for Embedded Systems [англ.]. Springer. 22 (3): 215—224. DOI:10.1007/s10617-018-9212-5. S2CID 52081114.
  11. Shepherd, C. Secure and Trusted Execution: Past, Present, and Future - A Critical Review in the Context of the Internet of Things and Cyber-Physical Systems // 2016 IEEE Trustcom/BigDataSE/ISPA : [англ.] / C Shepherd, G Arfaoui, I Gurulian … [et al.]. — IEEE, 2016. — P. 168–177. — ISBN 978-1-5090-3205-1. — doi:10.1109/TrustCom.2016.0060.
  12. Software-Based Mobile Payment Evaluation Process (англ.). EMVCo. Дата обращения: 13 октября 2021. Архивировано 2 марта 2021 года.
  13. FIDO Authenticator Allowed Restricted Operating Environments List (англ.). FIDO Alliance. Дата обращения: 13 октября 2021. Архивировано 13 июля 2021 года.
  14. Solutions - Trustonic- Securing Smart Devices & Mobile Applications (англ.). Trustonic.com. Дата обращения: 31 июля 2014. Архивировано 10 августа 2014 года.
  15. Towards Formalization of Enhanced Privacy ID (EPID)-based Remote Attestation in Intel SGX (англ.).
  16. QEMU v7 — OP-TEE documentation (англ.). Дата обращения: 2 июня 2022. Архивировано 25 июня 2022 года.
  17. Editing Circuits with Focused Ion Beams (англ.) (апрель 2014). Дата обращения: 14 ноября 2020. Архивировано 28 ноября 2020 года.
  18. Advanced IC reverse engineering techniques: in depth analysis of a modern smart card (англ.). Дата обращения: 14 ноября 2020. Архивировано 14 ноября 2020 года.
  19. How codebreakers cracked the secrets of the smart card (англ.), The Guardian (13 марта 2002). Архивировано 7 апреля 2021 года. Дата обращения: 9 августа 2023.
  20. X-Ray Tech Lays Chip Secrets Bare - IEEE Spectrum (англ.) (7 октября 2019). Дата обращения: 14 ноября 2020. Архивировано 8 декабря 2020 года.
  21. Physically Unclonable Functions (PUFs) (англ.). Semiconductor Engineering. Дата обращения: 15 ноября 2020. Архивировано 16 ноября 2020 года.
  22. Digital Restrictions Management and Treacherous Computing Free Software Foundation working together for free software. Дата обращения: 20 августа 2019. Архивировано 5 июля 2018 года.
  23. Ethereum Wallet in a Trusted Execution Environment / Secure Enclave (англ.). Medium (7 июня 2018). Дата обращения: 13 октября 2021. Архивировано 15 июля 2021 года.
  24. Alibaba Cloud Link Tee V1.1.3 (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 26 октября 2021 года.
  25. Secure Enclave overview (англ.). Apple Inc.. Дата обращения: 13 октября 2021. Архивировано 13 августа 2021 года.
  26. GlobalPlatform Welcomes New Participating Member Beijing Beanpod Technology (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 26 октября 2021 года.
  27. Huawei iTrustee V3.0 on Kirin 980 (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 14 апреля 2021 года.
  28. Trusty TEE (англ.). Google Android. Дата обращения: 13 октября 2021. Архивировано 14 октября 2021 года.
  29. Security, Trustzone and OP-TEE (англ.). Linaro. Дата обращения: 13 октября 2021. Архивировано 27 февраля 2021 года.
  30. ProvenCore (англ.). ProvenRun. Дата обращения: 23 июня 2024. Архивировано 26 февраля 2024 года.
  31. Guard your Data with Qualcomm Snapdragon Mobile Platform (англ.). Qualcomm. Дата обращения: 13 октября 2021. Архивировано 25 июня 2021 года.
  32. Samsung TeeGris V4.1 (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 17 января 2021 года.
  33. Enhance Device Security With T6 (англ.). TrustKernel. Дата обращения: 13 октября 2021. Архивировано 29 октября 2021 года.
  34. 1 2 Certificate of Security Evaluation - Kinibi 410A (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 26 октября 2021 года.
  35. uberXMHF (англ.). Дата обращения: 21 июня 2024.
  36. WatchTrust 2.1.1 on SC9860 (англ.). GlobalPlatform. Дата обращения: 13 октября 2021. Архивировано 26 октября 2021 года.
  37. AMD Secure Processor (Built-in technology) (англ.). Amd.com. Дата обращения: 17 сентября 2017. Архивировано 19 сентября 2017 года.
  38. Secure Hardware and the Creation of an Open Trusted Ecosystem (англ.). Classic.regonline.com. Дата обращения: 17 мая 2017. Архивировано 15 января 2017 года.
  39. Chiappetta, Marco AMD Beema and Mullins Low Power 2014 APUs Tested - Page 2 (англ.). HotHardware (29 апреля 2014). Дата обращения: 17 мая 2017. Архивировано 7 апреля 2017 года.
  40. AMD MEMORY ENCRYPTION (англ.). developer.amd.com (21 апреля 2016). Архивировано 20 октября 2020 года.
  41. AMD SEV-SNP: Strengthening VM Isolation with Integrity Protection and More (англ.) (январь 2020). Архивировано 5 ноября 2020 года.
  42. GlobalPlatform based Trusted Execution Environment and TrustZone Ready (англ.). Arm.com. Дата обращения: 24 апреля 2020. Архивировано 4 июля 2020 года.
  43. IBM Secure Service Container (англ.). ibm.com. Дата обращения: 12 июля 2019. Архивировано 12 июля 2019 года.
  44. Technical overview of Secure Execution for Linux on IBM Z (англ.). ibm.com. Дата обращения: 15 апреля 2020. Архивировано 15 апреля 2020 года.
  45. The Trusted Execution Environments on Mobile Devices (англ.). Cs.helsinki.fi. Дата обращения: 17 мая 2017. Архивировано 18 апреля 2016 года.
  46. Keystone Paper and Customizable TEEs (англ.). keystone-enclave.org (22 июля 2019). Дата обращения: 10 июня 2021. Архивировано 14 июля 2020 года.
  47. Keystone: An Open Framework for Architecting Trusted Execution Environments (англ.) (апрель 2020). Дата обращения: 16 июня 2025. Архивировано 31 января 2025 года.