Реализация доверенной среды для мобильных устройств на базе стандартов TEE и Secure Element Михаил Дударев, БИФИТ О себе Михаил Дударев - эксперт в области технологий Java Card и безопасности мобильных устройств, технический консультант Global Platform. О нас • jCardSim - реализация Java Card с • Кем используется открытым исходным кодом, - Thales, Yubico, BMW, Audi получившая самую престижную мировую премию для разработчиков - SimplyTapp (Android HCE) программного обеспечения Oracle - В университетах всего мира Duke’s Choice Awards 2013. для обучения Java Card Краткое содержание • Стандарт Trusted Execution Environment • Архитектура Secure Element и ее реализация на платформе Java Card • Secure Element и NFC • Android HCE и его применение • Samsung Knox как пример реализации доверенной среды – плюсы и минусы Основные принципы построения доверенной среды • • • • • Контроль целостности платформы Защищенное хранилище Изолированная среда исполнения Идентификация устройства Аутентификация устройства – Удаленная аттестация Контроль целостности платформы. Процесс загрузки Ядро ОС Контроль Успех/ Ошибка Ядро ОС Хеш() Загрузочный блок Контроль Хеш() Успех/О шибка Загрузочный блок Хеш() Прошивка Контроль Загрузка в гарантированно доверенной конфигурации Замер Замер Хеш() Успех/ Ошибка Прошивка Загрузка в любой конфигурации Замер Состояние Основные принципы построения доверенной среды (TEE) Центр верификации Сертификат устройства Криптографические сервисы ОЗУ Процесс загрузки Ключ устройства Довереннные приложения Среда исполнения TEE Целостность платформы Данные для идентификаци и ППЗУ Защищенное хранилище и изолированная среда исполнения Идентификация устройства Аутентификация устройства Контроль целостности платформы Сертификат загрузочного кода Центр верификации Открытый ключ производителя Криптографические сервисы ОЗУ Процесс загрузки Функция проверки ЭЦП Состояние аутентифицированной загрузки Целостность платформы Запуск процесса загрузки Защищенное хранилище Незащищенная память Центр верификации Криптографические сервисы ОЗУ Ключ устройства ППЗУ Защищенное хранилище и изолированная среда исполнения Функции шифрования Защищенная память Транзакционный механизм Изолированная среда исполнения Сертификат приложения Центр верификации Криптографические сервисы ОЗУ Ключ устройства Довереннные приложения Контроль среды исполнения Среда исполнения TEE ППЗУ Защищенное хранилище и изолированная среда исполнения Среда исполнения Java Card Системное пространство Контекст JCRE Пространство апплетов Контекст апплета Контекст апплета Контекст апплета Пакет Б Пакет A Файрвол Среда исполнения Java Card Системное пространство Контекст JCRE Контекст JCRE Контекст JCRE JCSystem.getAppletShareableIntefaceObject() Пространство апплетов Объект или null Объект или null Контекст апплета (Клиент) Вызов метода Applet.getShareableIntefaceObject() Контекст апплета (Сервер) Результа т Пакет Б Пакет A Файрвол Аутентификация устройства и удаленная аттестация Центр верификации Криптографические сервисы ОЗУ Состояние аутентифицированной загрузки Ключ устройства Выработка ключа для подписи Сертификат устройства Открытый ключ Выпускается производителем устройства Аутентификация устройства Программная архитектура TEE Доверенная среда Недоверенная среда Приложени е Приложение Образ разделяемой памяти Разделяемая память Приложени е Приложение Доверенная среда исполнения Среда исполнения API для работы с сервисами TEE Внутреннее API для работы с TEE Клиентское API для работы с TEE Компоненты доверенной ОС Компоненты ОС Общедоступные драйверы Системные библиотеки Коммуникационный агент Общедоступная периферия Коммуникационный агент Сообщения Аппаратная платформа Прикладны е функции Ядро Доверенная периферия Варианты реализации Внешняя периферия Внешняя память Внешняя периферия Внешняя память Чип ОЗУ ОПЗУ ПЗУ Ядро процессора Внутренняя периферия Secure Element Внешний Secure Element (TPM, Java Card) Внешняя периферия Внешняя память Чип ОЗУ ОПЗУ ПЗУ Ядро процессора Внутренняя периферия Чип ОЗУ ОПЗУ ПЗУ Ядро процессора Внутренняя периферия Secure Element Встроенный Secure Element (Java Card) Защищенная среда процессора (TrustZone, M-Shield) NFC и Secure Element Процессор Secure Element Процессор Android HCE NFC контроллер NFC считыватель Secure Element ARM TrustZone • • • • • • • • • ARM Cortex-A57 ARM Cortex-A53 ARM Cortex-A17 ARM Cortex-A15 ARM Cortex-A9 ARM Cortex-A8 ARM Cortex-A7 ARM Cortex-A5 ARM1176 ARM TrustZone Generic Interrupt Controller Processor Secured RAM Secured Boot ROM AXI Bus Незащищено Динамическая защита Постоянная защита TrustZone Adress Space Controller Dynamic Memory Controller DRAM TrustZone Protection Controller AXI-ABP Bridge Peripherals Display Unit USB Indicator Samsung Knox • Основан на ARM TrustZone • Отсутствует выделенный Secure Element • Закрытая экосистема дистрибьюции приложений • Многочисленный ошибки и уязвимости, связанные с превышением привилегий у недоверенного кода Выводы • На текущий момент единственной хорошо изученной и формально описанной реализацией доверенной среды является Java Card • Необходимо создать отечественную модель безопасности для Java Card с учетом требований регуляторов • Гармонизация и стандартизация API Java Card для работы с российской криптографией • Реализация набора тестов для проверки корректности реализации российской криптографии в Java Card Документация и полезные ссылки: • Global Platform (http://www.globalplatform.org) • ARM TrustZone (http://www.arm.com/products/processors/technologies/trustzone) • TEE Emulator (https://github.com/Open-TEE) Email: dudarev@bifit.com Twitter: MikhailDudarev СПАСИБО!