Kritická chyba generátora náhodných čísel ovplyvňuje miliardy zariadení internetu vecí

V hardvérových generátoroch náhodných čísel používaných v miliardách zariadení internetu vecí (IoT) bola odhalená kritická zraniteľnosť, ktorá nedokáže správne generovať náhodné čísla, čím sa podkopáva ich bezpečnosť a vystavujú sa riziku útokov.

„Ukazuje sa, že tieto ‚náhodne‘ zvolené čísla nie sú vždy také náhodné, ako by ste chceli, pokiaľ ide o zariadenia internetu vecí,“ uviedli vedci z Bishop Fox Dan Petro a Allan Cecil v analýze zverejnenej minulý týždeň. „V skutočnosti si v mnohých prípadoch zariadenia vyberajú šifrovacie kľúče 0 alebo ešte horšie. To môže viesť ku katastrofálnemu kolapsu bezpečnosti pre akékoľvek použitie proti prúdu.“

Generovanie náhodných čísel (RNG) je zásadný proces, ktorý je základom niekoľkých kryptografických aplikácií, vrátane generovania kľúčov, nonces a solenia. Na tradičných operačných systémoch je odvodený od kryptograficky zabezpečeného generátora pseudonáhodných čísel (CSPRNG), ktorý využíva entropiu získanú z vysokokvalitného zdroja.

Pokiaľ ide o zariadenia internetu vecí, sú dodávané zo systému na čipe (SoC), v ktorom sa nachádza vyhradené hardvérové ​​periférne zariadenie RNG nazývané generátor skutočných náhodných čísel (TRNG), ktoré sa používa na zachytávanie náhodnosti z fyzických procesov alebo javov.

Uvádzajúc, že ​​spôsob, akým je periférne zariadenie aktuálne vyvolané, bol nesprávny, výskumníci zaznamenali nedostatok kontrol odpovedí na chybové kódy, čo viedlo k scenáru, v ktorom vygenerované náhodné číslo nie je jednoducho náhodné, a čo je horšie, predvídateľné, výsledkom je čiastočná entropia, neinicializovaná pamäť a dokonca aj krypto kľúče obsahujúce obyčajné nuly.

„Funkcia HAL na periférnom zariadení RNG môže zlyhať z rôznych dôvodov, ale zďaleka najbežnejším (a zneužiteľným) je, že zariadeniu došla entropia,“ poznamenali vedci. „Hardvérové ​​periférne zariadenia RNG vyťahujú entropiu z vesmíru rôznymi spôsobmi (ako sú analógové senzory alebo hodnoty EMF), ale nemajú ju v nekonečnej zásobe.

“Sú schopné produkovať len toľko náhodných bitov za sekundu. Ak sa pokúsite volať funkciu RNG HAL, keď vám nemôže poskytnúť žiadne náhodné čísla, zlyhá a vráti chybový kód. Ak teda zariadenie sa pokúsi získať príliš veľa náhodných čísel príliš rýchlo, hovory začnú zlyhávať.”

Problém je jedinečný v prostredí internetu vecí, pretože im chýba operačný systém, ktorý sa zvyčajne dodáva s API náhodnosti (napr. „/dev/random“ v operačných systémoch podobných Unixu alebo BCryptGenRandom v Windows), pričom výskumníci zdôraznili výhody väčšieho fondu entropie spojeného so subsystémom CSPRNG, čím sa odstránili „akékoľvek jednotlivé body zlyhania medzi zdrojmi entropie“.

Aj keď sa problémy dajú napraviť pomocou softvérových aktualizácií, ideálnym riešením by bolo pre výrobcov a vývojárov zariadení internetu vecí zahrnúť CSPRNG API, ktoré je nasadené zo súboru rôznych zdrojov entropie, a zabezpečiť, aby kód neignoroval chybové stavy alebo zlyhal pri blokovaní. volania do RNG, keď už nie je k dispozícii žiadna entropia.

„Jednou z ťažkých častí tejto zraniteľnosti je to, že nejde o jednoduchý prípad „zaklikol si tam, kde si mal zahýbať“, ktorý sa dá ľahko opraviť,“ uviedli vedci a zdôraznili potrebu implementácie CSPRNG v operačnom systéme internetu vecí. “Aby sa tento problém vyriešil, do zariadenia IoT musí byť zabudovaná podstatná a komplexná funkcia.”