TPM-Fail уязвимост, която ви позволява да възстановите ключове, съхранени в TPM модули

Екип от изследователи от Политехническия институт Уорчестър, Университета в Любек и Калифорнийския университет в Сан Диего разработи Метод за атака на страничен канал, който ви позволява да възстановите стойността на личните ключове, съхранени в TPM (Trusted Platform Module). Атаката получи кодово име Неуспех на TPM и засяга fTPM (софтуерна реализация базиран на фърмуер, работещ на отделен микропроцесор в процесора) от Intel (CVE-2019-11090) и хардуерен TPM на чипове STMicroelectronics ST33 (CVE-2019-16863).

Изследователи публикувано прототипен инструментариум за атака и демонстрира способността за възстановяване на 256-битов частен ключ, използван за генериране на цифрови подписи, използвайки алгоритми за елиптични криви ECDSA и EC-Schnorr. В зависимост от правата за достъп, общото време за атака на Intel fTPM системи е 4-20 минути и изисква анализ на 1-15 хиляди операции. Отнема около 33 минути за атака на системи с чип ST80 и анализ на около 40 хиляди операции за генериране на цифров подпис.

Изследователите също демонстрираха възможността за извършване на отдалечена атака във високоскоростни мрежи, което направи възможно възстановяването на частен ключ в локална мрежа с честотна лента от 1 GB в лабораторни условия за пет часа, след измерване на времето за реакция за 45 хиляди сесии за удостоверяване с VPN сървър, базиран на софтуера strongSwan, който съхранява своите ключове в уязвимия TPM.

Методът на атака се основава на анализиране на разликите във времето за изпълнение на операциите в процеса на генериране на цифров подпис. Оценяването на латентността на изчислението ви позволява да определите информация за отделни битове по време на скаларно умножение в операции с елиптична крива. За ECDSA определянето дори на няколко бита с информация за вектора за инициализация (nonce) е достатъчно, за да се извърши атака за последователно възстановяване на целия частен ключ. За успешното извършване на атака е необходимо да се анализира времето за генериране на няколко хиляди цифрови подписа, създадени върху данни, известни на нападателя.

Уязвимост елиминиран от STMicroelectronics в ново издание на чипове, в които изпълнението на алгоритъма ECDSA е освободено от корелации с времето за изпълнение на операциите. Интересно е, че засегнатите чипове на STMicroelectronics се използват и в оборудване, което отговаря на нивото на сигурност CommonCriteria (CC) EAL 4+. Изследователите също така тестваха TPM чипове от Infineon и Nuvoton, но те не изтекоха въз основа на промени във времето за изчисление.

При процесорите на Intel проблемът се появява от семейството Haswell, пуснато през 2013 г. Отбелязва се, че проблемът засяга широка гама лаптопи, компютри и сървъри, произведени от различни производители, включително Dell, Lenovo и HP.

Intel включи корекция в ноември актуализация на фърмуера, в която в допълнение към разглеждания проблем, елиминиран други 24 уязвимости, от които девет са с високо ниво на опасност, а една е критична. За тези проблеми е предоставена само обща информация, например се споменава, че критичната уязвимост (CVE-2019-0169) се дължи на способността да предизвика препълване на купчина от страна на Intel CSME (конвергирана система за сигурност и управление ) и Intel TXE (Trusted Execution Engine) среди, което позволява на атакуващия да увеличи своите привилегии и да получи достъп до поверителни данни.

Можете също да отбележите разкриване резултати от одит на различни SDK за разработване на приложения, които взаимодействат с код, изпълняван от страна на изолирани анклави. За да се идентифицират проблемни функции, които могат да се използват за извършване на атаки, бяха проучени осем SDK: Intel SGX-SDK, SGX-LKL, Microsoft OpenEnclave, Графенът,
Rust-EDP и Google Asylo за Intel SGX, Крайъгълен камък за RISC-V и Санкус за Sancus TEE. По време на ревизията беше идентифицирани 35 уязвимости, въз основа на които са разработени няколко сценария за атака, които ви позволяват да извлечете AES ключове от анклав или да организирате изпълнението на вашия код чрез създаване на условия за увреждане на съдържанието на паметта.

TPM-Fail уязвимост, която ви позволява да възстановите ключове, съхранени в TPM модули

Източник: opennet.ru

Добавяне на нов коментар