Bezpečnostní

/ dev / random vs / dev / urandom a jsou zabezpečené?

/ dev / random vs / dev / urandom a jsou zabezpečené?

Začínáme

Kdo by si myslel, že vygenerování náhodného čísla bude takový nepořádek, má to být stejně přímočaré jako hádání čísla kdekoli mezi daným rozsahem. Ale není to tak jednoduché, jak se zdá, a dosud se ukázalo, že všechny stroje samy o sobě nemohou generovat skutečné náhodné číslo.

Proč stroje nemohou samy generovat skutečné náhodné číslo?

Stroje jsou zatím jen poučené sady mechanismů a obvodů, a proto jim nelze dát pokyn, aby si samy vymyslely náhodné číslo bez jakékoli pomoci. A proto jsme doposud a dále zapojovali přírodu nebo lidi stroji, abychom generovali skutečné náhodné číslo. Nebudeme zde diskutovat o tom, jak generovat skutečné náhodné číslo, ale budeme diskutovat o již implementovaných generátorech náhodných čísel a jejich fungování a slabinách.

Proč je generování skutečného náhodného čísla tak důležité?

Vyvstává otázka, proč jsou generace skutečných náhodných čísel důležitá a odpověď na to je z bezpečnostních důvodů. Většina kryptografických algoritmů je založena na generování náhodných čísel, protože tato náhodná čísla se používají k vytváření kryptografických klíčů, a pokud generovaná náhodná čísla nejsou ve své podstatě náhodná, způsobují, že celé tyto kryptografické techniky jsou slabší a tyto klíče lze relativně snadno předvídat pomocí algoritmu, který byl použit ke generování těchto náhodných klíčů. To je nejdůležitější důvod pro skutečná náhodná čísla, kromě aplikací, jako je hazard.

Generátor náhodných čísel v linuxových jádrech:

Téma naší dnešní diskuse je založeno na generátoru náhodných čísel Linuxu, na jakých faktorech je tento generátor založen a je to opravdu tak náhodné nebo je to jen další typicky nespolehlivé náhodné číslo.

Linux používá generátor pseudonáhodných čísel (PRNG) nebo kryptograficky bezpečný generátor náhodných čísel (CSPRNG), což znamená, že k dosažení maximální náhodnosti používá složité matematické vzorce a vlastnosti prostředí. Linux byl prvním OS, který do svého prostoru jádra zahrnul PRNG. To provedl Theodore Ts'o v roce 1994.

Linux má tři kategorie generátorů náhodných čísel, / dev / random, / dev / urandom, / dev / arandom. To jsou všechny tři soubory, do kterých Linux ukládá náhodná čísla. Náhodná čísla v těchto souborech jsou generována pomocí environmentálního šumu z ovladačů zařízení a jiných zdrojů. Aby Linux zajistil náhodnost svých náhodných čísel, používá entropii, což je míra nejistoty nebo nepořádku mezi nimi. Manuální stránku pro Linux Random Number Generator (RNG) najdete také zde:

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

/ dev / random proti / dev / urandom proti / dev / arandom:

Hlavní rozdíly mezi / dev / random, / dev / urandom a / dev / arandom spočívají v tom, že / dev / random bloky, pokud entropie neindikuje dostatečnou náhodnost, / dev / urandom nikdy neblokuje, i když generátor pseudonáhodných čísel není plně zavedený při spuštění a nakonec / dev / arandom blokuje pouze v případě, že generátor pseudonáhodných čísel ještě není plně nasazen. Stručně řečeno, / dev / random je nejbezpečnější ze všech, pak přichází / dev / arandom a nejméně bezpečné je / dev / urandom. Normálně se používají / dev / random a / dev / urandom, protože / dev / arandom je v mnoha ohledech podobný / dev / urandom. Stručně řečeno, odhad entropie pro skupinu náhodných čísel se používá k určení náhodnosti generovaných čísel. Čím více entropie je, tím více náhodnosti je dosaženo a tím lepší je. Aktuální množství entropie a velikost jeho entropického fondu jsou k dispozici na / proc / sys / kernel / random / pojmenované jako entropy_avail a pool_size, které lze v terminálu zobrazit pomocí příkazů:

cat / proc / sys / kernel / random / entropy_avail

A:

cat / proc / sys / kernel / random / pool_size

Urandom i random se používají v různých scénářích. 'Urandom' se používá tam, kde je neustálá potřeba náhodných čísel a jeho náhodnost není příliš důležitá, zatímco 'náhodný' se používá tam, kde existuje bezpečnostní problém a jeho náhodnost by měla být spolehlivá, protože blokuje výstup náhodných čísel, pokud entropie není až značka. Ačkoli entropie pro urandom (Unlimited Random) není o moc slabší, ale je doporučeno použít random, když je vyžadována větší bezpečnost kvůli možnosti útoků na číslo generované urandom.

Slabé stránky v Linuxových generátorech náhodných čísel

Pro energeticky nezávislý paměťový hardware:

U linuxových jader není generátor náhodných čísel vhodný pro vestavěný hardware, jako jsou směrovače, u nichž je stav bootování předvídatelný a zdroj dostatečné entropie je omezený. U tohoto druhu hardwaru se doporučuje uložit a použít stav generátoru náhodných čísel (RNG) před vypnutím, který se použije při příštím spuštění. V takových případech směrovačů mohou útočníci kompromitovat a předvídat vygenerovaná náhodná čísla pouze v případě, že mají přístup ke všem odkazům směrovače a odposlouchávají jeho komunikační odkazy nebo pokud mají přímý přístup k uloženému stavu RNG ze samotného směrovače.

Kvůli této chybě RNG v případě hardwaru přicházejí na pomoc generátory entropie třetích stran. Tyto generátory entropie, jako například „hasged“, používají časování mezipaměti procesoru, externí audio a video vstupní zařízení ke zvýšení entropie na přijatelnou míru.

Odhad entropie:

Jak již bylo zmíněno dříve, jádro Linuxu určuje náhodnost z hlediska entropie, ale ve skutečnosti entropii pokaždé nevypočítává a místo toho používá odhady entropie. Několik výzkumů také odhalilo, že odhad entropie náhodných čísel používaných v Linuxu není vhodný nebo bližší odhad, což oslabuje celkovou náhodnost čísel.

I když v Linux Random Number Generator existují určité slabiny, je to mnohem lepší volba ve srovnání s jinými RNG, nezapomenout na probíhající patche poskytované linuxovými přispěvateli a vývojáři.

Závěrečné:

To vše bylo z mé strany o generátoru náhodných čísel v linuxovém jádře. Dobře jsem se s vámi šířil. Doufám, že jste se prostřednictvím něčeho naučili něco nového, a také to, že budete tyto znalosti sdílet s celým světem. Nakonec děkuji za investování času do tohoto článku.

Přemapujte tlačítka myši odlišně pro jiný software pomocí ovládání myší X-Mouse
Možná potřebujete nástroj, který by mohl změnit ovládání myši u každé aplikace, kterou používáte. V takovém případě můžete vyzkoušet aplikaci s názvem...
Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...
Trackpad a ukazatel myši AppyMouse na obrazovce pro tablety Windows
Uživatelé tabletů často postrádají ukazatel myši, zejména když obvykle používají notebooky. Dotykové smartphony a tablety mají mnoho výhod a jediným o...