Сводная группа исследователей из Вустерского политехнического института (США), Университета Любека (Германия) и Калифорнийского университета в Сан-Диего (США) раскрыла детали двух проблем, получивших общее название TPM-FAIL. Баги связанны с Trusted Platform Module (TPM) и позволяют извлекать криптографические ключи, хранящиеся в TPM.
Опасность TPM-FAIL обусловлена тем, что, по заверениям исследователей, такие атаки могут успешно применяться в реальной жизни, что для TPM-атак в целом является редкостью. Так как на сегодняшний день сложно найти устройство, которое не использует TPM, в виде аппаратно-изолированного чипа или программного решения, перед проблемой потенциально уязвимы миллиарды устройств, начиная от ПК, ноутбуков и серверов, и заканчивая IoT.
TPM-FAIL состоит из двух уязвимостей:
- первая проблема —CVE-2019-11090, связана с технологией Intel Platform Trust (PTT). Intel PTT — это программное TPM-решение для Intel fTPM, которое широко применяется на серверах, настольных компьютерах и ноутбуках. Оно поддерживается всеми процессорами Intel, выпущенными с 2013 года, то есть начиная с поколения Haswell;
- вторая проблема — CVE-2019-16863, связана с чипами ST33 TPM производства компании STMicroelectronics. ST33 TPM весьма популярен и используется в составе самых разных устройств, от сетевого оборудования до облачных серверов. Это один из немногих чипов, которые получили классификацию CommonCriteria (CC) EAL 4+, то есть поставляется со встроенной защитой против side-channel атак.
Стоит сказать, что специалисты изучали и другие TPM-решения, в том числе от Infineon и Nuvoton, но те были признаны надежными.
По сути атаки TPM-FAIL представляют собой проблему timing leakage, то есть потенциальный злоумышленник может наблюдать за тем, как TPM выполняет повторяющиеся операции и наблюдать за разницей во времени. Анализируя эти данные и основываясь на том, какое количество времени TPM тратит на одни и те же операции, атакующий получает возможность извлечь информацию, обрабатываемую внутри TPM.
По информации исследователей, атака может быть использована для извлечения 256-битных приватных ключей, хранящихся в TPM. Такие 256-битные ключи используются определенными схемами цифровой подписи, работающими на основе алгоритмов эллиптических кривых, например, ECDSA и ECSchnorr. В итоге под угрозой оказываются такие криптографически защищенные операции, как установление TLS-соединений, подписывание цифровых сертификатов и авторизация входов в систему.
Отдельно подчеркивается, что TPM-FAIL атаки занимают не слишком много времени. Так, восстановить ключ ECDSA из Intel fTPM возможно за 4-20 минут, в зависимости от уровня доступа. Исследователи утверждают, что атаки можно выполнять и удаленно в быстрых сетях, к примеру, восстановление ключа аутентификации VPN-сервера заняло у специалистов около 5 часов и потребовало инициирования порядка 45 000 аутентификационных handshake’ов и внимательного изучения ответов сервера.
Представители Intel уже опубликовали официальные рекомендации по безопасности и выпустили обновления для Intel PTT. Разработчики STMicroelectronics, в свою очередь, не смогли просто выпустить обновление ПО и вместо этого подготовили новую версию чипа ST33, который, как уже подтвердили исследователи, устойчив перед атаками TPM-FAIL.
В будущем группа исследователей планирует опубликовать на GitHub инструменты, которые они использовали для анализа уязвимых TPM, а также PoC-эксплоиты.