Sikkerhet

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

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

Starter

Hvem skulle tro at å generere et tilfeldig tall ville være et slikt rot, det skal 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 også til nå har alle maskiner vist seg å være i stand til å generere et ekte tilfeldig tall alene.

Hvorfor maskiner ikke kan generere ekte tilfeldig tall alene?

Maskiner er likevel bare instruerte sett med mekanismer og kretser, og dermed kan de ikke bli bedt om å tenke på et tilfeldig tall alene uten hjelp. Og det er derfor til nå og videre, vi har involvert naturen eller mennesker med maskiner for å generere et ekte tilfeldig tall. Vi vil ikke diskutere her hvordan man genererer 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 generering av sanne tilfeldige tall er viktig, 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 nøkler, og hvis tilfeldige tall som genereres ikke er helt tilfeldige, gjør disse hele disse kryptografiske teknikkene svakere, og disse nøklene kan forutsies relativt lettere. ved hjelp av algoritmen som ble brukt til å generere disse tilfeldige nøklene. Dette er den viktigste årsaken til ekte tilfeldige tall, bortsett fra applikasjoner som gambling.

Tilfeldig tallgenerator i Linux-kjerner:

Temaet for diskusjonen vår i dag er basert på Linux Random Number Generator, på hvilke faktorer denne generatoren er basert på, og er det egentlig så tilfeldig eller er det bare et annet typisk upålitelig tilfeldig tall.

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

Linux har tre kategorier av tilfeldige tallgeneratorer, / dev / random, / dev / urandom, / dev / arandom. Disse alle tre er filene der Linux lagrer tilfeldige tall. Tilfeldige tall i disse filene genereres ved hjelp av miljøstøy fra enhetsdriverne og andre kilder. For å sikre tilfeldighet i tilfeldige tall, bruker Linux entropi som er omfanget av usikkerhet eller uorden mellom dem. Du finner også manualsiden for Linux Random Number Generator (RNG) her:

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

/ dev / tilfeldig mot / dev / urandom mot / dev / arandom:

Hovedforskjellene mellom / dev / random, / dev / urandom og / dev / arandom er at / dev / random blokkerer hvis entropien ikke indikerer tilstrekkelig tilfeldighet, / dev / urandom ikke blokkerer noen gang, selv når pseudo tilfeldig tallgenerator er ikke fullsådd når den startes, og til slutt blokkerer / dev / arandom bare når pseudo tilfeldig tallgenerator ennå ikke er fullsådd. Kort sagt, / dev / random er den tryggeste av alle, så kommer / dev / arandom og den minst sikreste er / dev / urandom. Normalt brukes / dev / random og / dev / urandom fordi / dev / arandom i mange termer ligner på / dev / urandom. Entropiestimasjonen for tilfeldig tallpool brukes kort og godt for å bestemme tilfeldigheten til genererte tall. Jo mer entropi er, jo mer tilfeldighet oppnås og bedre er det. Den nåværende mengden entropi og størrelsen på entropipoolen er tilgjengelig på henholdsvis / proc / sys / kernel / random / navngitt som entropy_avail og pool_size, som kan vises i terminalen ved hjelp av kommandoer:

cat / proc / sys / kernel / random / entropy_avail

Og:

cat / proc / sys / kernel / random / pool_size

Både urandom og random brukes i forskjellige scenarier. 'Urandom' brukes der det er konstant behov for tilfeldige tall og dens tilfeldighet ikke er så viktig, mens 'tilfeldig' brukes der det er et sikkerhetsproblem og tilfeldigheten bør være pålitelig, da den blokkerer utlevering av tilfeldige tall hvis entropi ikke er opp til merket. Selv om entropi for urandom (Unlimited Random) ikke er mye svakere, men det anbefales å bruke tilfeldig når mer sikkerhet er nødvendig på grunn av muligheten for angrep på antall generert av urandom.

Svakheter i tilfeldige antall generatorer i Linux

For ikke-flyktig minnemaskinvare:

For Linux-kjerner er tilfeldig tallgenerator ikke 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 tilstanden Random Number Generator (RNG) før avstenging som vil bli brukt ved neste oppstart. I slike tilfeller av rutere kan angriperne bare kompromittere og forutsi de genererte tilfeldige tallene hvis de har tilgang til alle ruterkoblingene, og de lytter til kommunikasjonskoblingene, eller hvis de har direkte tilgang til den lagrede RNG-staten fra selve ruteren.

For denne feilen ved RNG i tilfelle maskinvare, kommer tredjeparts entropi-generatorer til unnsetning. Disse entropi-generatorene som 'haveged' bruker prosessorbuffertiming, eksterne lyd- og videoinngangsenheter for å øke entropien til en akseptabel grad.

Anslag om entropi:

Som nevnt før, bestemmer Linux-kjernen tilfeldighet når det gjelder entropi, men den beregner faktisk ikke entropi hver gang, og bruker i stedet entropi-estimater. Flere undersøkelser har også avslørt at entropiestimering av tilfeldige tall som brukes i Linux, ikke er passende eller nærmere estimater, og dermed blir den totale tilfeldigheten til tallene svakere.

Selv om det er noen svakheter i Linux Random Number Generator, men det er langt bedre alternativ sammenlignet med andre RNGer, for ikke å glemme de pågående oppdateringene som tilbys av Linux-bidragsytere og utviklere.

Avsluttende:

Dette var alt fra min side om Random Number Generator i Linux-kjernen. Jeg hadde en god tid med å spre denne kunnskapen til deg. Håper du har lært 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.

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...