Sikkerhed

/ dev / tilfældig vs / dev / urandom og er de sikre?

/ dev / tilfældig vs / dev / urandom og er de sikre?

Kom godt i gang

Hvem ville have troet at generere et tilfældigt tal ville være sådan et rod, det formodes at være lige så ligetil som at gætte et tal hvor som helst mellem et givet interval. Men det er ikke så simpelt som det ser ud til, og også indtil nu er alle maskiner bevist at være i stand til at generere et ægte tilfældigt tal alene.

Hvorfor maskiner ikke kan generere ægte tilfældigt tal alene?

Maskiner er alligevel bare instrueret sæt af mekanismer og kredsløb, og derfor kan de ikke instrueres om at tænke på et tilfældigt tal alene uden hjælp. Og det er derfor, indtil nu og videre, har vi involveret naturen eller mennesker med maskiner for at generere et ægte tilfældigt tal. Vi vil ikke diskutere her, hvordan man genererer et ægte tilfældigt tal, men vi vil diskutere om de allerede implementerede tilfældige talgeneratorer og deres arbejde og svagheder.

Hvorfor er det så vigtigt at generere et sandt tilfældigt tal??

Spørgsmålet opstår, at hvorfor er generering af ægte tilfældige tal vigtige, og svaret på det skyldes sikkerhedsproblemer. De fleste kryptografiske algoritmer er baseret på genereringen af ​​tilfældige tal, da disse tilfældige tal bruges til at oprette kryptografiske nøgler, og hvis de genererede tilfældige tal ikke er tilfældige, gør disse hele disse kryptografiske teknikker svagere, og disse nøgler kan forudsiges relativt lettere. ved hjælp af algoritmen, der blev brugt til at generere disse tilfældige nøgler. Dette er den vigtigste årsag til ægte tilfældige tal bortset fra applikationer som hasardspil.

Tilfældig talgenerator i Linux-kerner:

Emnet for vores diskussion i dag er baseret på Linux Random Number Generator, på hvilke faktorer denne generator er baseret på, og er det virkelig så tilfældigt eller er det bare et andet typisk upålideligt tilfældigt tal.

Linux bruger Pseudo Random Number Generator (PRNG) eller kryptografisk sikker Pseudo Random Number Generator (CSPRNG), hvilket betyder at den bruger komplekse matematiske formler og miljøegenskaber for at opnå maksimal tilfældighed. Linux var det første operativsystem, der inkluderede PRNG i dets kerneområde. Dette blev implementeret af Theodore Ts'o i 1994.

Linux har tre kategorier af tilfældige talgeneratorer, / dev / random, / dev / urandom, / dev / arandom. Disse alle tre er de filer, hvor Linux gemmer tilfældige tal. De tilfældige tal i disse filer genereres ved hjælp af miljøstøj fra enhedsdrivere og andre kilder. For at sikre tilfældighed i dets tilfældige tal bruger linux også entropi, hvilket er omfanget af usikkerhed eller uorden mellem dem. Du kan også finde manualsiden til Linux Random Number Generator (RNG) her:

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

/ dev / tilfældig imod / dev / urandom imod / dev / arandom:

De vigtigste forskelle mellem / dev / tilfældig, / dev / urandom og / dev / arandom er, at / dev / tilfældige blokke, hvis entropien ikke indikerer tilstrækkelig tilfældighed, / dev / urandom ikke blokerer nogensinde, selv når pseudo tilfældig talgenerator er ikke fuldt seedet ved opstart og til sidst / dev / arandom blokerer kun når pseudo tilfældig talgenerator endnu ikke er fuldt seedet. Kort sagt, / dev / random er den sikreste af alle, så kommer / dev / arandom og den mindst sikreste er / dev / urandom. Normalt bruges / dev / random og / dev / urandom, fordi / dev / arandom i mange termer ligner / dev / urandom. Entropi-estimatet for den tilfældige talpulje kort sagt bruges til at bestemme tilfældigheden af ​​genererede tal. Jo mere entropi er, jo mere tilfældighed opnås og bedre er det. Den aktuelle mængde entropi og størrelse på dens entropipool er tilgængelig på henholdsvis / proc / sys / kernel / random / navngivet som entropy_avail og pool_size, som kan vises i terminalen ved hjælp af kommandoer:

cat / proc / sys / kernel / random / entropy_avail

Og:

cat / proc / sys / kernel / random / pool_size

Både urandom og tilfældig bruges i forskellige scenarier. 'Urandom' bruges, hvor der konstant er behov for tilfældige tal, og dens tilfældighed ikke er meget vigtig, mens 'tilfældig' bruges, hvor der er sikkerhedsproblemer, og dens tilfældighed skal være pålidelig, da den blokerer for udsendelse af tilfældige tal, hvis entropi ikke er op til mærket. Selvom entropi for urandom (Unlimited Random) ikke er meget svagere, men det anbefales at bruge tilfældigt, når der kræves mere sikkerhed på grund af muligheden for angreb på antal genereret af urandom.

Svagheder i Linux tilfældige talgeneratorer

Til ikke-flygtig hukommelseshardware:

For Linux-kerner er tilfældig talgenerator ikke god til indlejret hardware såsom routere, hvor opstartbar tilstand er forudsigelig, og kilden til nok entropi er begrænset. For denne type hardware anbefales det at gemme og bruge tilstanden Random Number Generator (RNG) før nedlukning, som vil blive brugt ved næste opstart. I sådanne tilfælde af routere kan angriberne kun gå på kompromis og forudsige de genererede tilfældige tal, hvis de har adgang til alle routerlinkene, og de aflytter dens kommunikationslink, eller hvis de har direkte adgang til den gemte RNG-tilstand fra selve routeren.

For denne fejl i RNG i tilfælde af hardware kommer tredjeparts entropi-generatorer til undsætning. Disse entropi-generatorer såsom 'haveged' bruger processorens cache-timing, eksterne lyd- og videoindgangsenheder til at øge entropien til en acceptabel grad.

Entropi estimering:

Som nævnt før bestemmer Linux-kernen tilfældighed med hensyn til entropi, men den beregner faktisk ikke entropi hver gang og bruger i stedet entropi-estimater. Flere undersøgelser har også afsløret, at entropi-estimeringen af ​​tilfældige tal, der anvendes i Linux, ikke er passende eller tættere estimater, hvilket gør den samlede tilfældighed af tallene svagere.

Selvom der er nogle svagheder i Linux Random Number Generator, men det er langt bedre mulighed sammenlignet med andre RNG'er, for ikke at glemme de igangværende patches, der leveres af Linux-bidragsydere og udviklere.

Afslutning:

Dette var alt fra min side om Random Number Generator i Linux-kernen. Jeg havde en god tid med at sprede denne viden med dig. Håber du har lært noget nyt gennem det, og også at du vil dele viden videre til verden. Endelig tak for at have investeret tid i denne artikel.

Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...