Támadás a PRNG ellen

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. január 1-jén felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

Az álvéletlenszám-generátor elleni támadás egy pszeudo-véletlenszám-generátor ( PRNG )  paramétereinek felfedésére irányuló támadás az álvéletlen számok további előrejelzése érdekében.

Relevancia

A kriptográfiai rendszerek biztonsága gyakran olyan adatokon múlik, amelyeket csak az arra jogosult felhasználók ismerhetnek, és amelyeket a támadónak nehéz kitalálnia. Ilyen adatok lehetnek például a vektorokat inicializáló munkamenetkulcsok, a só , az EDS -függvények egyedi paraméterei és sok más objektum. A szükséges kiszámíthatatlansági szint eléréséhez, tekintettel a véletlen számok gyakori generálására, megbízható véletlenszám-forrásra van szükség. Sajnos sok kriptográfiai alkalmazás nem rendelkezik megbízható forrással a véletlenszerű értéksorozatokhoz, például az elektromos áramkörök hőzajához vagy a Geiger-számlálók közötti pontos időhöz. Ehelyett pszeudo-véletlenszám-generátorokat (PRNG-ket) kell használnia. A PRNG bemenetként kap egy adatfolyamot egy alacsony entrópiájú forrásból, és megpróbálja átalakítani olyan értéksorozattá, amely gyakorlatilag megkülönböztethetetlen egy valódi véletlen sorozattól. Egy PRNG elleni sikeres támadás számos kriptográfiai rendszert feltörhet, függetlenül attól, hogy milyen gondosan tervezték őket. Egyes rendszerek azonban rosszul megtervezett PRNG-ket használnak, vagy olyan módon teszik ezt, hogy csökkentsék a támadások összetettségét. Ráadásul egyetlen sikeres beszivárgásra van szükség ahhoz, hogy az egész rendszert kompromittálja.

A PRNG elleni támadások típusai

Attól függően, hogy melyik PRNG-adatokat könnyebb követni (kimeneti értékek, bemeneti értékek vagy belső állapot), a következő típusú támadások valósíthatók meg.

Közvetlen kriptoanalitikus támadás

Ha egy támadó képes közvetlenül figyelni a PRNG kimenetet, és ki tudja vizsgálni az előfordulás mintáját, akkor ez egy közvetlen kriptoanalitikus támadás. Ez a fajta támadás a legtöbb PRNG-t használó algoritmusra kiterjed. Azonban, ha például a PRNG-t kizárólag kulcsgenerálásra használják, mint a Triple DES -ben, akkor nem lehet sebezhető az ilyen típusú támadásokkal szemben, mivel a PRNG kimenetei soha nem láthatók közvetlenül.

Bemenet alapú támadások

Ez a fajta támadás olyan esetekben lehetséges, amikor a támadó felhasználhatja a PRNG bemeneti jelek ismeretét vagy irányíthatja azokat. A bemenet alapú támadások ismert bemenetekkel, reprodukálható bemenetekkel és kiválasztott bemenetekkel szembeni támadásokra oszthatók.

Az ismert bemeneti támadások olyan helyzetekben kivitelezhetők, amikor a rendszertervező által nehezen megjósolható bemenetek bizonyos esetekben könnyen kitalálhatónak bizonyulnak.

A reprodukálható bemeneti támadások ugyanilyen helyzetekben használhatók, de kevésbé kifinomult hackerrendszereket és kevésbé kifinomult elemzést igényelnek a támadótól.

A kiválasztott bemeneti támadások intelligens kártyákat vagy tokeneket használó rendszereken gyakorlatilag megvalósíthatók. Ezenkívül egy ilyen támadás veszélyes lehet az olyan alkalmazások számára, amelyek szöveges üzeneteket, felhasználó által meghatározott jelszavakat, hálózati statisztikákat, időt stb. használnak bemeneti jelként a PRNG-ben.

A belső állapot feltárásán alapuló támadások

Az ilyen típusú támadások végrehajtása során a támadó megpróbálja felhasználni a PRNG korábbi sikeres támadásait, amelyek felfedték annak belső állapotát, hogy a lehetőségekhez mérten előre jelezzék a PRNG jövőbeli vagy korábbi állapotainak állapotát. Az ilyen támadások akkor lehetnek sikeresek, ha a PRNG ismert vagy megjósolható állapotból indul ki. A gyakorlatban nagyon nehéz megállapítani, hogy a belső állapot kompromittálódott. Éppen ezért a PRNG-knek ellenállniuk kell a belső állapot veszélyeztetésének. Legalább 4 lehetőség van egy ilyen támadásra:

A visszagörgetési támadás a PRNG egy adott időpontban megnyitott állapotát használja a PRNG állapotainak és ennek megfelelően a kimeneteinek korábbi időpontra való visszaállítására.

Az állapot tartós kompromittálása lehetséges olyan rendszerek esetében, amelyekben az állapot egy adott időpontban történő feltárása után minden korábbi és későbbi állapot ki van téve a későbbi támadásoknak.

Az iteratív tippeléses támadás a t időpontban fennálló állapot ismeretét és a PRNG közbenső kimeneteit használja annak megállapítására, hogy a t időpontban mikor találkozhatnak (de ismeretlenek) a támadó számára az adott időszakban gyűjtött bemenetek.

A középső találkozó lényegében egy iteratív tipptámadás és egy visszagurítás kombinációja. A tudás adott időpontban , és lehetővé teszi a támadó számára az állapot visszaállítását bizonyos időpontokban , valamint a teljes időtartamon belül .

Példák megbízhatatlan rendszerekre

A Netscape SSL titkosítási protokolljának korai verziói olyan PRNG által generált pszeudo-véletlen számokat használtak, amelyek entrópiaforrása három változó értéke volt: a napszak, a folyamatazonosító és a szülő folyamatazonosító. Ezek a mennyiségek megjósolhatók és viszonylag alacsony entrópiájúak. Ennek megfelelően az SSL ezen verziója nem volt biztonságos. A Netscape-et Phillip Halam-Baker, a CERN akkori kutatója értesítette 1994-ben a problémáról . A probléma azonban nem oldódott meg a szoftvertermék megjelenéséig. Később, 1995-ben Ian Goldberg és David A. Wagner [1] ismét beszélt a problémáról . Az objektummodulokat vissza kellett fejteniük , mivel a Netscape nem volt hajlandó felfedni a véletlenszám-generálás részleteit. A PRNG-t a későbbi kiadásokban (2-es és újabb verziókban) javították az entrópiaforrás véletlenszerűbbre és magasabb entrópiaszintűre változtatásával.

A Microsoft egy nem publikált algoritmust használ véletlen számok generálására Windows operációs rendszereken . Ez az algoritmus a CryptGenRandom segédprogramon keresztül érhető el a felhasználó számára . 2007 novemberében Leo Dorredorf a Haifai Egyetem és a Jeruzsálemi Héber Egyetem társszerzőivel együtt publikált egy tanulmányt A Windows operációs rendszer véletlenszám-generátorának kriptanalízise [2] címmel . A cikk bemutatja a Microsoft által bemutatott algoritmus súlyos hiányosságait. A cikkben közölt következtetések a Windows 2000 rendszer szétszedett kódjának tanulmányozása eredményeként fogalmazódtak meg , de a Microsoft szerint Windows XP-re is vonatkozhatnak [3] .

A National Institute of Standards and Technology (USA) 2007 márciusában ajánlott "determinisztikus pszeudo-véletlenszám-generátorokat" tett közzé, amelyeket a NIST Special Publication 800-90 [4] szabványosított . Az egyik adott PRNG, a Dual EC DRBG , amelyet a Nemzetbiztonsági Ügynökség [5] vezetett be a szabványba , elliptikus kriptográfián alapul, és bizonyos ajánlott konstansokat tartalmaz. 2007 augusztusában Dan Shumov és Nils Fergeson, a Microsoft munkatársa megmutatta, hogy az állandókat úgy is meg lehet választani, hogy az algoritmusban egy hátsó ajtó is létrejöhessen [6] .

2008 májusában Luciano Bello kutató publikált egy tanulmányt, amelyben kijelentette, hogy a Debian Linuxszal és más Debian-alapú disztribúciókkal terjesztett openssl csomagban 2006-ban végrehajtott PRNG-módosítások jelentősen csökkentik a generált értékek entrópiáját, így a kulcsok sebezhetővé teszik a támadásokat. [1] [2] A problémát az egyik Debian fejlesztő által az openssl kódon végrehajtott változtatások okozták, válaszul a fordítói figyelmeztetésekre a látszólag redundáns kóddal kapcsolatban. Ezt a sérülékenységet még aznap javították, amikor ismertté vált [7] .

A PRNG elleni támadások elleni védekezés módjai

Lásd még

Jegyzetek

  1. Véletlenszerűség és Netscape böngésző . Letöltve: 2011. december 9. Az eredetiből archiválva : 2016. május 22.
  2. A Windows operációs rendszer véletlenszám-generátorának kriptoanalízise, ​​Leo Dorrendorf (hivatkozás nem érhető el) . Letöltve: 2011. december 9. Az eredetiből archiválva : 2012. szeptember 6.. 
  3. ↑ A Microsoft megerősíti, hogy az XP véletlenszám-generátor hibát tartalmaz . Archiválva : 2008. június 22.
  4. Ajánlás a véletlenszám-generáláshoz determinisztikus véletlen bitgenerátorok használatával, NIST 800-90 speciális kiadvány Archiválva 2007-09-26 .
  5. Az NSA titkos hátsó ajtót helyezett el az új titkosítási szabványban?
  6. A hátsó ajtó lehetőségéről a NIST SP800-90 Dual Ec Prng-ben . Hozzáférés dátuma: 2011. december 9. Az eredetiből archiválva : 2014. február 26.
  7. Debian OpenSSL biztonsági hiba . Letöltve: 2011. december 9. Az eredetiből archiválva : 2018. szeptember 6..

Irodalom