Attack mot PRNG

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 1 januari 2021; kontroller kräver 2 redigeringar .

En attack på en pseudo-slumptalsgenerator  är en attack som syftar till att avslöja parametrarna för en pseudoslumptalsgenerator ( PRNG ) för att ytterligare förutsäga pseudoslumptal.

Relevans

Säkerheten för kryptografiska system beror ofta på vissa data som endast bör vara känd för behöriga användare och som bör vara svåra för en angripare att gissa. Exempel på sådan data kan vara sessionsnycklar som initierar vektorer, salt , unika parametrar i EDS- funktioner och många andra objekt. För att uppnå den erforderliga nivån av oförutsägbarhet, givet den frekventa genereringen av slumptal, krävs en pålitlig källa till slumptal. Tyvärr har många kryptografiska applikationer ingen tillförlitlig källa för slumpmässiga värdesekvenser, såsom termiskt brus i elektriska kretsar eller den exakta tiden mellan ett par Geigerräknare. Istället måste du använda pseudo-slumptalsgeneratorer (PRNG). PRNG tar emot som indata en dataström från en källa med låg entropi och försöker konvertera den till en sekvens av värden som praktiskt taget inte går att skilja från en riktig slumpmässig sekvens. En framgångsrik attack på en PRNG kan bryta många kryptografiska system, oavsett hur noggrant de utformades. Vissa system använder dock dåligt utformade PRNG:er, eller gör det på ett sätt som minskar komplexiteten i attacker. Dessutom krävs det bara en framgångsrik infiltration för att äventyra hela systemet.

Typer av attacker mot PRNG

Beroende på vilken PRNG-data som är lättare att spåra (utgångsvärden, ingångsvärden eller internt tillstånd), kan följande typer av attacker implementeras.

Direkt kryptoanalytisk attack

Om en angripare kan direkt övervaka PRNG-utgången och undersöka mönstret för dess förekomst, är detta en direkt kryptoanalytisk attack. Denna typ av attack sträcker sig till de flesta algoritmer som använder PRNG. Men om, till exempel, PRNG endast används för nyckelgenerering, som görs i Triple DES , kan den inte vara sårbar för denna typ av attack, eftersom utdata från PRNG aldrig är direkt synliga.

Indatabaserade attacker

Denna typ av attack är möjlig i fall där en angripare kan använda kunskap om PRNG-insignalerna eller kontrollera dem. Ingångsbaserade attacker kan delas in i attacker med kända ingångar, attacker med reproducerbara ingångar och attacker mot valda ingångar.

Kända input-attacker är praktiska i situationer där någon input som systemdesignern förväntar sig vara svår att förutsäga visar sig vara lätt att gissa i vissa speciella fall.

Reproducerbara inmatningsattacker kan användas i samma situationer, men kräver mindre sofistikerade hackningssystem och mindre sofistikerad analys av angriparen.

Utvalda inmatningsattacker kan praktiskt implementeras på system som använder smarta kort eller tokens. En sådan attack kan också vara farlig för applikationer som använder textmeddelanden, användardefinierade lösenord, nätverksstatistik, tid etc. som insignaler i PRNG.

Attacker baserade på att avslöja det interna tillståndet

När angriparen utför denna typ av attack försöker angriparen använda tidigare framgångsrika attacker på PRNG, som avslöjade dess interna tillstånd, för att förutsäga tillståndet för framtida eller tidigare tillstånd för PRNG, så långt det är möjligt. Sådana attacker kan vara framgångsrika när PRNG startar från ett känt eller förutsägbart tillstånd. I praktiken är det mycket svårt att avgöra att den inre staten har äventyrats. Det är därför PRNG:er måste motstå att äventyra det interna tillståndet. Det finns minst fyra alternativ för en sådan attack:

En återställningsattack använder det öppnade tillståndet för PRNG vid en tidpunkt för att återställa tillstånden för PRNG och, följaktligen, dess utdata till tidigare tidpunkter.

Permanent kompromiss av staten är möjlig för system där, när staten väl avslöjas vid en tidpunkt, är alla tidigare och efterföljande stater sårbara för efterföljande attacker.

En iterativ gissningsattack använder kunskap om tillståndet vid tidpunkten t , och de mellanliggande utgångarna från PRNG:n, för att ta reda på vid tidpunkten t när indata som samlats in under den tidsperioden är gissbara (men okända) för angriparen.

Mötet i mitten är i huvudsak en kombination av en iterativ gissatack och en rollback-attack. Kunskap vid tidpunkter och låt angriparen återställa tillståndet vid tidpunkter , såväl som under hela tidsintervallet från till .

Exempel på opålitliga system

Tidiga versioner av Netscapes SSL -krypteringsprotokoll använde pseudoslumptal genererade av en PRNG vars entropikälla var värdena för tre variabler: tid på dagen, process-ID och överordnat process-ID. Dessa kvantiteter är förutsägbara och har relativt låg entropi. Följaktligen ansågs denna version av SSL vara osäker. Netscape underrättades om problemet av Phillip Halam-Baker 1994, då en forskare vid CERN . Problemet löstes dock inte förrän programvaruprodukten släpptes. Senare, 1995, talade Ian Goldberg och David A. Wagner [1] om problemet igen . De var tvungna att reverse engineering av objektmodulerna , eftersom Netscape vägrade att avslöja detaljerna om generering av slumptal. PRNG har fixats i senare utgåvor (version 2 och senare) genom att ändra entropikällan till att vara mer slumpmässig och med en högre entropinivå.

Microsoft använder en opublicerad algoritm för att generera slumptal i Windows operativsystem . Denna algoritm är tillgänglig för användaren genom verktyget CryptGenRandom . I november 2007 publicerade Leo Dorredorf, tillsammans med medförfattare från University of Haifa och Hebrew University of Jerusalem , en artikel med titeln Cryptanalysis of the Random Number Generator of the Windows Operating System [2] . Artikeln visar de allvarliga bristerna i algoritmen som presenteras av Microsoft. Slutsatserna som ges i artikeln formulerades som ett resultat av att studera den demonterade koden för Windows 2000 -systemet , men enligt Microsoft kan de även gälla för Windows XP [3] .

National Institute of Standards and Technology (USA) publicerade i mars 2007 rekommenderade "deterministiska pseudo-slumptalsgeneratorer", som standardiserades i NIST Special Publication 800-90 [4] . En av de givna PRNG:erna, Dual EC DRBG , införd i standarden av National Security Agency [5] , är baserad på elliptisk kryptografi och innehåller en viss uppsättning rekommenderade konstanter. I augusti 2007 visade Dan Shumov och Nils Fergeson från Microsoft att konstanter kan väljas på ett sådant sätt att en bakdörr i algoritmen kan uppstå [6] .

I maj 2008 publicerade forskaren Luciano Bello en artikel som anger att ändringar som gjordes 2006 i PRNG i openssl- paketet som distribueras med Debian Linux och andra Debian-baserade distributioner avsevärt minskar entropin av genererade värden, vilket gör nycklar sårbara för attacker. . [1] [2] Problemet orsakades av ändringar som gjorts av en av Debianutvecklarna i openssl-koden som svar på kompilatorvarningar om till synes överflödig kod. Denna sårbarhet åtgärdades samma dag som den blev känd [7] .

Sätt att skydda mot attacker på PRNG

Se även

Anteckningar

  1. Slumpmässighet och Netscape-webbläsare . Hämtad 9 december 2011. Arkiverad från originalet 22 maj 2016.
  2. Krypteringsanalys av slumptalsgeneratorn i Windows operativsystem, Leo Dorrendorf (länk ej tillgänglig) . Hämtad 9 december 2011. Arkiverad från originalet 6 september 2012. 
  3. Microsoft bekräftar att XP innehåller bugg för slumptalsgenerator Arkiverad 22 juni 2008.
  4. Rekommendation för generering av slumptal med hjälp av deterministiska slumpmässiga bitgeneratorer, NIST Special Publication 800-90 Arkiverad 2007-09-26 .
  5. Sätt NSA en hemlig bakdörr i ny krypteringsstandard?
  6. Om möjligheten till en bakdörr i NIST SP800-90 Dual Ec Prng . Tillträdesdatum: 9 december 2011. Arkiverad från originalet 26 februari 2014.
  7. Debian OpenSSL-säkerhetsfel . Hämtad 9 december 2011. Arkiverad från originalet 6 september 2018.

Litteratur