ROCA: Анализатори разкриха уязвимост в криптиращи ключове
Пропуск в алгоритъм на RSA крипто – библиотеката разработена от Infineon е причина хиляди частни ключове да бъдат лесни за отгатване.
Последен ъпдейт на 28 юни 2018 в 13:33 ч.
Уязвимостта CVE-2017-15361 е от поне 5 години и е открита и докладвана на разработчика Infineon Technologies през февруари 2017г, като откривателите ѝ ще я представят напълно в началото на следващия месец.
Необходимо е да се знае публичният RSA ключ, но не и физически достъп. ROCA атаката представлява възможността да се реконструира частната (private) половина на RSA ключ, чрез отгатване на прости (primes) множители. Засегнати са ключове с често използвана дължина от 1024 и 2048 bit-a, чието разбиване до сега се смяташе за нерентабилно, тоест изискващо милиарди години и огромна изчислителна мощ. Ключовете генерирани, чрез „дефектната“ библиотека са много по – лесна мишена, имайки предвид, че атаката може лесно да се извърши в паралел, ще са необходими респективно:
(Intel E5-2650 v3@3GHz Q2/2014):
- 512 bit RSA keys – 2 CPU hours (the cost of $0.06);
- 1024 bit RSA keys – 97 CPU days (the cost of $40-$80);
- 2048 bit RSA keys – 140.8 CPU years, (the cost of $20,000 – $40,000).
Къде са били използвани слабите ключове?
Засегнати от тази уязвимост са електронни документи за самоличност, електронни подписи, модули за сигурност (TPM), PGP и доверени платформи обслужващи, както държавни, така и частни сектори.
Изследователите са подложили 41 лаптоп модела на тест, като 10 от тях се оказали уязвими. Това означава, че при засегнатите модели, ключовете генериране за криптиране на твърдите дискове чрез BitLocker могат да бъдат лесно разбити.
Какво да правим?
Първата стъпка е да разберем дали имаме устройство с уязвим чип. Много производители вграждат решенията на infineon в своите продукти, поради тази причина не разполагаме със точен списък. Най – добре е да се генерира RSA двойка ключове и след това да се тества публичния ключ с инструментите по – долу. Препоръчително е да бъдат и вече използващите се ключове.
- Offline testers: Python/Java/C++ applications and tutorials (https://github.com/crocs-muni/roca);
- Online testers: Качете Вашите публични ключове на https://keychest.net/roca или https://keytester.cryptosense.com;
- Email S-MIME/PGP tester: Изпратете подписан мейл до [email protected], като ще Ви се върне автоматичен отговор с анализ на използвания ключ.
В случай, че тестовете ни се окажат положителни:
- Приложете firmware обновления, ако има такива;
- Сменете устройството със сигурно такова;
- Генерирайте ключовете с друга библиотека (OpenSSL) и ги импортнете в устройството.
Уязвимостта е само с генерирането на ключове, а не в тяхното използване. - Използвайте друг криптографски алгоритъм (ECC), вместо RSA, ако устройството го позволява;
- Използвайте по – дълги ключове (4096 bit), но е възможно и те да се окажат уязвими в близко бъдеще, понеже атаката може да бъде подобрена.