Доверенные не заслужили доверия

Задача хранения данных с защитой от несанкционированного доступа теоретически решается довольно просто: данные шифруются и расшифровываются по обращению. Но простота эта кажущаяся: рано или поздно выясняется, что необходимо безопасно хранить и получать ключ шифрования — ну или не сам ключ, а то, из чего он при необходимости воссоздаётся. К счастью, до появления квантовых компьютеров и постквантовых алгоритмов мы можем использовать достаточно короткие ключи — 4096 бит RSA, пожалуй, наибольшая длина ключа, встречающаяся на практике.

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

По большей части допущенные ошибки не позволяют добраться до ключа напрямую. Тем не менее, различия есть в потребляемой мощности или ещё в каких-то характеристиках процесса обработки. Чаще всего речь идёт о различиях времени обработки. Против этого применяются самые разнообразные контрмеры на уровне разрабатываемого кода (при этом программисты часто жалуются, что компилятор сводит на нет все их усилия). В этой статье речь пойдёт о серии обнаруженных уязвимостей в ряде устройств, относящихся к категории Trusted Platform Modules (доверенные модули, TPM).

В опубликованной 12 ноября совместной работе исследователей из университета Сан-Диего, Калифорния, университета Ворчестера из Массачусетса и немецкого Любека представлено описание большого количества уязвимостей в ряде таких устройств. Используя технику “чёрного ящика”, специалистам по безопасности удалось восстановить используемый для криптографических операций на эллиптических кривых 256-битный ключ. Пала жертвой не только схема подписи ECDSA, но и аналогичная, хотя и менее используемая, схема подписи Шнорра.

Атаковать схему подписи — хорошо, но недостаточно. Локальная атака ценится куда меньше, чем сетевая. Исследователи смогли практически применить свою атаку против одного из VPN-решений — StrongSwan, использующий протокол IKEv2. Уязвимости обнаружены в TPM, произведённых как компанией Intel, так и STMicro. А вот чипы компаний Nuvoton и Infineon оказались не подверженными атаке. Была продемонстрирована атака как с правами локального пользователя, что было предсказуемо, так и по сети — разницу во времени обработки различных чисел внутри TPM удаётся установить, даже когда она маскируется временем хождения пакетов по сети. Вся цепочка уязвимостей получила общее название TPM-FAIL. Для локального пользователя время восстановления ключа VPN занимает порядка 5-20 минут, по сети продемонстрировано восстановление за 5 часов. Для осуществления атаки требуется, чтобы VPN использовал хранимый в TPM секретный ключ для аутентификации пользователей.

Потенциально затронуты уязвимостью почти все пользователи современных процессоров — в том или ином виде TPM присутствуют во множестве выпущенных недавно устройств: ноутбуков, планшетов и смартфонах. Затронуты устройства, выпускаемые HP, Dell, Lenovo и многими другими вендорами. Intel уже выпустил новую прошивку для своих уязвимых устройств, а компания STMicro заявила о выпуске нового чипа, и исследователи подтвердили корректность реализации сенситивных вычислений в нём. Уязвимости получили коды CVE-2019-11090 для Intel fTPM и CVE-2019-16863 для STMicroelectronics TPM.

Исправление TPM-FAIL для платформы Intel вошло в большое полугодовое исправление уязвимостей. Патч от Intel устраняет не только TPM-FAIL, но и большое количество прочих уязвимостей — всего 77. 67 из них были обнаружены внутри компании, и только 10 — внешними исследователями. Самая серьёзная из прочих исправленных уязвимостей, получившая код CVE-2019-0169, оценивается как критическая, ее рейтинг опасности составил 9.6 из 10. Уязвимость использует переполнение в подсистеме Intel CSME — это чип, предназначенный для удалённого управления серверами на базе Intel. Уязвимость CVE-2019-0169 позволяла злоумышленникам получить несанкционированный доступ, осуществить эскалацию привилегий и при удаче провести атаку типа “отказ в обслуживании”.

Кроме того, патч от Intel включает в себя исправление микрокода процессоров, связанное с противостоянием новой вариации описанной ранее атаки Zombieload. Подробности нового воплощения Zombieload опубликованы на сайте RedHat. В комментарии от Intel, однако, отмечается, что ошибка устранена не полностью, и в некоторых ситуациях даже с установленным обновлением возможно добраться до чужих данных.

Подробное описание исправленных ошибок доступно на сайте Intel.


Автор:  Дмитрий Белявский (ТЦИ)

Возврат к списку