GNU/Linux >> Znalost Linux >  >> Linux

RdRand z /dev/random

Je to hardwarová implementace, která nebyla formálně testována a je proprietární. Potencionální obava je, že Intel mohl implementaci na žádost NSA zatajit.

Současný způsob zamíchání výstupu rdrand do linuxového jádra PRNG spočívá v tom, že je xorován do fondu, což matematicky znamená, že není možný způsob, jak slabý výstup implementace rdrand oslabit celkový fond – buď jej posílí. nebo s bezpečností nic neudělejte.

Skutečným rizikem však je, že instrukce xor je zablokována způsobem, který detekuje použití rdrand ve speciálním scénáři, a poté při volání xor vytvoří jiný výstup, což způsobí pouze záměrně oslabený výstup rdrand, který má být umístěn do bazénu.

Proveditelný? Ano. Přijatelný? Vzhledem k nedávným odhalením možná. Pokud je to backdoored, je na tom Linus spoluviníkem? Váš odhad je stejně dobrý jako můj.

Také je tu skvělý dokument o skrývání hardwarových zadních vrátek na úrovni tranzistorů v CPU.

Upravit, únor 2019. Uživatel Luc níže uvedl, že se věci změnily od doby, kdy byla tato odpověď původně napsána:

Od Linuxu 4.19 jádro důvěřuje RDRAND, že plně osídluje svůj CSPRNG, pokud při zavádění neprojde příznak random.trust_cpu=0 (nebo nenastaví čas kompilace). To by neměl být problém, pokud se nejedná o vaše první spouštění, ale nově nainstalované systémy nebo nově vytvořené virtuální počítače mohou mít předvídatelný počáteční soubor (nebo žádný počáteční soubor), takže pro tyto systémy je to důležité pro získání dobré entropie.


Instrukce RdRand je na Ivy Bridge poškozená kvůli hardwarové chybě, která se na těchto procesorech objevila. Není nepravděpodobné, že pro to existuje jiný důvod než chyba. Kryptografické algoritmy, které byly nasazeny pomocí deterministických pseudonáhodných algoritmů, jsou pravděpodobně stomilionkrát snazší prolomit než ty, které byly nasazeny skutečnými náhodnými čísly. Ve skutečnosti mám inženýrskou aplikaci, která by z této instrukce těžila, ale způsobuje to nezákonnou výjimku můj nový notebook Ivy Bridge. Mohu dostat své peníze zpět? Můžete se podívat na záznam Wikipedie na RdRand pro počáteční informace o hardwarové chybě.


Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  1. Kdy použít /dev/random vs /dev/urandom?

  2. Simulace /dev/random ve Windows

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?

  1. DD z /dev/zero do /dev/null...co se vlastně stane

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. jádro:deaktivace /dev/kmem a /dev/mem