Некоммерческая организация lowRISC при участии Google и других спонсоров 5 ноября 2019 года представила проект OpenTitan, который называет «первым опенсорсным проектом по созданию открытой, качественной архитектуры микросхем с корнем доверия (RoT) на аппаратном уровне».

OpenTitan на архитектуре RISC-V — микросхема специального назначения для установки на серверах в дата-центрах и в любом другом оборудовании, где нужно обеспечить аутентичность загрузки, защитить прошивку от изменений и исключить вероятность руткитов: это материнские платы, сетевые карты, маршрутизаторы, устройства IoT, мобильные гаджеты и др.

Конечно, подобные модули есть в современных процессорах. Например, аппаратный модуль Intel Boot Guard является корнем доверия в процессорах Intel. Он по цепочке доверия верифицирует подлинность UEFI BIOS перед загрузкой ОС. Но вопрос, насколько мы можем доверять проприетарным корням доверия с учётом того, что у нас нет гарантий отсутствия багов в дизайне, а проверить его нет возможности? См. статью «Доверенная загрузка Шрёдингера. Intel Boot Guard» с описанием того, «как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику использовать эту технологию для создания в системе неудаляемого (даже программатором) скрытого руткита».

Угроза компрометации оборудования в цепочке поставок на удивление реальна: судя по всему, любой электронщик-любитель может впаять жучок в материнскую плату сервера, используя оборудование стоимостью не более 200 долларов. Некоторые эксперты подозревают, что «организации с бюджетом в сотни миллионов долларов могут заниматься этим уже много лет». Хотя никаких доказательств нет, но теоретически такое возможно.

«Если вы не можете доверять аппаратному загрузчику, игра окончена, — говорит Гэвин Феррис (Gavin Ferris), член совета директоров lowRISC. — Неважно, что делает операционная система — если к моменту загрузки операционной системы вы скомпрометированы, то остальное дело техники. С вами уже покончено».

Эту проблему и должна решить первая в своём роде открытая аппаратная платформа OpenTitan (репозиторий GitHub, документация, аппаратные спецификации). Уход от проприетарных решений позволит изменить «неповоротливую и несовершенную индустрию RoT», считает Google.

Сама компания Google приступила к разработке Titan, обнаружив операционную систему Minix, встроенную в чипы Intel Management Engine (ME). Эта сложная ОС непредсказуемым и неуправляемым образом расширяла поверхность атаки. Google попыталась избавиться от Intel Management Engine (ME), но неудачно.

Что такое корень доверия?


Каждый этап процесса загрузки системы проверяет подлинность следующего этапа, формируя таким образом цепочку доверия.

Корень доверия (Root of Trust, RoT) — это аппаратная проверка подлинности, которая гарантирует, что источник первой исполняемой инструкции в цепочке доверия не подлежит изменению. RoT является базовой защитой от руткитов. Это ключевой этап процесса загрузки, который участвует в дальнейшем запуске системы — от BIOS до ОС и приложений. Он должен проверять подлинность каждого последующего этапа загрузки. Для этого на каждом этапе используется набор ключей с цифровой подписью. Одним из самых популярных стандартов аппаратной защиты ключей является TPM (Trusted Platform Module, доверенный платформенный модуль).


Установление корня доверия. Выше представлена пятиэтапная загрузка, которая формирует цепочку доверия и начинается с загрузчика, находящегося в неизменяемой памяти. На каждом этапе используется открытый ключ, с помощью которого удостоверяется подлинность следующего загружаемого компонента. Иллюстрация из книги Перри Ли «Архитектура интернета вещей»

RoT может запускаться разными способами:

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

В разных процессорах корень доверия реализован по-разному. Intel и ARM
поддерживают следующие технологии:

  • ARM TrustZone. ARM продаёт производителям чипов проприетарный кремниевый блок, который предоставляет корень доверия и другие механизмы безопасности. Таким образом микропроцессор отделяется от небезопасного ядра; он выполняет Trusted OS — защищенную операционную систему с чётко определенным интерфейсом взаимодействия с небезопасными компонентами. Защищённые ресурсы находятся в доверенном ядре и должны быть как можно более легковесными. Переход между компонентами разного типа делается с помощью аппаратного переключения контекста, благодаря чему отпадает необходимость в безопасном ПО для мониторинга.
  • Intel Boot Guard — это аппаратный механизм для проверки подлинности начального блока загрузки криптографическими средствами или с помощью процесса измерения. Для проверки начального блока производитель должен сгенерировать 2048-битный ключ, который состоит из двух частей: открытой и закрытой. Открытый ключ печатается на плате путем «детонации» фьюз-битов на этапе производства. Эти биты являются одноразовыми и не подлежат изменению. Закрытая часть ключа генерирует цифровую подпись для последующего удостоверения подлинности этапа загрузки.

Платформа OpenTitan открывает ключевые части такой аппаратно-программной системы, как показано на диаграмме ниже.



Платформа OpenTitan


Разработка платформы OpenTitan идёт под управлением некоммерческой организации lowRISC. Коллектив инженеров базируется в Кембридже (Великобритания), а главным спонсором является Google. Партнёры-основатели включают Швейцарскую высшую техническую школу Цюриха, G+D Mobile Security, Nuvoton Technology и Western Digital.

Google опубликовала анонс проекта в корпоративном блоге Google Open Source. Компания заявила, что OpenTitan стремится «предоставить высококачественные рекомендации по дизайну и интеграции RoT для использования в серверах центров обработки данных, хранилищах, периферийных устройствах и многом другом».

Корень доверия — первое звено в цепочке доверия на самом низком уровне в доверенном вычислительном модуле, которому всегда полностью доверяет система.

RoT критически важен для приложений, включая инфраструктуры открытых ключей (PKI). Это фундамент системы безопасности, на которой основана сложная система, такая как приложение IoT или центр обработки данных. Поэтому понятно, почему Google поддерживает этот проект. Сейчас у неё 19 центров обработки данных на пяти континентах. Дата-центры, хранилища и критически важные приложения представляют обширную поверхность атаки, и для защиты этой инфраструктуры Google изначально разработала собственный корень доверия на микросхеме Titan.

Проприетарный чип Titan для дата-центров Google был впервые представлен в марте 2017 года на конференции Google Cloud Next. «Наши компьютеры проводят криптографическую проверку каждого пакета с ПО, а затем решают, стоит ли выдавать ему доступ к ресурсам сети. Titan интегрируется в этот процесс и предлагает дополнительные слои защиты», — рассказывали представители Google на той презентации.


Микросхема Titan в сервере Google

Архитектура Titan была собственностью Google, но сейчас становится общественным достоянием в рамках опенсорсного проекта.

Первый этап проекта — создание логической дизайна RoT на уровне микросхемы, включая опенсорсный микропроцессор lowRISC ibex, криптографические процессоры, аппаратный генератор случайных чисел, иерархии ключей и памяти для энергонезависимого и энергонезависимого хранения, защитные механизмы, периферийные устройства ввода-вывода и безопасные процессы загрузки.

Google говорит, что OpenTitan основан на трёх ключевых принципах:

  • у каждого есть возможность проверить платформу и внести свой вклад;
  • повышенная гибкость за счёт открытия логически безопасного дизайна, который не блокируется проприетарными запретами поставщика;
  • качество, обеспеченное не только самим дизайном, но также референсной прошивкой и документацией.

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

Риццо добавил, что OpenTitan можно считать «радикально прозрачным дизайном, по сравнению с нынешним положением вещей».

По словам разработчиков, OpenTitan ни в коем случае не следует рассматривать как готовый продукт, потому что разработка ещё не закончена. Они специально открыли спецификации и дизайн в середине разработки, чтобы все могли проверить его, внести свой вклад и усовершенствовать систему перед началом производства.

Чтобы начать производство чипов OpenTitan, нужно подать заявку и пройти сертификацию. Судя по всему, никаких лицензионных отчислений не требуется.

Комментарии (6)


  1. dartraiden
    08.11.2019 09:38

    Google попыталась избавиться от Intel Management Engine (ME), но неудачно.
    Неудивительно, поскольку Management Engine (как и Platform Security Processor у AMD) выполняет ряд важных функций, без которых запуск платформы невозможен.


  1. yota9
    08.11.2019 12:04

    Arm trustzone не является корнем доверия и служит другим целям. Корень доверия в арм — бутлодер, зашитый на soc без возможности его подменить.


    1. proninyaroslav
      08.11.2019 22:50

      Корнем доверия является ROM-код, который проверяет подпись следующего загрузчика, загрузчик может проверить подпись ядра обратившись к Secure Monitor.


      1. yota9
        08.11.2019 22:55

        Это вы уже описываете trust chain и способы ее реализации (где, кстати, сама по себе трастзона не является чем-то обязательным, secure element может быть и частью загрузчика). Но это уже вопросы реализации, суть в том, что trust zone не является «корнем доверия» как написано в статье:

        В разных процессорах корень доверия реализован по-разному


  1. lyadnov
    09.11.2019 14:11

    Не понимаю: даже если архитектура процессора отрыта, как можно проверить, что именно эта архитектура внутри кремниевого чипа? Микроскопом? Или там найдено более красивое решение.


  1. duronus
    11.11.2019 02:20

    звучит как IBM PC или как появление первых bios, когда хоть какие то стандраты появились, но весь вопрос в том, а будут ли это поддерживать производители железа в частности Intel,AMD и всякие ARM, потому что какой смысл в корне доверия, если он будет скомпрометирован на уровне еще ниже