it-swarm-eu.dev

Krmení / dev / náhodný entropický fond?

Jaký způsob dodatečného krmení /dev/random entropický fond byste navrhli pro výrobu náhodných hesel? Nebo existuje snad lepší způsob, jak lokálně vytvořit plně náhodná hesla?

51
pootzko

Pokud je přítomen, můžete jej napájet bílým šumem ze zvukového čipu. Viz tento článek: http://www.linuxfromscratch.org/hints/downloads/files/entropy.txt

24
Henri

Měli byste použít /dev/urandom, ne /dev/random. Dva rozdíly mezi /dev/random a /dev/urandom are (mluvím zde o Linuxu):

  • /dev/random může být teoreticky lepší v souvislosti s informačně-teoreticky bezpečným algoritmem . Toto je druh algoritmu, který je bezpečný proti dnešní technologii a také zítřejší technologii a technologii, kterou používají mimozemšťané a také Boží vlastní iPad. Algoritmy teoreticky bezpečné informace jsou zabezpečeny proti nekonečnému výpočetnímu výkonu. Není třeba říkat, že takové algoritmy jsou velmi vzácné a pokud byste je používali, měli byste to vědět. Toto je také „možná“: interně, /dev/random používá konvenční hashovací funkce, takže je pravděpodobné, že by i tak měl slabiny, kdyby byl napaden nekonečnou silou (nic se však nemusí obávat útočníků na Zemi).

  • /dev/urandom nebude blokovat, zatímco /dev/random to může udělat. /dev/random udržuje počítadlo „kolik entropie má stále“ za předpokladu, že všechny bity, které vytvořil, jsou ztraceným entropickým bitem. Blokování vyvolává velmi skutečné problémy, např. server, který se po automatické instalaci nepodaří zavést, protože zastavuje vytváření klíče serveru SSH (ano, viděl jsem to). /dev/urandom používá kryptograficky silný generátor pseudonáhodných čísel, takže nebude nikdy blokovat.

Takže chcete použít /dev/urandom a přestaňte si dělat starosti s tímto entropickým obchodem.

Nyní se možná budete chtít obávat entropie, pokud píšete instalační program pro Linux. Trik je v tom, že /dev/urandom nikdy neblokuje, nikdy, i když by měl: /dev/urandom je zabezpečeno, pokud od posledního spuštění dostalo dostatek bytů „počáteční entropie“ (stačí 32 náhodných bytů). Normální instalace systému Linux vytvoří náhodné semeno (od /dev/random) po instalaci a uložte jej na disk. Po každém restartu bude semeno načteno a vloženo do /dev/urandom a okamžitě vygenerováno nové semeno (z /dev/urandom) vyměnit. To zaručuje, že /dev/urandom bude mít vždy dostatek počáteční entropie k vytvoření kryptograficky silné alea, což zcela postačuje pro jakoukoli běžnou kryptografickou úlohu, včetně generování hesla. Jediným kritickým bodem je během instalace: instalátor musí získat nějakou entropii od /dev/random, které může blokovat. K tomuto problému dochází také u živých CD a dalších variant bez trvalé paměti pro čtení a zápis. V těchto situacích můžete hledat nějaký zdroj entropie, aby bylo zajištěno, že /dev/random bude dobře krmeno a nebude blokováno.

Samotný operační systém, přesněji jádro, je na správném místě, aby shromáždil entropii z hardwarové události, protože se zabývá hardwarem. Pro entropii je tedy relativně málo, které jádro ještě nepoužívá. Jedním z těchto zbývajících zdrojů jsou data z webové kamery: webová kamera, i když čelí prázdné zdi, bude vydávat data s tepelným šumem, a protože vydává hodně dat , je to dobrý sběrač entropie. Takže jen uchopte několik snímků z webové kamery, hash je pomocí zabezpečené hashovací funkce (SHA-256) a zapište to do /dev/urandom. Tohle je stále velká přeměna.

50
Thomas Pornin

Vím o audio entropický démon a hasge , který používá hasged démon , vyzkoušejte je.

13
krempita

Nejlepší hodnota, kterou jsem viděl v HW náhodném zařízení, je simtec entropický klíč.
Má řadu ochranných opatření zabudovaných k ochraně proti selhání a útokům. Například spustí FIPS 140-2 testy náhodnosti u každé šarže 20 kB, vypíná se, pokud selže statisticky významný počet testů. Jeden jsem dostal, když jsem dělal hodně klíčů generace pro výzkum DNSSEC, a to velmi urychlilo moji práci. Prochází všemi testy dieharderů.

7
spinkham

1) Už nemusíte přidávat žádnou entropii do /dev/random, pro použití pro hesla. Systém to už za vás udělá.

2) Pro vygenerování náhodného hesla je lepší použít /dev/urandom, ne /dev/random. (/dev/random má některé problémy: blokuje, vyčerpává entropický fond způsobem, který může způsobit další uživatele /dev/random Zablokovat. /dev/urandom je lepší univerzální rozhraní.)

3) Zde je jednoduchý skript, který používám pro generování náhodného hesla. Jste vítáni jej používat.

#!/bin/sh
# Make a 48-bit password (8 characters, 6 bits per char)
dd if=/dev/urandom count=1 2>/dev/null | base64 | head -1 | cut -c4-11 
7
D.W.

Pro generování náhodných dat používám kombinaci zdrojů dat a dobrý hashovací algoritmus.

Na webovém serveru můžete kombinovat data serveru (HW, SW, výkon), klientská data (user-agent, doba požadavku, cookie, proměnné URL, cokoli, co můžete shromáždit), některá externí data (např. Random.org), promíchejte vše s řekněme sha1 (mixed_data + time + some_secret_key) a získáte poměrně nepředvídatelné kousky náhodných dat.

Můžete také zvážit použití P2PEG pro snadné shromažďování entropie od klientů a serveru.

2
DUzun

Hesla, jsou-li krátká, jsou vždy prasklá hrubou silou, pokud rychlost nebo počet pokusů není omezen. Pokud jsou naopak pokusy omezené (např. Interaktivní přihlášení), i malé množství entropie je v podstatě neřešitelné - množství požadovaných pokusů se opravdu brzy zakáže.

Neměly by tedy existovat žádné případy, kdy by bylo důležité získat opravdu dobrou entropii pro hesla.

Takže stačí použít/dev/urandom, je to víc než dost dobré.

Další odpovědi, které jsou zde uvedeny, jsou dobré komentáře o tom, jak zajistit, aby vaše/dev/náhodná dodávka měla dostatečnou entropii, pokud ji potřebujete.

1
Nakedible