Biztonság

/ dev / random vs / dev / urandom és biztonságban vannak-e?

/ dev / random vs / dev / urandom és biztonságban vannak-e?

Elkezdeni

Ki gondolta volna, hogy egy véletlenszám előállítása ilyen zűrzavar, állítólag ugyanolyan egyenes, mint egy szám kitalálása bárhol egy adott tartomány között. De ez nem olyan egyszerű, mint amilyennek látszik, és mostanáig az összes gép bebizonyosodott, hogy önmagában nem képes valódi véletlenszámot generálni.

Miért nem képesek a gépek egyedül létrehozni valódi véletlen számot??

A gépek mégis csak utasítások a mechanizmusokról és az áramkörökről, ezért nem utasíthatók arra, hogy önállóan véletlenszámot gondoljanak ki mindenféle segítség nélkül. És ezért idáig és a továbbiakban a természetet vagy az embereket gépekkel vontuk be, hogy valódi véletlenszerű számot állítsunk elő. Itt nem arról lesz szó, hogy miként állíthatunk elő valódi véletlenszerű számot, hanem a már bevezetett véletlenszám-generátorokról, azok működéséről és gyengeségeiről.

Miért olyan valós véletlenszám generálása olyan fontos?

Felmerül a kérdés, hogy miért fontos az igazi véletlenszámok generálása, és erre a válasz a biztonsági aggályok miatt van. A legtöbb kriptográfiai algoritmus véletlen számok generálásán alapul, mivel ezeket a véletlen számokat használják kriptográfiai kulcsok létrehozására, és ha a generált véletlen számok nem igazán véletlenszerűek, akkor ezek a kriptográfiai technikák egészét gyengébbé teszik, és ezek a kulcsok viszonylag könnyebben megjósolhatók a véletlenszerű kulcsok előállításához használt algoritmus segítségével. Ez a valódi véletlenszámok legfontosabb oka, kivéve az olyan alkalmazásokat, mint a szerencsejáték.

Véletlenszám-generátor Linux kernelekben:

A mai megbeszélésünk témája a Linux Random Number Generatoron alapul, ezen a generátoron milyen tényezőkön alapszik, és valóban véletlenszerű-e, vagy csak egy másik tipikusan megbízhatatlan véletlenszám.

A Linux Pseudo Random Number Generator (PRNG) vagy kriptográfiailag biztonságos Pseudo Random Number Generator (CSPRNG) technológiát használ, ami azt jelenti, hogy összetett matematikai képleteket és környezeti tulajdonságokat használ a maximális véletlenszerűség eléréséhez. A Linux volt az első operációs rendszer, amely magába foglalta a PRNG-t. Ezt Theodore Ts'o hajtotta végre 1994-ben.

A Linuxnak három véletlenszám-generátor kategóriája van: / dev / random, / dev / urandom, / dev / arandom. Ez a három fájl az, amelyben a Linux véletlenszámokat tárol. Az ezekben a fájlokban található véletlenszerű számokat az eszközillesztők és más források környezeti zajának felhasználásával generálják. A véletlenszerűség véletlenszerű számainak biztosítása érdekében a linux entrópiát használ, amely a közöttük lévő bizonytalanság vagy rendezetlenség mértéke. Itt találja a Linux véletlenszám-generátor (RNG) kézikönyvét is:

http: // man7.org / linux / man-pages / man4 / random.4.html

/ dev / random ellen / dev / urandom ellen / dev / arandom:

A fő különbségek a / dev / random, / dev / urandom és / dev / arandom között az, hogy a / dev / random blokkol, ha az entrópia nem mutat elégséges véletlenszerűséget, / / ​​dev / urandom nem blokkol soha, még akkor sem, ha az ál véletlenszám-generátor indításkor nincs teljesen beolvasva, és végül / dev / arandom csak akkor blokkol, ha az álvéletlenszám-generátor még nincs teljesen beolvasva. Röviden: a / dev / random a legbiztonságosabb az összes közül, akkor jön a / dev / arandom és a legkevésbé a / dev / urandom. Általában a / dev / random és a / dev / urandom használatos, mert a / dev / arandom sok szempontból hasonló a / dev / urandom-hoz. Röviden a véletlenszám-készlet entrópiájának becslésével lehet meghatározni a generált számok véletlenszerűségét. Minél több az entrópia, annál több véletlenszerűség érhető el és jobb. Az entrópia aktuális mennyisége és az entrópiakészlet nagysága a / proc / sys / kernel / random / neveken entropia_avail és pool_size néven érhető el, amelyek a terminálon a parancsok segítségével jeleníthetők meg:

cat / proc / sys / kernel / random / entropy_avail

És:

cat / proc / sys / kernel / random / pool_size

Az urandom és a random mind különböző forgatókönyvekben használatos. Az „Urandom” kifejezést akkor használják, ha állandóan szükség van véletlenszerű számokra, és véletlenszerűsége nem túl fontos, míg az „véletlenszerű” jelet akkor használják, ha biztonsági aggályok merülnek fel, és véletlenszerűségének megbízhatónak kell lennie, mivel blokkolja a véletlenszerű számok kiadását, ha az entrópia nem felel meg a jel. Bár az urandom entrópiája (korlátlan véletlenszerű) nem sokkal gyengébb, de ajánlott véletlenszerűt használni, ha nagyobb biztonságra van szükség az urandom által generált szám támadásának lehetősége miatt.

Gyengeségek a Linux véletlenszám-generátorokban

Nem felejtő memória hardver esetén:

Linux kernelek esetében a véletlenszám-generátor nem jó olyan beágyazott hardverek esetében, mint például az útválasztók, amelyekben a rendszerindítás állapota kiszámítható és a megfelelő entrópia forrása korlátozott. Ennél a hardvernél ajánlatos a leállítás előtt menteni és használni a véletlenszám-generátor (RNG) állapotot, amelyet a következő indításkor használnak. Az útválasztók ilyen eseteiben a támadók csak akkor képesek kompromisszumot kötni és megjósolni a generált véletlen számokat, ha hozzáférnek az összes útválasztó linkhez, és lehallgatják annak kommunikációs kapcsolatait, vagy ha közvetlenül az útválasztóról jutottak hozzá a mentett RNG állapothoz.

Az RNG ezen hardveres hibájáért harmadik féltől származó entrópiagenerátorok kerülnek megmentésre. Ezek az entrópia-generátorok, például a „haveged” processzor-gyorsítótár-időzítést, külső audio- és videobemeneti eszközöket használnak az entrópia elfogadható mértékű növelésére.

Entrópia becslés:

Amint azt korábban említettük, a Linux kern meghatározza a véletlenszerűséget az entrópia szempontjából, de valójában nem számolja az entrópiát minden egyes alkalommal, hanem az entrópia becsléseket használja. Számos kutatás azt is feltárta, hogy a Linuxban alkalmazott véletlen számok entrópia becslése nem megfelelő vagy közelebbi becslés, így a számok általános véletlenszerűsége gyengébb.

Bár vannak gyengeségek a Linux véletlenszám-generátorban, de ez sokkal jobb megoldás a többi RNG-hez képest, nem szabad megfeledkezni a Linux-közreműködők és fejlesztők által biztosított folyamatos javításokról.

Összegzés:

Ez az én oldalamról szólt a Random Number Generatorról a Linux kernelben. Jól éreztem magam, amikor ezt az ismeretet elterjesztettem veled. Remélem, hogy valami újat tanult meg rajta keresztül, és azt is, hogy tovább fogja osztani a tudást a világgal. Végül köszönöm, hogy időt fordítottál erre a cikkre.

Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...
A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...
A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...