Криптография в реальном мире. «Виртуальное» железо
В середине апреля полтысячи криптографов со всего мира собрались на конференции Real World Crypto 2022, впервые за два года встретившись в офлайне, чтобы поделиться мыслями и отдохнуть как следует, благо расслабляющая атмосфера в Амстердаме это позволяет.
Традиционная повестка RWC — проблемы безопасности и новые векторы атаки. В этом году главной темой стали уязвимости в «доверенном железе» (trusted hardware). Это встроенные модули и отдельные «железки» типа HSM, хранилища секретов, TPM (trusted platform modules) и TEE (доверенные среды исполнения), защищённые «анклавы» и изолированные «виртуальные машины» внутри чипов.
Теперь ситуация в корне изменилась, потому что уязвимости TEE впервые затронули не только корпоративных клиентов (покупателей специализированного железа), но и обычных пользователей, которые используют парольные менеджеры и схемы 2FA типа WebAuthn на смартфонах Android. Такие аутентификаторы взаимодействуют с TEE/TPM в смартфоне, хотя пользователи могут не знать об этом.
Больше проблем, чем пользы
Итак, источником опасности и уязвимостей стало доверенное железо и «полностью изолированные» виртуальные машины, что парадоксально по определению. Ведь данное оборудование изначально создано для улучшения безопасности, а не ухудшения. Оно должно было бороться со злом, а не примкнуть к нему…
А получается наоборот: TEE вызывают лишние проблемы. Дошло до того, что компания Intel после многих лет борьбы с уязвимостями и вовсе решила удалить расширения Software Guard Extensions (SGX) из нового поколения десктопных процессоров, их пока оставили только в Xeon.
Напомним, что SGX позволяет создать в системе хранилище (анклав), ключ от которого есть только у процессора. Это так называемая доверенная среда, в которой предлагается хранить секреты приложений.
Однако количество новых уязвимостей в CPU было настолько велико, что оказалось проще полностью убрать анклав из десктопных процессоров, чем непрерывно выпускать новые патчи. Поэтому от SGX отказались. Забавно, что при этом на компьютерах сломалось воспроизведение дисков Blu-ray Ultra HD с разрешением 4K, поскольку механизм управления цифровыми правами (DRM), установленный Ассоциацией дисков Blu-ray, для проверки защиты дисков полагался на SGX. В спецификациях последних процессоров Alder Lake (pdf) и Rocket Lake (pdf) расширения SGX уже занесены в раздел «Устаревшие технологии»:
И это не единственный пример, когда анклав TPM создаёт больше проблем безопасности, чем решает.
Ситуация чем-то напоминает парадокс антивирусных программ, которые за счёт собственных уязвимостей и привилегированного положения в системе увеличивают поверхность атаки (да ещё и запускают майнеры на вашем компьютере, не спрашивая разрешения). Конечно, в случае с TPM до такого ещё не дошло, но тенденция настораживает.
«Доверенное» железо
Для начала немного контекста о «доверенном» железе и специфической бизнес-модели некоторых компаний в сфере безопасности.
Trusted Hardware — это широкий термин, используемый для обозначения любого оборудования, которое сертифицировано для работы в соответствии с определённым набором требований. Чаще всего термин обсуждается в контексте защиты от потенциальных атак. «Доверенное» железо обычно включает в себя некоторые криптографические возможности, т.е. выполнение шифрования и аутентификации данных.
Национальный институт стандартов (NIST) установил набор стандартов для криптографических модулей и, в частности, для их физических свойств и устойчивости к взлому. Максимально достижимым уровнем безопасности аппаратного обеспечения является FIPS 140–2 Level 4.
Торговля страхом: краткое описание бизнес-модели
В информационной безопасности (и не только) есть такое понятие — торговля страхом, fearmongering. Данная бизнес-модель имеет естественное научное обоснование: в связи со своей эволюционной историей люди остро реагируют на угрозы безопасности и воспринимают мир как более опасное место, чем он есть на самом деле.
Некоторые игроки на рынке инфобеза вовсю используют эти страхи. Бизнес-модель заключается в том, что продавец должен убедить потенциальных покупателей в некоей опасности (см. бюджет для решения проблемы Y2K). Для этого используют преувеличенные истории реальных и потенциальных атак, подсчитывают возможный ущерб. Задача — максимально напугать «пациента», после чего предложить «волшебную пилюлю», которая решает проблему. Принцип действует через нагнетание опасности — чтобы подтолкнуть людей к «правильному» выбору, который якобы избавит от угрозы.
Решением проблемы может быть антивирусная программа, система видеонаблюдения — неважно. Главное, что «пациент» избавляется от страха. В случае мнимой угрозы «проблема» действительно решается. А если угроза реальна и продукт с ней не справляется — это ещё лучше. Тогда можно продать клиенту новую, улучшенную версию продукта.
В общем, при рассмотрении коммерческих продуктов в области инфобеза всегда следует думать:, а не пытаются ли вас слишком сильно напугать там, где угроза не так велика?
Ведь если для продавца главное — продажа страха, то он будет уделять основное внимание финансовой, а не технической стороне вопроса. То есть для продавца на первом месте будет продажа товара. Соответственно, успешный результат будет измеряться в количестве продаж, а не в реальном улучшении защиты.
Иногда производители предлагают «защиту», которая ни от чего в реальности не защищает. Хуже того, она открывает новые потенциальные уязвимости.
Новые уязвимости в «доверенном» железе
В этом году специалисты обсуждали новые баги, обнаруженные за последний год, в том числе две критические уязвимости в TEEGRIS — это фирменная реализация Samsung защищённого режима работы TrustZone OS внутри процессоров ARMv8-A.
Своеобразная «виртуальная машина» или «безопасная ОС» внутри ARM хранит критически важную прошивку, данные и секреты. Эти ценные ассеты хранятся в «безопасной памяти» отдельно от всего остального, представляя некий «фундамент» для построения корня доверия в системе.
TrustZone — это, по сути, специальный «режим» работы процессора для особых данных. Как уже сказано выше, компания Samsung разработала собственную модификацию TrustZone под названием TEEGRIS. Однако исследователи на конференции ещё раз продемонстрировали факт, что реальной изоляции там не наблюдается. В частности, атака на повторное использование вектора инициализации (IV reuse) позволяет извлечь ключи аппаратного шифрования.
Извлечение ключей аппаратного шифрования из Galaxy S9
Безопасная операционная система TEEGRIS позиционируется как «полностью отдельная ОС», которая работает в изоляции и параллельно с «нормальной» ОС (Android).
Коммуникация с хостом осуществляется через доверенное приложение (trusted application, TA), которое работает внутри TEE, но предоставляет ресурсы обычному хосту через Keymaster — это протокол команд и ответов, стандартизированный Google.
Реализация Keymaster TA в TEEGRIS выглядит так:
Три версии функции получения ключа (KDF) в разных версиях TEEGRIS:
Keymaster включает в себя концепцию «блобов»: ключи шифрования, которые сами «обёрнуты» ключевым материалом TEE и хранятся в ОС хоста. Поскольку обёрнутые ключи хранятся на хосте, их безопасность в конечном счёте зависит от безопасности правильного применения шифрования TEE во время обёртывания ключей.
Механизм обёртывания ключа в Keymaster TA на TEEGRIS, источник
TEEGRIS Keymaster оборачивает ключи в режиме AES-GCM, то есть с помощью блочного шифра AES в режиме GCM с тремя параметрами:
- секретный ключ для инициализации блочного шифра,
- вектор инициализации (IV) смешивает шифротекст для защиты от пингвина ECB,
- сам открытый текст (в данном случае это другой ключ шифрования).
Докладчики обнаружили ошибки в реализации Keymaster на Samsung Galaxy S9, которые позволяют злоумышленнику 1) контролировать IV и 2) манипулировать KDF.
Оказалось, что реализация Keymaster на Galaxy S9 позволяет импортировать вектор инициализации при импорте ключа из обычного (незащищённого) окружения, что позволяет злоумышленнику использовать один и тот же IV несколько раз:
В этот момент свойства самого потокового шифра дают злоумышленнику всё необходимое для восстановления ключа шифрования из другого блоба: XOR вредоносного блока, вредоносного ключа и целевого блока (жертвы), который даёт открытый текст цели, то есть ключа шифрования.
Самое интересное, что описанный метод аппаратной генерации ключей в TrustZone в последнее время используется для веб-аутентификации. В частности, реализация FIDO2 WebAuthn для Android использует хранилище Hardware-Backed Android Keystore с той же самой функцией Secure Key Import:
Таким образом, злоумышленник теоретически может клонировать «аутентификатор» на конкретном смартфоне.
Об этой ошибке сообщили в марте 2021 года, ей был присвоен номер CVE-2021–25444, компания Samsung уже выпустила патчи.
Выводы
Доверенные окружения и изолированные «виртуальные машины» TEE не являются чем-то особенным. На них распространяются те же требования криптографической разработки, что и на все остальные инструменты.
Основной вывод:
Надёжность любого оборудования определяется надёжностью программного обеспечения, которое в нём работает
Специфические требования к такому программному обеспечению:
- использовать современные шифры с режимом защиты от неправильного использования (т. н. «защита от дурака»),
- минимизировать потенциальное влияние атаки на материал ключей и их производных,
- исключить возможность для злоумышленника понижать уровень шифров и протоколов в канале связи незаметно для операционной системы хоста (downgrade attacks).
Не стоит слепо верить, что какое-то специальное «железо» безопаснее, чем криптографический софт. Это ошибка, которая в некоторых случаях может нести даже дополнительные риски для безопасности.
Если производитель в маркетинговых целях позиционирует программный режим работы чипа (такой как TrustZone) под видом аппаратной защиты данных, это уже наводит на подозрения.
Samsung — не единственный вендор с некорректной реализацией TEE. Ранее аналогичные уязвимости находили в «защищённых окружениях» других вендоров. Например, см. Unearthing the TrustedCore: A Critical Review on Huawei«s Trusted Execution Environment (14th USENIX Workshop on Offensive Technologies, WOOT»2020).
В целом, вся концепция шифрования через «виртуальное железо» кажется ненадёжной. Ситуация усугубляется тем, что вендоры создают свои проприетарные реализации и держат их в секрете, что мешает специалистам своевременно анализировать эти системы и сообщать об уязвимостях.
Другие темы
Из других интересных докладов на RWC 2022:
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.