Random number generation attack
Bezpečnost kryptografických systémů závisí na některých tajných dat, která je známá pouze na oprávněné osoby, ale neznámé a nepředvídatelné ostatním. K dosažení tohoto nepředvídatelnost, některé randomizace je obvykle zaměstnán.Moderní kryptografické protokoly často vyžadují časté generaci náhodných veličin (viz také nonce ).
Kvalita v generování náhodných čísel (RNG) procesu je téměř vždy nutné pro bezpečnost, a nedostatek kvalitních obecně poskytuje útoku zranitelná, a tak vede k nedostatku bezpečnosti, a to i dokončit kompromis, v kryptografických systémů. RNG proces je zvláště atraktivní pro útočníky, protože to je obvykle jeden izolovaný hardware nebo software komponent snadno k nalezení. Pokud útočník může nahradit pseudo-náhodných bitů generovaných způsobem může předvídat, je bezpečnost zcela ohrožena, ale obecně nezjistitelná daląí test bitů. Kromě toho, tyto útoky vyžadují pouze jediný přístup k systému, který je ohrožena. Žádná data nemusí být poslán zpět na rozdíl od, řekněme,počítačový virus , který krade klíče a pak e-maily je do jisté skápnutí.
Lidé obecně dělat špatně při generování náhodných veličin. Kouzelníci, profesionální hazardní hráči a podvodníci závisí na předvídatelnosti lidského chování. In druhé světové válce byli němečtí úředníci code pokyn k výběru tři dopisy náhodně za počáteční rotor nastavení pro každou Enigma stroje zprávy.Místo toho někteří si vybral předvídatelné hodnoty, jako je jejich vlastní nebo přítelkyně iniciály, velmi pomáhat spojeneckou lámání těchto šifrovacích systémů. Dalším příkladem je často předvídatelným způsobem uživatelé počítačů si hesla. (Viz prolomení hesla .)
Nicméně, v konkrétním případě přehrávání smíšená strategie hry, využití lidského herní entropie pro generování náhodnost byla studována Ran Halprin aMoni Naor . "Games for Extrahování náhodnost" .
Časné verze Netscape 's Secure Socket Layer (SSL) k zašifrování protokol používaný pseudo-náhodných veličin odvozených od PRNG naočkuje se třemi proměnnými hodnotami: denní době, ID procesu, a nadřazený proces ID. Tato množství jsou často relativně předvídatelné, a tak mají malou entropii a jsou nižší než náhodně, a tak, že verze SSL bylo zjištěno, že je nejistá jako výsledek. Problém byl hlášen na Netscape v roce 1994 Phillip Hallam-Baker, pak výzkumník v týmu Web CERN, ale nebyla stanovena před propuštěním.Problém v běžící kód byl objeven v roce 1995 Ian Goldberg a David Wagner ,[ 1 ] , který měl zvrátit inženýr na objektový kód , protože Netscape odmítl odhalit podrobnosti o svém generátor náhodných čísel ( bezpečnost přes neznámo ). To RNG byla stanovena v pozdějších vydáních (verze 2 a vyšší) o více robustní (tj. více náhodné a tak vyšší entropie od útočníka pohledu) setí.
Společnost Microsoft používá nepublikovanou algoritmus pro generování náhodných hodnot pro svého operačního systému Windows. Tyto náhodné veličiny jsou uživatelům k dispozici prostřednictvím CryptGenRandom nástroj.V listopadu 2007, Leo Dorrendorf et al. z Hebrejské univerzity v Jeruzalémě aUniversity of Haifa zveřejnila dokument s názvem Dešifrování Random Number Generator z operačního systému Windows . [ 2 ] Dokument představil závažné nedostatky v přístupu společnosti Microsoft. Papíru, závěry byly založeny nademontáž kódu v systému Windows 2000, ale podle Microsoft platí pro XP stejně. [ 3 ]
Americká Národní institut pro standardy a technologie vydal sbírku "deterministických náhodných bitových generátorů" doporučuje jako NIST Special vydání 800-90. [ 4 ] Jeden z generátorů, Dual ES DRBG , byl zvýhodněný National Security Agency . [ 5 ] Dual_EC_DRBG využívá eliptickou křivkou technologii a obsahuje sadu doporučených konstant. V srpnu 2007, Dan Shumow a Niels Ferguson z Microsoft ukázal, že konstanty mohou být konstruovány takovým způsobem, aby vytvořit tajnou zadní vrátka do algoritmu.[ 6 ]
V květnu 2008, bezpečnostní výzkumník Luciano Bello revealed jeho objev, že změny provedené v roce 2006 do generátoru náhodných čísel v verzi opensslbalíčku distribuované s Debian GNU / Linux a nadstavby dselect distribucích založených, such as Ubuntu , dramaticky snižuje se entropie z generované hodnoty a z různých bezpečnostních klíčů náchylné k útoku. [ 7 ] [ 8 ] slabost bezpečnosti byla způsobena změnami provedenými v openssl kódu vývojáři Debianu v reakci na upozornění kompilátoru zdánlivě redundantní kód. [ 9 ] Key postižené typy patří SSH klíče, OpenVPN klíče, DNSSEC klíče, klíčový materiál pro použití v certifikátů X.509 a relace klíče používané v SSL / TLS spojení. Klíče generované s GnuPG nebo gnutls nejsou ovlivněny, neboť tyto programy používají různé metody generování náhodných čísel. Non-Debian-založené distribuce Linuxu jsou také ovlivněny. Tato chyba zabezpečení byla ihned oprava poté, co byl hlášen.
V prosinci 2010, skupina volat sebe fail0verflow oznámila oživení ECDSAsoukromého klíče používaného Sony podepsat software pro PlayStation 3 herní konzole. Útok byl vyroben možné proto, že Sony se nepodařilo vygenerovat nové náhodné nonce pro každého podpisu.
Stejně jako u jiných složek kryptografický systém, by měl software generátor náhodných čísel být navrženy tak, že se brání jistým útokům. Přesně které útoky musí být chráněna proti závisí na systému, ale zde jsou některé z nich:
Pokud útočník získá většinu proudu náhodných bitů, by mělo být nemožné pro ně vypočítat žádné další části proudu.
Pokud útočník dodržuje vnitřní stav generátoru náhodných čísel, by neměly být schopni pracovat pozpátku a odvodit předchozí náhodné hodnoty.
Pokud útočník dodržuje vnitřní stav generátoru náhodných čísel, budou nutně schopni předvídat výstup až dost doplňující entropie je získat.Nicméně, jestliže entropie je přidána postupně, může být útočník schopen odvodit hodnoty náhodných bitů, které byly přidány a získat nové vnitřní stav generátoru náhodných čísel ( stav kompromis útok rozšířením ).
Pokud útočník může ovládat údajně náhodné vstupy do generátoru, mohou být schopni "vyprázdnění" všechny existující entropii ze systému a dát ji do známého stavu.
Pokud generátor začne, bude to často mají malý nebo žádný entropii (zejména v případě, že počítač právě nastartoval a následovala velmi standardní sled operací), takže může být útočník schopen získat počáteční odhad na státu.
Počet útoků na hardwaru náhodný číselných generátorů je možné, včetně snaží zachytit vysokofrekvenční emise z počítače (získání těžké časy drive přerušení od hluku motoru, například), nebo se snaží krmit signály ovládané do údajně random zdroje (například např. vypnutí světla v lávové lampy, nebo krmení silný, známý signál do zvukové karty).
Rozhozených náhodná čísla mohou být vytvořeny pomocí kryptograficky bezpečné pseudonáhodných čísel generátor s hodnotou osiva známé na útočníka, ale skrývá v softwaru. Poměrně krátké, řekněme 24 až 40 bitů, může část semen je skutečně náhodný, aby se zabránilo sdělovač opakování, ale ne dost dlouho na to, aby se zabránilo útočníkovi vymáhat, řekněme, "náhodně" vyrobeno klíč.
Náhodná čísla obvykle procházejí několika vrstvami hardwaru a softwaru, než jsou použity. Bity mohou být generovány v periferním zařízením, poslal přes sériový kabel, shromážděné v nástroji operačního systému a získat pomocí systémového volání. Tyto rozhozených bity mohou být substituované v každém bodě v tomto procesu s malou pravděpodobností detekce.
Hardware obvod vyrábět subverted bity mohou být postaveny na integrovaném obvodu několik milimetrů čtverečních. Nejdokonalejší hardware generátor pseudonáhodných čísel lze subverted uvedení takového čip kdekoliv proti proudu, kde je digitalizován zdroj náhodnosti, říká v čipu výstupním řidiče a to ani v kabelu spojujícího RNG k počítači. Subversion Čip může obsahovat hodiny omezit zahájení provozu na nějakou dobu poté, co je přístroj poprvé zapnut a projít akceptačních testů, nebo to může obsahovat rádiový přijímač pro on / off řízení. Mohlo by to být instalována výrobcem na příkaz svého vnitrostátního signálů zpravodajské služby, nebo se přidává později někdo s fyzickým přístupem. CPU čipy s vestavěným-in hardwarových generátorů náhodných čísel může být nahrazen kompatibilní čipy s subverted RNG v čipy firmware .
Mix (s, například, xor ) kovové generována náhodná čísla s výstupem kvalitního kódu proudu , co nejblíže k bodu použití jako možné. Proud šifrovací klíč nebo semen by měl být proměnlivé způsobem, který může být ověřeny a odvozené z důvěryhodného zdroje, například kostky hodí. Fortunagenerátor náhodných čísel, je příkladem algoritmu, který používá tento mechanismus.
Generování hesel a fráze používat skutečný náhodný zdroj. Některé systémy vyberte náhodných hesel pro uživatele spíše než nechat uživatelé navrhují své vlastní.
Použijte šifrovací systémy tohoto dokumentu, jak se generování náhodných čísel a poskytuje způsob, jak provádět audit proces generování.
Build bezpečnostní systémy s off použitelnosti hardwaru, nejlépe zakoupit v cestách, které nejsou odhalí jeho zamýšlené použití, např. z podlahy na velké maloobchodní provozovny. Z tohoto pohledu, zvukové karty awebkamery může být lepší zdroj náhodnosti než hardware vydaného pro tento účel. Viz: Hardware generátor náhodných čísel .
Zachovejte si úplnou fyzickou kontrolu nad hardwarem poté, co byl zakoupen.
Navrhování bezpečné generátor náhodných čísel vyžaduje alespoň stejně vysokou úroveň péče jako navrhování další prvky kryptografického systému.