Odborníci z brněnské Masarykovy univerzity odhalili slabinu v algoritmu kryptografické knihovny využívané německým výrobcem bezpečnostních čipů Infineon Technologies AG od roku 2012. Vzdálený útočník díky ní může vypočítat soukromou polovinu RSA klíče pouze se znalostí jeho veřejného protějšku. Takto získaný soukromý klíč lze zneužít k rozšifrování soukromých dat, padělání digitálních podpisů a k nejrůznějším formám zneužití identity právoplatného vlastníka klíče.
Čipy Infineon se využívají v široké škále produktů. Největší využití mají v šifrovacích procesorech Trusted Platform Module (TPM), jež jsou typicky k nalezení ve firemních laptopech, serverech, routerech a IoT zařízeních. Seznam známých poškozených výrobců zahrnuje mimo jiné Acer, ASUS, Fujitsu, Google, HP, Lenovo, LG, Microsoft, Samsung, Toshiba a řadu menších výrobců chromebooků. TPM se zpravidla využívá i při šifrování disků ve Windows OS pomocí nativního nástroje BitLocker. Jelikož ale slabina není hardwarového charakteru, řada výrobců ji stihla záplatovat aktualizacemi ještě před pondělním zveřejněním. Návod na ověření bezpečnosti klíčů je k nalezení v původní zprávě brněnských výzkumníků.
Vadné čipy se vyskytují také v chytrých čipových kartách, přes které byla slabina poprvé objevena. Postiženo je na 750.000 estonských občanských průkazů, které Estonci využívají k uchovávání lékařských záznamů, k autentizaci digitálních podpisů anebo k volení do parlamentu. Estonská vláda přijala prozatímní opatření; informovala vlastníky napadnutelných karet, skryla databázi veřejných klíčů a připravuje se na softwarovou aktualizaci karet.
Postiženy jsou také nejrůznější bezpečnostní tokeny typu YubiKey, bootovací zařízení, řada TLS/HTTPS klíčů a PGP.
Tým slovenských a českých odborníků pod vedením Petra Švendy z univerzitního Centre for Research on Cryptography and Security (CRoCS) slabinu pojmenovanou ROCA odhalil na konci ledna 2017 a od té doby intenzivně spolupracoval s výrobcem čipů a dalšími dotčenými společnostmi s cílem mitigace rizik pro koncové uživatele.
Princip slabiny ROCA
Šifrování klíčem RSA stojí na principu obtížnosti rozkladu na prvočísla, neboli faktorizace velkých přirozených čísel na součin prvočísel. Při generaci každého nového klíče jsou čipem náhodně určena dvě prvočísla, která zůstávají v tajnosti a z nichž se následně vypočítává hodnota veřejného klíče. Při neznalosti těchto dvou prvočísel je prolomení běžně využívaných 1024-bitových a větších klíčů úlohou na několik set tisíc let i pro nejvýkonnější počítače. Generátor prvočísel v čipech Infineon ale obsahuje závislosti, jejichž odhalení snižuje obtížnost faktorizace o několik řádů. Při využití dostatečně výkonného setupu tak může prolomení vadného 1024-bitového klíče trvat i méně než hodinu. Vše, co útočník potřebuje, je veřejná část klíče.
V současnosti by se měly používat klíče alespoň 2048-bitů velké, doporučena je ale velikost 3072-bitů. Klíče 3072-bitové a větší, generované čipy Infineon, ač také postižené chybou v generaci prvočísel, by měly být prakticky mimo ohrožení.
Autor: Vojtěch Bínek, redaktor