/dev/tilfeldig vs/dev/urandom og er de sikre?

/dev/tilfeldig vs/dev/urandom og er de sikre?

Starter

Hvem hadde trodd at å generere et tilfeldig tall ville være et slikt rot, det er ment å være like rett frem som å gjette et tall hvor som helst mellom et gitt område. Men det er ikke så enkelt som det ser ut, og til nå er alle maskinene bevist å ikke være i stand til å generere et ekte tilfeldig tall på egen hånd.

Hvorfor maskiner ikke kan generere ekte tilfeldig tall på egen hånd?

Maskiner ennå er nettopp instruerte sett med mekanismer og kretsløp, og de kan derfor ikke instrueres om å tenke på et tilfeldig tall på egen hånd uten hjelp. Og det er grunnen til nå og videre, har vi involvert natur eller mennesker med maskiner for å generere et ekte tilfeldig tall. Vi vil ikke diskutere her hvordan vi kan generere et ekte tilfeldig tall, men vi vil diskutere om de allerede implementerte tilfeldige tallgeneratorene og deres arbeid og svakheter.

Hvorfor er det så viktig å generere et ekte tilfeldig tall?

Spørsmålet oppstår at hvorfor er generering av ekte tilfeldige tall viktige og svaret på det er på grunn av sikkerhetsproblemer. De fleste kryptografiske algoritmer er basert på generering av tilfeldige tall da disse tilfeldige tallene brukes til å lage kryptografiske taster, og hvis de tilfeldige tallene som genereres ikke virkelig er tilfeldig Bruke algoritmen som ble brukt til å generere de tilfeldige nøklene. Dette er den viktigste grunnen til et ekte tilfeldig tall, annet enn applikasjoner som pengespill.

Tilfeldig tallgenerator i Linux -kjerner:

Temaet for diskusjonen vår i dag er basert på Linux tilfeldig tallgenerator, på hvilke faktorer som er denne generatoren basert på og er det virkelig så tilfeldig, eller er det bare en annen typisk upålitelig tilfeldig tall.

Linux bruker Pseudo Random Number Generator (PRNG) eller kryptografisk sikker pseudo Random Number Generator (CSPRNG) som betyr at den bruker komplekse matematiske formler og miljøegenskaper for å oppnå maksimal tilfeldighet. Linux var det første operativsystemet som inkluderer PRNG i kjerneplassen. Dette ble implementert av Theodore Ts'o i 1994.

Linux har tre kategorier av tilfeldige tallgeneratorer, /dev /tilfeldige, /dev /urandom, /dev /arandom. Disse alle tre er filene der Linux lagrer tilfeldige tall. De tilfeldige tallene i disse filene genereres ved hjelp av miljøstøyen fra enhetsdriverne og andre kilder. For å sikre tilfeldighet i sine tilfeldige tall, bruker Linux entropi som er omfanget av usikkerhet eller forstyrrelse mellom dem. Du kan også finne den manuelle siden for Linux Random Number Generator (RNG) her:

http: // man7.org/linux/mann-sider/man4/tilfeldig.4.html

/dev/tilfeldig Versus /dev /urandom versus /dev /arandom:

Hovedforskjellene mellom /dev /tilfeldige, /dev /urandom og /dev /arandom er at /dev /tilfeldige blokker hvis entropien ikke indikerer tilstrekkelig tilfeldighet, /dev /urandom blokkerer ikke noen gang, selv når pseudo tilfeldig tallgenerator er ikke helt sået når du er startet og til slutt /dev /arandom blokker bare når pseudo tilfeldig tallgenerator ennå ikke er helt seedet. Kort sagt, /Dev /Random er den sikreste av alle, så kommer /dev /arandom og det minst sikreste er /dev /urandom. Normalt /dev /tilfeldig og /dev /urandom brukes fordi /dev /arandom på mange termer ligner på /dev /urandom. Entropiestimering for det tilfeldige antall bassengene brukes kort sagt for å bestemme tilfeldigheten til generert tall. Jo mer entropi er, jo mer tilfeldighet oppnås og bedre er det. Gjeldende mengde entropi og størrelse på dets entropi -basseng er tilgjengelig på/proc/sys/kjerne/tilfeldig/navngitt som henholdsvis entropy_avail og basseng_størrelse, som kan vises i terminalen ved å bruke kommandoer:

CAT/Proc/Sys/Kernel/Random/Entropy_avail

Og:

Cat/Proc/Sys/Kernel/Random/Pool_Size

Både urandom og tilfeldig brukes i forskjellige scenarier. 'Urandom' brukes der det er konstant behov for tilfeldige tall og dets tilfeldighet er ikke så viktig mens 'tilfeldig' brukes der det er et sikkerhetsproblem og det merket. Selv om entropi for urandom (ubegrenset tilfeldig) ikke er mye svakere, men det anbefales å bruke tilfeldig når det kreves mer sikkerhet på grunn av muligheten for angrep på antall generert av urandom.

Svakheter i Linux tilfeldige tallgeneratorer

For ikke-flyktig minnemaskinvare:

For Linux -kjerner er ikke den tilfeldige tallgeneratoren bra for innebygd maskinvare som rutere, der oppstartbar tilstand er forutsigbar og kilden for nok entropi er begrenset. For denne typen maskinvare anbefales det å lagre og bruke Random Number Generator (RNG) -tilstanden før nedleggelse som vil bli brukt på neste oppstart. I slike tilfeller av rutere kan angriperne bare gå på akkord og forutsi de genererte tilfeldige tallene hvis de har tilgang til alle ruterkoblingene og de avlytter kommunikasjonslenkene, eller hvis de direkte har fått tilgang til den lagrede RNG -tilstanden fra selve ruteren.

For denne feilen med RNG i tilfelle av maskinvare, kommer tredjeparts entropi generatorer til unnsetning. Disse entropi -generatorene som 'hasged' bruker prosessor cache timing, ekstern lyd- og videoinngangsenheter for å øke entropien i en akseptabel grad.

Entropiestimering:

Som nevnt før bestemmer Linux -kjernen tilfeldighet når det. Flere undersøkelser har også avdekket at entropiestimeringen av tilfeldige tall brukt i Linux ikke er egnet eller nærmere estimater, og dermed gjør den generelle tilfeldigheten til tallene svakere.

Selv om det er noen svakheter i Linux tilfeldig tallgenerator, men det er langt bedre alternativ sammenlignet med andre RNG -er, for ikke å glemme de pågående lappene som er levert av Linux -bidragsytere og utviklere.

Konkluderer:

Dette var alt fra min side om den tilfeldige tallgeneratoren i Linux -kjernen. Jeg hadde det bra med å spre denne kunnskapen med deg. Håper du lærte noe nytt gjennom det og også at du vil dele kunnskapen videre til verden. Til slutt, takk for at du investerte tid i denne artikkelen.