Доверенная платформа

на ARM-процессорах с собственной TrustZone

  • Технология "стерилизации" импортных процессоров (i.MX6)
  • Доверенная загрузка, ввод-вывод, визуализация
  • Контроль ОС и исполняемых приложений
  • Система дистанционного управления и мониторинга
  • Сертификация (до гостайны)

Защищённый планшет ОНИКС08 от "НПФ "Доломант"
со встроенным СДЗ Aladdin TSM

Проблема доверия к импортной электронике

Мир электронных устройств, который нас окружает, условно можно разделить на два больших класса – это компьютеры и сервера, на которых мы работаем (на процессорах Intel, AMD и др.), и множество носимой и встроенной электроники – гаджеты, бытовая, телекоммуникационная электроника, промышленная автоматика, автомобильная и др. встраиваемая электроника - всё это, как правило, построено на базе микропроцессоров архитектуры ARM.

Что особенного в современных ARM-процессорах?

  1. Это "система на кристалле" (SoC – System on Chip) – т.е. в одном микроконтроллере в одном корпусе содержится и процессор, и память, и контроллеры внешних устройств для общения с внешним миром.
  2. Начиная с процессоров ARM Cortex A5 (мультимедийная серия, использующаяся в смартфонах, планшетах, Smart-TV, принтерах, сканерах, платёжных, навигационных терминалах и пр.) и Cortex R4 (серия для промышленных контроллеров, АСУ ТП, встраиваемых и управляющих систем) в них появилась, так называемая, технология TrustZone (доверенная зона).

Что такое TrustZone?

Это аппаратное разделение (виртуализация) ARM-процессора на два изолированных друг от друга "мира" – Secure World и Normal World, позволяющее запущенным в них ОС и приложениям работать независимо друг от друга с использованием одного ядра процессора и набора периферии.

При загрузке процессора сначала загружается специализированная компактная Secure OS, находящаяся в Secure World и контролирующая все коммуникации процессора с внешним миром (контроллеры и периферию). Она же формирует и профиль безопасности (доступные ресурсы, например, объём памяти, доступность внешней периферии и пр.) для "гостевой" (Guest / Rich OS), в которой будет работать "основная" ОС (iOS, Android, Sailfish, Tizen, Linux, Windows и др.) в "нормальном" привычном для нас "мире" Normal World.

Несмотря на то, что эти два "мира" изолированы друг от друга, между ними есть тесная связь и возможность общения:

  • Secure OS с загруженными в неё трастлетами (доверенными приложениями) имеют неограниченные возможности и могут получить полный доступ ко всему – ко всей памяти, к ключам, к вводу-выводу...
  • Все ОС (вкл. сертифицированные), работающие в Normal World, в своём ядре имеют команды передачи управления на Secure OS. Делается это с помощью вызовов Secure Monitor Call (команды SMC#0 в ядре любой упомянутой ОС).

В чём проблема?

  1. Secure OS, работающая в TrustZone, имеет полный доступ ко всем ресурсам процессора, управляет всеми коммуникациями с внешним миром, загружается раньше "гостевой" ОС и полностью контролирует её работу.
  2. Secure OS работает скрытно, так, что "гостевая" ОС "считает", что она работает на чистом "железе", полностью контролируя его работу. На самом деле это не так – данные об объёме памяти, работе периферии она получает от Secure OS, команды и данные, пересылаемые периферийным устройствам, также проходят через Secure OS. Кто мешает ей делать предобработку, например, менять GPS-координаты или сохранять копии документов в скрытой памяти?
  3. Secure OS и приложения из TrustZone могут скрытно и необнаруживаемо выполнять различные шпионские функции - включать микрофон, камеру, копировать вывод на экран, контролировать обмен данными, манипулировать информацией, красть криптографические ключи, отпечатки пальцев (с сенсора), ключи и пароли для доступа в гос. и корпоративные информационные системы и т.п.
  4. Удалить вызовы Secure Monitor (команды SMC#0) из ядра "гостевых" ОС нельзя – они перестанут работать на этих процессорах, поскольку управлением режимами энергосбережения, загрузкой аппаратных ядер процессора, кэшем и пр. занимается именно Secure OS (как BIOS в Intel'овских системах).
  5. Удалить или заменить Secure OS в TrustZone практически невозможно (она "заперта" на секретном ключе), обнаружить – крайне сложно – только по косвенным признакам, например, по наличию команд SMC#0 в ядре "гостевой" ОС.
  6. Написать свою Secure OS и загрузить её в импортный ARM-процессор – задача крайне не тривиальная, поскольку документация на аппаратный уровень процессоров, как правило, не доступна (особенно для российских компаний), ключи процессора для загрузки своей Secure OS нам так же никто не даст.
  7. ARM-процессоры с "открытой" TrustZone или без неё крайне небезопасны.

Aladdin Trusted Security Module (TSM)

Что это такое?

Во-первых, это технология "стерилизации" импортных ARM-процессоров серии i.MX6 компании NXP/Freescale, позволяющая заменить заводской загрузчик на собственный, доверенный, загрузить собственную реализацию Secure OS (TEE – Trusted Execution Environment) и обеспечить контроль над коммуникациями и процессами, загрузку и взаимодействие с любой "гостевой" системой (без внесения каких-либо изменений в неё или в используемые приложения).

Во-вторых, это лицензируемый программный продукт – Embedded TSM, который включает в себя:

  • Модуль доверенной загрузки, реализующий функции электронного замка, удовлятворяющий* требованиям Профиля ФСТЭК к средствам доверенной загрузки уровня BIOS второго класса защиты (до гостайны со степенью секретности "Совершенно Секретно").
  • Модуль доверенного ввода/вывода с отображением режима - безопасный/опасный - зелёная/красная рамка вокруг экрана, выводимая напрямую из TrustZone.
  • Модуль СКЗИ и ЭП*, реализующий набор российских криптоалгоритмов и протоколов, работает как трастлет в изолированной доверенной среде TrustZone с аппаратным доверенным хранилищем ключей. При этом все криптографические функции доступны приложениям в "гостевой" ОС через привычные вызовы библиотеки pkcs#11.
  • Модуль централизованного управления, позволяющий с использованием системы JMS (JaCarta Management System) дистанционно управлять ключами и сертификатами, загрузкой трастлетов, безопасно обновлять "прошивку" процессора, загружать и анализировать журналы аудита и т.п.

* - находится в процессе сертификации

Что это даёт?

Эта технология даёт возможность:

  1. Использовать (продолжать использовать) самую современную, надёжную и недорогую элементную базу там, где необходимо обеспечить высокий уровень безопасности, например в КИИ, АСУ ТП, для навигационного и коммуникационного оборудования.
  2. "Перепрошивать" современные импортные ARM-процессоры (пока только для линейки i.MX6), загружая в их TrustZone российскую доверенную Secure OS с функциями "электронного замка", обеспечивающего:
    • Доверенную загрузку, контроль целостности как Secure OS, так и любой "гостевой" ОС и всех файлов программ и данных
    • Защита данных от НСД, утечки, искажения, перехвата
    • Контроль каналов и способов распространения защищаемых данных
    • Использование российской криптографии (для приложений это выглядит как крипто-сопроцессор)
    • Соответствие требованиям российских Регуляторов в области ИБ.

Для кого?

Эта технология и этот продукт предназначены для разработчиков и производителей электронной техники, системных интеграторов.

  • Пока поддерживается только линейка ARM-процессоров NXP/Freescale i.MX6 с одним, двумя и четырьмя ядрами. "Перепрошивка" процессоров может производиться без их выпаивания и изменения схемотехники.
  • Лицензируется сертифицированное ПО – Aladdin TSM.
  • Для создания инфраструктуры удаленного централизованного управления ключами, сертификатами, профилями и пр. рекомендуется использовать систему JMS.
  • Для создания защищённых хранилищ и БД (для собираемых данных в системах КИИ, персональных данных, М2М, IoT, АСУ ТП и пр.) рекомендуется использование сертифицированной по КС3 системы защиты БД "Крипто БД" (для PostgreSQL, Oracle, Tibero, на КС2 – MS SQL).

Примеры готовых устройств на базе i.MX6

Терминальная станция
(крепление к задней стороне монитора)
Промышленные компьютеры (M2M, IIoT)
Процессорные платы