Turvalisus

/ dev / random vs / dev / urandom ja kas need on turvalised?

/ dev / random vs / dev / urandom ja kas need on turvalised?

Alustamine

Kes oleks võinud arvata, et juhusliku arvu genereerimine on selline segadus, see peaks olema sama sirgjooneline kui numbri äraarvamine kusagil antud vahemiku vahel. Kuid see pole nii lihtne, nagu tundub, ja siiani on tõestatud, et kõik masinad ei suuda iseseisvalt tõelist juhuslikku arvu genereerida.

Miks masinad ei saa tõelist juhuslikku arvu ise genereerida?

Masinad on siiski lihtsalt juhendatud mehhanismide ja vooluringide komplektid ning seetõttu ei saa neid käskida juhusliku arvu iseseisvalt välja mõelda ilma igasuguse abita. Ja seepärast oleme siiani ja edaspidi tegeliku juhusliku arvu genereerimiseks masinatega kaasanud loodust või inimesi. Me ei aruta siin tõelise juhusliku arvu genereerimise üle, vaid arutame juba juurutatud juhuslike arvude generaatorite ning nende töö ja nõrkade külgede üle.

Miks on õige juhusliku arvu genereerimine nii oluline?

Tekib küsimus, miks on tõeliste juhuslike arvude genereerimine oluline ja vastus sellele on julgeolekuprobleemide tõttu. Enamik krüptograafilisi algoritme põhineb juhuslike arvude genereerimisel, kuna neid juhuslikke numbreid kasutatakse krüptograafiliste võtmete loomiseks ja kui genereeritud juhuslikud numbrid pole oma olemuselt tõeliselt juhuslikud, muudavad need krüptograafia tehnikad tervikuna nõrgemaks ja neid võtmeid saab suhteliselt hõlpsasti ennustada kasutades nende juhuslike võtmete genereerimiseks kasutatud algoritmi. See on tõeliste juhuslike arvude kõige olulisem põhjus, välja arvatud sellised rakendused nagu hasartmängud.

Juhuslike arvude generaator Linuxi tuumades:

Meie tänase arutelu teema põhineb Linuxi juhuslike numbrite generaatoril, millistel teguritel see generaator põhineb ja kas see on tõesti nii juhuslik või on see lihtsalt üks teine ​​tavaliselt ebausaldusväärne juhuslik arv.

Linux kasutab pseudo juhuslike arvude generaatorit (PRNG) või krüptograafiliselt turvalist pseudo juhuslike arvude generaatorit (CSPRNG), mis tähendab, et maksimaalse juhuslikkuse saavutamiseks kasutatakse keerukaid matemaatilisi valemeid ja keskkonnaomadusi. Linux oli esimene operatsioonisüsteem, mis PRNG oma tuumaruumi kaasas. Selle rakendas Theodore Ts'o 1994. aastal.

Linuxil on kolm juhuslike arvugeneraatorite kategooriat: / dev / random, / dev / urandom, / dev / arandom. Need kõik kolm on failid, kuhu Linux salvestab juhuslikke numbreid. Nende failide juhuslikud numbrid genereeritakse seadme draiverite ja muude allikate keskkonnamüra abil. Samuti kasutab linux juhuslike arvude juhuslikkuse tagamiseks entroopiat, mis on nende vahelise ebakindluse või häire ulatus. Siit leiate ka Linuxi juhuslike arvude generaatori (RNG) käsiraamatu:

http: // mees7.org / linux / man-pages / man4 / random.4.HTML

/ dev / juhuslik versus / dev / urandom versus / dev / arandom:

Peamised erinevused / dev / juhuslik, / dev / urandom ja / dev / arandom vahel on see, et / dev / random plokid, kui entroopia ei näita piisavat juhuslikkust, / dev / urandom ei blokeeri kunagi, isegi kui pseudo juhuslike arvude generaator ei ole käivitamisel täielikult külvatud ja lõpuks / dev / arandom blokeeritakse ainult siis, kui pseudo juhuslike arvude generaator pole veel täielikult külvatud. Lühidalt öeldes on / dev / random kõige ohutum, siis tuleb / dev / arandom ja kõige vähem ohutu on / dev / urandom. Tavaliselt kasutatakse / dev / random ja / dev / urandom, kuna / dev / arandom on paljudes mõistetes sarnane / dev / urandom. Lühidalt juhuslike arvude kogumi entroopia hinnangut kasutatakse genereeritud arvude juhuslikkuse määramiseks. Mida rohkem on entroopiat, seda rohkem juhuslikkust saavutatakse ja parem. Praegune entroopia suurus ja selle entroopiapuuli suurus on saadaval aadressidel / proc / sys / kernel / random / nimega vastavalt entropy_avail ja pool_size, mida saab terminalis kuvada käskude abil:

cat / proc / sys / kernel / random / entropy_avail

Ja:

cat / proc / sys / kernel / random / pool_size

Nii stsenaariumit kui juhuslikku kasutatakse erinevates stsenaariumides. "Urandomi" kasutatakse seal, kus on pidev vajadus juhuslike arvude järele ja selle juhuslikkus pole eriti oluline, samas kui juhuslikku kasutatakse juhul, kui on probleeme turvalisusega, ja selle juhuslikkus peaks olema usaldusväärne, kuna see blokeerib juhuslike arvude väljastamise, kui entroopia ei ületa märk. Kuigi urandomi entroopia (piiramatu juhuslik) ei ole palju nõrgem, on soovitatav kasutada juhuslikku, kui on vaja suuremat turvalisust, kuna urandomi genereeritud numbri vastu saab rünnata.

Nõrkused Linuxi juhuslike numbrite generaatorites

Mittelenduva mälu riistvara puhul:

Linuxi tuumade puhul pole juhuslike arvude generaator hea sisseehitatud riistvara, näiteks ruuterite jaoks, mille käivitatav olek on ennustatav ja piisava entroopia allikas on piiratud. Sellise riistvara jaoks on soovitatav enne väljalülitamist salvestada ja kasutada juhuslike arvude generaatori (RNG) olekut, mida kasutatakse järgmisel käivitamisel. Sellistel ruuterite juhtumitel saavad ründajad kompromiteerida ja prognoosida genereeritud juhuslikke numbreid ainult siis, kui neil on juurdepääs kõigile ruuteri linkidele ja nad pealtkuulavad selle kommunikatsioonilinke või kui nad on ruuterist ise otse salvestatud RNG olekule juurde pääsenud.

Selle riistvaralise RNG-vea korral tulevad appi kolmanda osapoole entroopiageneraatorid. Need entroopiageneraatorid, näiteks 'haveged', kasutavad protsessori vahemälu ajastust, väliseid heli- ja videosisendusseadmeid, et suurendada entroopiat vastuvõetaval määral.

Entroopia hinnang:

Nagu eespool mainitud, määrab Linuxi tuum entroopia osas juhuslikkuse, kuid tegelikult ei arvuta entroopiat iga kord ja kasutab selle asemel entroopia hinnanguid. Mitmed uuringud on samuti näidanud, et Linuxis kasutatavate juhuslike arvude entroopia hindamine ei ole sobiv ega lähem hinnang, mistõttu on numbrite üldine juhuslikkus nõrgem.

Kuigi Linuxi juhuslike arvude generaatoris on mõningaid nõrkusi, on see võrreldes teiste RNG-dega palju parem variant, unustamata ka Linuxi kaasautorite ja arendajate pakutavaid käimasolevaid plaastreid.

Kokkuvõtteks:

See kõik oli minu poolt Linuxi tuuma juhuslike arvude generaatori kohta. Mul oli tore neid teadmisi teiega levitada. Loodetavasti õppisite selle kaudu midagi uut ja ka seda, et jagate teadmisi kogu maailmale. Lõpuks aitäh, et investeerisite sellesse artiklisse aega.

Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...
Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...
Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...