Реализация доверенной среды для мобильных устройств на

advertisement
Реализация доверенной среды
для мобильных устройств на базе
стандартов 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
СПАСИБО!
Download