Sigurnost

/ dev / random vs / dev / urandom i jesu li sigurni?

/ dev / random vs / dev / urandom i jesu li sigurni?

Početak rada

Tko bi pomislio da bi generiranje slučajnog broja bio takav nered, trebao bi biti jednako izravan kao pogađanje broja bilo gdje između određenog raspona. Ali to nije tako jednostavno kao što se čini, a također je i do sada dokazano da svi strojevi ne mogu sami generirati pravi slučajni broj.

Zašto strojevi ne mogu sami generirati pravi slučajni broj?

Strojevi su ipak samo upućeni skupovi mehanizama i sklopova i stoga im se ne može naložiti da samostalno smišljaju slučajni broj bez ikakve pomoći. I zato smo do sada i dalje uključivali prirodu ili ljude strojevima kako bismo generirali istinski slučajni broj. Ovdje nećemo raspravljati o tome kako generirati pravi slučajni broj, već o već implementiranim generatorima slučajnih brojeva i njihovom radu i slabostima.

Zašto je generiranje istinitog slučajnog broja toliko važno?

Postavlja se pitanje zašto su generacije stvarnih slučajnih brojeva važne, a odgovor na to je zbog sigurnosnih razloga. Većina kriptografskih algoritama temelji se na generiranju slučajnih brojeva jer se ti slučajni brojevi koriste za stvaranje kriptografskih ključeva, a ako generirani slučajni brojevi nisu uistinu slučajni, to cjelokupnu kriptografsku tehniku ​​čini slabijom i ti se ključevi mogu relativno lako predvidjeti koristeći algoritam koji je korišten za generiranje tih slučajnih ključeva. To je najvažniji razlog istinitog slučajnog broja, osim aplikacija poput kockanja.

Generator slučajnih brojeva u Linux kernelima:

Tema današnje rasprave temelji se na Linux Generatoru slučajnih brojeva, na kojim je čimbenicima zasnovan ovaj generator i je li stvarno toliko slučajan ili je to samo još jedan tipično nepouzdan slučajni broj.

Linux koristi Pseudo Generator slučajnih brojeva (PRNG) ili Kriptografski siguran Pseudo Generator slučajnih brojeva (CSPRNG), što znači da koristi složene matematičke formule i svojstva okoliša za postizanje maksimalne slučajnosti. Linux je bio prvi OS koji je uključio PRNG u svoj prostor jezgre. To je provodio Theodore Ts'o 1994. godine.

Linux ima tri kategorije generatora slučajnih brojeva, / dev / random, / dev / urandom, / dev / arandom. Sve su to tri datoteke u koje Linux sprema slučajne brojeve. Nasumični brojevi u tim datotekama generiraju se korištenjem šumova okoliša iz upravljačkih programa uređaja i drugih izvora. Također, kako bi osigurao slučajnost svojih slučajnih brojeva, linux koristi entropiju koja je opseg nesigurnosti ili poremećaja među njima. Ovdje možete pronaći i stranicu s priručnikom za Linux Generator slučajnih brojeva (RNG):

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

/ dev / slučajno protiv / dev / urandom protiv / dev / arandom:

Glavne razlike između / dev / random, / dev / urandom i / dev / arandom su u tome što / dev / random blokovi ako entropija ne ukazuje na dovoljnu slučajnost, / dev / urandom ne blokira nikada, čak i kada je generator pseudo slučajnih brojeva nije u potpunosti zasijan kada se pokrene i na kraju / dev / arandom blokira samo kada pseudo slučajni brojni generator još nije u potpunosti zasijan. Ukratko, / dev / random je najsigurniji od svih, zatim dolazi / dev / arandom, a najmanje najsigurniji je / dev / urandom. Obično se koriste / dev / random i / dev / urandom jer je / dev / arandom u mnogim terminima sličan / dev / urandom. Procjena entropije za skup slučajnih brojeva ukratko se koristi za određivanje slučajnosti generiranih brojeva. Što je više entropije, to je više slučajnosti postignuto i to bolje. Trenutna količina entropije i veličina njenog entropijskog spremišta dostupni su na / proc / sys / kernel / random / imenovanim entropy_avail odnosno pool_size, koji se mogu prikazati u terminalu pomoću naredbi:

mačka / proc / sys / kernel / random / entropy_avail

I:

cat / proc / sys / kernel / random / pool_size

I slučajni i slučajni koriste se u različitim scenarijima. 'Urandom' se koristi tamo gdje postoje stalne potrebe za slučajnim brojevima i njegova slučajnost nije puno važna, dok se 'random' koristi kada postoji sigurnosna zabrinutost i njegova slučajnost treba biti pouzdana jer blokira izlaz slučajnih brojeva ako entropija nije dorasla znak. Iako entropija za urandom (neograničeni slučajni slučaj) nije puno slabija, ali preporučljivo je koristiti random kada je potrebna veća sigurnost zbog mogućnosti napada na broj koji generira urandom.

Slabosti u Linux generatorima slučajnih brojeva

Za trajni memorijski hardver:

Za Linux jezgre, generator slučajnih brojeva nije dobar za ugrađeni hardver kao što su usmjerivači, u kojem je stanje pokretanja predvidljivo, a izvor za dovoljno entropije ograničen. Za ovu vrstu hardvera preporuča se spremanje i korištenje stanja Generator slučajnih brojeva (RNG) prije isključivanja koje će se koristiti pri sljedećem pokretanju. U takvim slučajevima usmjerivača napadači mogu kompromitirati i predvidjeti generirane slučajne brojeve samo ako imaju pristup svim vezama usmjerivača i prisluškuju njegove komunikacijske veze ili ako su iz samog usmjerivača izravno pristupili spremljenom RNG stanju.

Za ovu manu RNG-a u slučaju hardvera u pomoć dolaze generatori entropije treće strane. Ovi generatori entropije, kao što je "hasged", koriste vrijeme predmemorije procesora, vanjske audio i video ulazne uređaje za povećanje entropije na prihvatljiv stupanj.

Procjena entropije:

Kao što je spomenuto prije, Linux kernel određuje slučajnost u smislu entropije, ali zapravo ne izračunava entropiju svaki put i umjesto toga koristi procjene entropije. Nekoliko istraživanja također je otkrilo da procjena entropije slučajnih brojeva koji se koriste u Linuxu nisu prikladne ili bliže procjene, što cini ukupnu slučajnost brojeva slabijom.

Iako postoje neke slabosti u Linux Generatoru slučajnih brojeva, ali to je daleko bolja opcija u usporedbi s drugim RNG-ovima, ne zaboraviti tekuće zakrpe koje pružaju suradnici i programeri Linuxa.

Zaključno:

Sve je to bilo s moje strane u vezi s Generatorom slučajnih brojeva u Linux jezgri. Bilo mi je lijepo šireći ovo znanje s vama. Nadam se da ste kroz to naučili nešto novo, kao i da ćete znanje podijeliti dalje sa svijetom. Na kraju, hvala što ste uložili vrijeme u ovaj članak.

Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...
Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...
Kontrolirajte i upravljajte kretanjem miša između više monitora u sustavu Windows 10
Dvostruki zaslon upravitelja miša omogućuje vam kontrolu i konfiguriranje kretanja miša između više monitora, usporavajući njegovo kretanje blizu gran...