Некоммерческая организация 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, нужно подать заявку и пройти сертификацию. Судя по всему, никаких лицензионных отчислений не требуется.