abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 19:22 | Nová verze

Byla vydána verze 11.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností i s náhledy v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
včera 13:00 | Komunita

Do 30. října se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 4. prosince 2018 do 4. března 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 74
21.9. 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 8
21.9. 20:33 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 10.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
21.9. 20:00 | Upozornění

Příspěvek Jak přežít plánovanou údržbu DNS na blogu zaměstnanců CZ.NIC upozorňuje na historicky poprvé podepsání DNS root zóny novým klíčem dne 11. října 2018 v 18:00. Software, který nebude po tomto okamžiku obsahovat nový DNSSEC root klíč, nebude schopen resolvovat žádná data. Druhým důležitým datem je 1. února 2019, kdy významní výrobci DNS softwaru, také historicky poprvé, přestanou podporovat servery, které porušují DNS standard

… více »
Ladislav Hagara | Komentářů: 11
21.9. 15:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 156. brněnský sraz, který proběhne v pátek 21. září od 18:00 v restauraci Na Purkyňce na adrese Purkyňova 80.

Ladislav Hagara | Komentářů: 0
21.9. 13:22 | Nová verze

Alan Griffiths z Canonicalu oznámil vydání verze 1.0.0 display serveru Mir (GitHub, Wikipedie). Mir byl představen v březnu 2013 jako náhrada X serveru a alternativa k Waylandu. Dnes Mir běží nad Waylandem a cílen je na internet věcí (IoT).

Ladislav Hagara | Komentářů: 0
20.9. 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 5
20.9. 21:32 | Zajímavý projekt

Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.

Fluttershy, yay! | Komentářů: 1
20.9. 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 12
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (21%)
 (23%)
 (24%)
 (4%)
 (1%)
Celkem 396 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Linux, Linus, RDRAND a ignoranti

18.9.2013 01:30 | Přečteno: 3248× | Výběrový blog

TL;DR: Jsi ignorant, Linusi, děláš do věcí kterým nerozumíš. Nauč se něco o kryptografii a pak si přečti arch/x86/kernel/cpu/rdrand.c.

Týden nazpět vyšla na Rootu zprávička ohledně petice o vynechání instrukce RDRAND z linuxového generátoru náhodných čísel (to je ta část, která generuje data v /dev/random a /dev/urandom). Zprávička je na http://www.root.cz/zpravicky/linus-o-odstraneni-rdrand-z-jadra-jsi-ignorant-my-vime-co-delame/ a já k ní měl celkem dlouhý komentář. Téma mi ale přišlo zajímavé, a taky mám dojem že by si zasloužilo širší publikum než to, které komentuje zprávičky na rootu, tak jsem se rozhodl založit si blog a trochu to rozvést.

O co jde: Linux Torvalds se dost nelichotivě vyjádřil k návrhu, že by Linuxové jádro nemělo volat instrukci RDRAND. Pro neznalé: tahle instrukce vrátí náhodná data získaná z generátoru implementovaného přímo v hardwaru procesoru. Teoretickou výhodou je kvalita generovaných dat (nejsou deterministická), praktickou výhodou je rychlost. RDRAND v současných procesorech dokáže generovat necelých 800 MB/s.

Ve světle nedávných informací o NSA ale používání RDRAND přestává vypadat jako tak dobrý nápad jako byl na začátku. Hardwarový generátor je totiž pochopitelně closed source, kdo ví, jestli si NSA neprosadila nějaký backdoor. Navíc, v současnosti silně propagované šifry založené na eliptických křivkách (které mimochodem propaguje NIST, ve kterém má NSA velké slovo) naprosto nutně vyžadují kvalitní generátor náhodných čísel. Stačí aby útočník dostal jen pár bitů informace o výsledku RNG a šifra je prolomená. (SONY a PS3 je toho zářným příkladem, i když tam nešlo jen o "pár bitů".)

Linus na obavy reagoval tvrzením, že implementace RDRAND není problém, protože je to jen jeden z mnoha zdrojů entropie, a pool se s ním jen vylepšuje. Pokud by byl výsledek RDRAND špatný, maximálně to k ničemu nebude nebude, ale rozhodně to neuškodí. Vylepšování pak konkrétně obstarává obyčejný XOR, kterým se na konci do posbírané entropie "přimíchá" výsledek RDRAND. Linus zřejmě spoléhá na důkaz nerozluštitelnosti OTP (one-time pad), který v podstatě říká, že ať vezmu cokoli a provedu XOR se skutečně náhodnými daty, výsledek bude zcela nerozeznatelný od náhodných dat. V případě Linuxového jádra je výsledek RDRAND vlastně cleartext, který se zašifruje klíčem - "dobrou" entropií.

Bohužel, tahle úvaha spočívá na jednom zásadním předpokladu - že totiž klíč je naprosto nezávislý na cleartextu. Neboli, že RDRAND generuje čísla jen pomocí onoho hardwarového generátoru, že nepodvádí.

Kdyby například RDRAND vracela vždycky stejné číslo jako druhý operand XORu, výsledek by byl vždycky 0. Ve skutečnosti není problém zařídit, aby výsledek XORu vypadal jakkoli si vymyslíte, stačí si spočítat požadovanou hodnotu a pak udělat XOR s druhým operandem (nasbíranou entropií). Následný XOR ji zase "odmaže". Pokud by /dev/random obsahovalo samé nuly, někdo by si toho velmi rychle všiml. Bohužel, není problém udělat RNG který vrací čísla, která jsou zcela náhodná pro každého kdo nezná klíč. Pro majitele klíče jsou naopak zcela deterministická. Jednoduchý příklad může být např. funkce RNG = SHA1(NSA_KEY || čítač), kde by důkaz že výsledek není náhodný by vyžadoval umět (rychle) najít kolizi v SHA1. To nikdo neumí (doufám). Téhle vlastnosti se krásně říká kleptografie.

Pokud si říkáte: "jak by mohla instrukce vědět co má vrátit," pak jste nedávali pozor. Procesor pochopitelně ví, co je v paměti. Jednotlivé instrukce můžou být dost složité, rozkládat se na desítky operací v mikrokódu, využívat mnohé jednotky procesoru, prostě jedna instrukce může být sama o sobě dost složitý program.

Následující část je naprostá spekulace (oproti té předchozí, která je obyčejná spekulace).

Jen pro zábavu jsem se zamyslel, jak by se nejjednodušeji dal současný RNG v linuxu rozbít, aby si toho nikdo nevšiml. Nápad využívá toho, že RDRAND je definovaný jako inline funkce, a XOR následuje hned potom. Napadlo mě následující: RDRAND při svém vyvolání zkontroluje, jestli je v cache dword 0xCAFEBABE (touhle hodnotou vyplňuje garbage collector v Javě nepoužívanou paměť). Pokud tam není, pak se chová přesně podle dokumentace. Pokud tam je, pak projde pipeline a vymění XOR následující po RDRAND za MOV RAX, <hodnota z kleptogenerátoru>. Pokud v pipeline žádný XOR není, pak se chová podle dokumentace.

Tohle má tu kouzelnou vlastnost, že se slabina projeví jen pokud z /dev/random čte Javovský program, a neprojeví se při testech náhodnosti, protože tam se obvykle nejdřív nasbírají data a pak se na nich dělají výpočty, a navíc se obvykle nepoužívá XOR. Takže chyba nejde debugovat.

Ve skutečnosti dost pochybuju, že by to NSA / Intel udělali zrovna takhle, protože i drobná změna kódu by tenhle backdoor rozbila. Jde spíš o myšlenkový experiment, který měl dokázat, že backdoor nepotřebuje složitý program na to aby fungoval. Navíc by těžko dosáhli těch 800 MB/s, pokud by měli pořád dokola procházet cache.

Nabízí se pochopitelně otázka, proč se obtěžovat s RNG, když se dá udělat zajímavější backdoor někde jinde. Odpověď je bohužel jednoduchá: protože náhodnost nejde rozumně testovat. Jakýkoli backdoor v RNG má velkou šanci, že si ho nikdo nevšimne. Vzpomeňte se na Debian a chybu v OpenSSL. Tam byla entropie generátoru redukována na směšných 16 bitů, a nikdo si toho nevšiml 2 roky. Navíc kdo říká, že backdoorů není víc, že.        

Hodnocení: 77 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

18.9.2013 02:14 chrono
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
RDRAND sa dá v konfigurácii jadra zakázať.
18.9.2013 02:24 Sten
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Linux nedělá XOR, ale používá to jako vstup do něco-jako-hashe, ve kterém se drží entropie. XOR totiž není dostatečně bezpečný i třeba pro statistický útok z user-space.

Pokud jste paranoidní, jde RDRAND snadno vypnout: vmlinuz nordrand
18.9.2013 03:20 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
To vypadá, že okolo verze 3.5/3.6 dostal někdo neodmítnutelnou nabídku :-D.

Nejvtipnější na tom je, že autor toho XORu je právě z intelu :-D. (i když to může být i tím, že RDRAND ekvivalent na moc dalších arch nebude).
Jendа avatar 18.9.2013 07:02 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Příloha:
Přečetl jsem si ten pastebin (příloha) a nevím…
Navíc, v současnosti silně propagované šifry založené na eliptických křivkách (které mimochodem propaguje NIST, ve kterém má NSA velké slovo) naprosto nutně vyžadují kvalitní generátor náhodných čísel.
Ne, nevyžadují. Pokud nemáš problém s deterministickou signaturou (RFC 6979), tak nepotřebuješ dokonce vůbec žádnou náhodu. Ve zkratce, ta hodnota, co musí být normálně náhodná, se nastaví na SHA(message || key) (actually, it's HMAC). Pro stejnou zprávu ti to vždycky vyplivne stejný podpis, což ti může vadit nebo se ti naopak může hodit (záleží od aplikace), pro jinou zprávu to vyplivne jinou hodnotu.
Stačí aby útočník dostal jen pár bitů informace o výsledku RNG a šifra je prolomená.
Koukám na to PDF (strana 125) a chtěl bych vidět to odvození pro jiná známá m.

Btw. tohle mě potěšilo:
#define EXTRACT_SIZE 10
if (!memcmp(tmp, r->last_data, EXTRACT_SIZE))
  panic("Hardware RNG duplicated output!\n");
mám tedy 2^-80 šanci, že mi to celé crashne? :)
18.9.2013 09:41 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
mám tedy 2^-80 šanci, že mi to celé crashne? :)
Nojo, v pripade povoleneho FIPS 200 (zdravim NIST) je to tak - takze moc bych se nesmal, protoze to je fakt. Ale imho lepsi crash nez dvakrat po sobe stejna hodnota :-).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
David Watzke avatar 18.9.2013 10:44 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ale imho lepsi crash nez dvakrat po sobe stejna hodnota :-).
Určitě? :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
18.9.2013 13:41 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Pozadavkem je, aby se neopakovala 2 po sobe jdouci cisla. Pokud tedy mam na vyber mezi panic() a porusenim pozadavku, tak volim panic() :-).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
18.9.2013 13:58 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
kde je ten pozadavek?
The enemy of my enemy is still my enemy.
18.9.2013 15:06 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ve FIPS 200
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
18.9.2013 15:20 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
to je to 17 strankovy PDF co najde
big brother
, pardon, google, nebo neco jinyho? Protoze tam me fulltext hledani 'repeat' nenaslo akorat 'repeatable'
The enemy of my enemy is still my enemy.
18.9.2013 15:37 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nu, verim tomu, co je napsano ve zdrojacich Linuxu. PDF jsem cele necetl (jedna se o manazerske narizeni), ale je tam nekolik referenci na podminecnou implementaci napr. NIST Special Publication 800-53 (to uz ma 457 stranek a zase kupu referenci).

Takze za sebe rikam, ze jsem presne tento pozadavek nikde nevidel, ale faktem zustava, ze to je v Linuxu implementovane s poznamkou, ze se jedna o zalezitost z FIPS 200.
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
18.9.2013 15:52 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
cely me to prijde dost podezrely. Aby to nebyl dalsi backdoor...

Vetsinou se u generatoru napr s blokovou sifrou v counting modu dela casto reseed, prave aby se zajistilo ze se cisla muzou opakovat. Protoze to ze se cisla nikdy neopakuji by umoznilo rozeznat ze se nejedna o true RNG.

Dalsi vec je ta podivne zvolena velikost, kdy testujou ze se neopakuje sequence 10 bytu, ale uz netestujou seq. 5, 9, 11, 20, ... Ze by ten FIPS byl takovej kockopes?

The enemy of my enemy is still my enemy.
xkucf03 avatar 18.9.2013 15:35 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Ono ale když se budou pořád dokola opakovat dvě stejná čísla, tak to není o moc lepší…

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
18.9.2013 15:39 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ja to nevymyslel a take se mi to zda jako blbost (tohle si ma aplikace resit sama a nema to byt na jaderne urovni, natoz ve vanilce :-().
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
pavlix avatar 18.9.2013 16:14 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ja to nevymyslel a take se mi to zda jako blbost (tohle si ma aplikace resit sama a nema to byt na jaderne urovni, natoz ve vanilce :-().
A čemu to tam vadí, když je to ve výchozí konfiguraci stejně vypnuté?
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
18.9.2013 18:55 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Tem, kteri ctou ten kod a mne :-) (jakakoukoliv nadbytecnou zalezitost v jadre povazuji za zverstvo).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
pavlix avatar 18.9.2013 19:55 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Řekl bych, že zvěrstvem je z tohoto pohledu většina jádra.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
18.9.2013 20:02 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Bohuzel :-( (asi jsme prilisni puriste).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
xkucf03 avatar 18.9.2013 16:26 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Jak už tu někde padlo: náhoda se dost blbě testuje. Záměrně špatný generátor je prakticky neodhalitelný1 a tohle je asi jen taková ochrana proti případu, že by někdo z blbosti napsal return 1;.

[1] dá se otestovat offline, jestli poskytuje dostatečnou entropii, ale za běhu to asi z výkonnostních důvodů nikdo dělat nebude – navíc: u jak velkých kusů by se ta entropie měla měřit?

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
18.9.2013 18:59 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
...asi jen taková ochrana proti případu, že by někdo z blbosti napsal return 1;
Nejak mi ta navratova hodnota nedochazi (obrana jadra sama pred sebou na takto trivialni urovni se mi opravdu nezda jako spravne pochopeni). Mas nejaky priklad?
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 21:39 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Mas nejaky priklad?
bit <= '1';
(VHDL, kdyby to někdo nepoznal)
18.9.2013 21:52 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
A uplny kontext by nebyl? I pres trivialni test-bench random generatoru neprojde takovehle uklepnuti se ve VHDL/Verilogu (tim zabranim preklepu HW navrhare).

A ochrana v run-time jadra (tim zabranim pouziti "spatneho" CPU/jadra)? Proc bych to kontroloval jindy nez pri vymene/inicializaci/zmene_mikrokodu kazde casti CPU poskytujici dany random registr? A prosim bez pohadek o semi-intelligent, self-reconfigurable FPGA... :-)
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 21:57 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
A uplny kontext by nebyl? I pres trivialni test-bench random generatoru neprojde takovehle uklepnuti se ve VHDL/Verilogu (tim zabranim preklepu HW navrhare).
Nevím, třeba je tam HW bug (vyrostl tam fous křemíku), kdy to uzemní gate jednoho tranzistoru a prostě to občas neupdatne ten registr.
A prosim bez pohadek o semi-intelligent, self-reconfigurable FPGA... :-)
Hej! :-)
18.9.2013 22:12 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nevím, třeba je tam HW bug (vyrostl tam fous křemíku), kdy to uzemní gate jednoho tranzistoru a prostě to občas neupdatne ten registr.
Ok, pak bych tyto kontroly musel provadet uplne za kazdou instrukci! A co takhle kontroly toho kontrolniho kodu?! Juj, to je vlastne dalsi kod, ten bych mel pro jistotu take kontrolovat...

Pouceni: Ultra-spolehlive systemy vypadaji jinak a vanilla Linux do teto kategorie nespada.
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 22:14 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Toho, že ti 1+1 vrací 0 si všimneš (crashne ti počítač), toho, že ti HW RNG vrací konstantu si všimneš těžko.
18.9.2013 23:00 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nu, tak to by musela byt zatracene velka nahoda, aby fous kremiku vyrostl prave na takovem miste, aby zmenil cely registr (tedy ponechal minulou hodnotu) a ne pouze jeden bitik. Postvat napr. trivialni kontrolu dvou po sobe jdoucich cisel a odvozovat z toho, ze je spatny HW, to bych si netroufnul. PST, ze se fous kremiku projevi v celem obvodu realizujicim RNG (tzn. vycitani hodnot v pameti/cache podle citace; zpracovani; ulozeni do registru; pravidelny update...) prave tak, ze se budou opakovat dve cisla po sobe je imho tak nizka, ze tato kontrola absolutne ztraci smysl).

Z fleku me ani nenapada jina "vykonove/casove" malo narocna metoda softwarove kontroly HW RNG. Imho ani nelze takovou sestrojit, aby byla opravdu pouzitelna (tedy prave napr. pro ten fous kremiku, ktery nekdy vede a jindy nevede proud).

Kdyz to shrnu, tak jakekoliv obdobne trivialni, nezdrzujici kontroly povazuji za nesmysl. Smysl by melo kazdy RNG v kazdem jednotlivem jadru CPU dlouhodobe otestovat jak nekdo navrhoval v teto diskuzi (pak bych vedel co od toho daneho kusu HW mohu ocekavat - zmeny zpusobene starim/zmenou prostredi apod. jsou uz opravdu prilis v kategorii ultra-reliable systemu).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 23:22 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nevím, mně přijde bug, že RNG vrací konstantu, docela uvěřitelný… V procesoru asi ne, ale když to bude připojené jako periferie…
19.9.2013 09:26 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nevím, mně přijde bug, že RNG vrací konstantu, docela uvěřitelný… V procesoru asi ne, ale když to bude připojené jako periferie…
Mne zase moc ne :-). Prave proto bych to kontroloval "predem" dlouhodobym testem a ne az pri ostrem nasazeni.

Skoda, ze nemame po ruce nejakou statistiku o HW RNG (napr. tech externich), kolikrat se nejaky HW bug (zasadnim zpusobem ovlivnujici vygenerovana cisla) objevil, abychom tady netipovali jak baby na trhu.
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 21:45 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
obrana jadra sama pred sebou na takto trivialni urovni se mi opravdu nezda jako spravne pochopeni
V budoucnu může být HW generátorů více a bude k tomu nějaký driver interface a podle mě se prostě může stát, že to třeba při špatné inicializaci prostě vyčte samé nuly.
Jendа avatar 18.9.2013 21:40 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
dá se otestovat offline, jestli poskytuje dostatečnou entropii
Fakt? Jak? Poskytuje SHA(_NSAKEY || counter) dostatečnou entropii? Odhalíš to?
xkucf03 avatar 18.9.2013 22:22 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Záleží, co je counter, odkud kam jeho hodnota roste, zda se někam ukládá, zda se resetuje. Po čase1 bys měl začít dostávat stejné hodnoty – jinak by to míjelo i záměr útočníka.

[1] nebo na různých CPU stejného typu. Případně by to mohli mít vázané na sériové číslo procesoru a museli by evidovat, kdo si jaký koupil – což si zase lidi, kteří dělají něco nebezpečného, dost možná ošetří (např. nekoupí počítač přes Net na svoje jméno) i z jiných důvodů (aby neprosákla jejich identita, kdyby nějaký program někam bonzoval ID procesoru).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
Jendа avatar 18.9.2013 22:59 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Záleží, co je counter, odkud kam jeho hodnota roste, zda se někam ukládá, zda se resetuje.
Je 128bitový, takže ho v tomto vesmíru nejspíš nepřetečeš.
nebo na různých CPU stejného typu. Případně by to mohli mít vázané na sériové číslo procesoru a museli by evidovat, kdo si jaký koupil
Teoreticky ti pak stačí bruteforce přes sto milionů prodaných procesorů, což je zvládnutelné.
Jendа avatar 18.9.2013 21:37 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
tohle si ma aplikace resit sama
Jak to má dělat? Tohle mixuje do poolu, aplikace se k tomu nikdy nedostane.
18.9.2013 21:44 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Aplikace, ktera ma pozadavek na specialni (pseudo)randomness si ma vytvorit vlastni generator (za vyuziti generickeho, pritomneho v jadre a nebo nejakeho jineho - napr. externiho HW).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 21:54 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
A aplikace, která chce číst vstup z klávesnice, si má vytvořit vlastní driver na USB HID?

Já tohle jako programátor nechci řešit, já chci prostě vytáhnout číslo z /dev/random. Vlastní RNG si psát nebudu, protože bych musel implementovat podporu pro RDRAND, takovou tu věc, co má VIA, externí generátory, šum ze zvukovky, všeho, co si uživatel připojil. A jako uživatel nechci řešit, že teď přidělím svůj externí kvantový generátor náhody :) GnuPG, za chvíli TrueCryptu a teď ty aplikace běží současně a hádají se o to.
18.9.2013 22:05 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
já chci prostě vytáhnout číslo z /dev/random.
Ty si chces vytahnout cislo, ktere je umyslne omezene (tedy napr. podminkou, ze dve po sobe jdouci cisla nejsou stejna)? Nu, nyni se asi kazdy, kdo dela treba simulace apod. obraci v hrobe :-). Mozna tak pro prehravani hudby ti bude vyhovovat, ze ta nahodnost je takto (to nemusi byt pouze opakovani 2 po sobe jdoucich cisel) silne deterministicky omezena. Ale pro vsechny ostatni aplikace je jakekoliv omezovani jednoznacna nevyhoda.

Btw je uplne bezna praxe si stavet vlastni generatory nahodnych cisel (neni to nic sloziteho, pokud mas na vstupu vysoce nahodny generator s co nejvice rovnomernym rozlozenim pravdepodobnosti - tuto ulohu by imho mel plnit prave /dev/random).
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 22:13 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ty si chces vytahnout cislo, ktere je umyslne omezene (tedy napr. podminkou, ze dve po sobe jdouci cisla nejsou stejna)?
Výstup /dev/random už takto omezený není, protože je až daleko po mixování! Teď řešíme tahání z HW RNG. Tímto omezením nepatrně snížíš entropii toho, co z něj taháš, takže místo 80 bitů entropie tam přileješ pokaždé 79,9999.

Jediné, co se mi nelíbí, je, že jádro na vadném HW RNG udělá panic(). Podle mě by mělo vyhodit notice nebo warning.
Btw je uplne bezna praxe si stavet vlastni generatory nahodnych cisel (neni to nic sloziteho, pokud mas na vstupu vysoce nahodny generator s co nejvice rovnomernym rozlozenim pravdepodobnosti - tuto ulohu by imho mel plnit prave /dev/random).
Myslíš PRNG nebo co? Protože jinak mě nenapadá, k čemu by mi to bylo…
18.9.2013 22:23 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Tímto omezením nepatrně snížíš entropii toho, co z něj taháš, takže místo 80 bitů entropie tam přileješ pokaždé 79,9999.
Ano, ale uz tohle mi prijde jako prilis ovlivnujici (proste odriznu nektere potencialni vystupy nasledneho mixovani nebo jim alespon divne zmenim pravdepodobnost vyskytu oproti tomu, jak to HW navrhari zamysleli).
Jediné, co se mi nelíbí, je, že jádro na vadném HW RNG udělá panic(). Podle mě by mělo vyhodit notice nebo warning.
Nu, tady uz "je mi to jedno". Proste padla hodnota nesplnila muj pozadavek a pote me uz nezajima co se bude dit dal (respektive zavisi to na jinych faktorech - vetsinou netechnickych :-)). Napr. v pripade FIPS 200 bych volil ten panic(), protoze to je poruseni "vyssiho" narizeni naroku na HW.
Myslíš PRNG nebo co? Protože jinak mě nenapadá, k čemu by mi to bylo…
Ano, tady jsem uz mel na mysli PRNG.
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Jendа avatar 18.9.2013 23:06 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
proste odriznu nektere potencialni vystupy nasledneho mixovani nebo jim alespon divne zmenim pravdepodobnost vyskytu oproti tomu, jak to HW navrhari zamysleli
Nutno podotknout, že tohle padne jenom v 2**-80. A výrobci HW RNG neměli zamýšlet, že tam pošlou stejná čísla častěji, protože pak už to jaksi není RNG :).
Nu, tady uz "je mi to jedno". Proste padla hodnota nesplnila muj pozadavek a pote me uz nezajima co se bude dit dal (respektive zavisi to na jinych faktorech - vetsinou netechnickych :-)). Napr. v pripade FIPS 200 bych volil ten panic(), protoze to je poruseni "vyssiho" narizeni naroku na HW.
Mě by štvalo, že mi někde umře server jenom proto, že chcípnul RNG (což může a nemusí být vážná závada - pokud to třeba není vytížený HTTPS server, tak mě to tak netrápí).
18.9.2013 23:19 dumblob | skóre: 10 | blog: dumblog
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
protože pak už to jaksi není RNG :)
Ale to my prave nevime :-), takze to bereme jako "hodne nahodne" v porovnani s ostatnimi prostredky bezne dostupnymi jadru. I kdyz by byl ten HW generator "omezeny", porad nevidim sebemensi duvod omezovat jeho vystupy pred vstupem do "mixovani".
Mě by štvalo, že mi někde umře server jenom proto, že chcípnul RNG (což může a nemusí být vážná závada - pokud to třeba není vytížený HTTPS server, tak mě to tak netrápí).
Nesmis mit servery v USA :-D.
Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
Grunt avatar 18.9.2013 09:28 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
0xCAFEBABE - touhle hodnotou vyplňuje garbage collector v Javě nepoužívanou paměť
Cože?
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
18.9.2013 11:02 Lyco | skóre: 12 | blog: Lyco
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Hm, omyl. 0xCAFEBABE je magická hodnota na začátku javovské třídy (souboru .class). Spletl jsem si to s jinými alokátory, které to dělají: Wikipedia
Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
Grunt avatar 18.9.2013 17:50 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
No spíš mě zaujalo to, že nějaký garbage collector přepisuje uvolňovanou paměť.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
18.9.2013 10:12 random
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Nic proti, ale tohle už je prostě paranoia. Procesor nemůže vědět, jaký kód zpracovává – vidí sice instrukce, ale nemá a nemůže mít ponětí o „big picture“, o sémantice těch instrukcí. Strojový kód linuxového RNG se každou chvíli mění – kvůli změnám v kódu samotném, kvůli různým .configům i kvůli změnám v kompilátoru – takže se prakticky nedá detekovat. CPU nemůže tušit, ve kterém registru či kde v cache/RAM se nachází vygenerovaná náhodná čísla. A kdyby tohle věděl, vůbec nemusí útočit pomocí ovlivňování RDRAND, ale může ty hodnoty přepsat přímo. Jak to kdo zjistí?

Nevylučuji, že je RDRAND cinklý či prostě jenom nekvalitní, ale ne takhle.

18.9.2013 10:51 jkt
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
No, predpokladam, ze jste se do vygenerovaneho strojoveho kodu dane funkce nedival. S tou variabilitou to neni zas tak horke -- bude-li tripismenna agentura chtit napadnout velkou cast populace, staci se zamerit na nekolik malo enterprise distribuci.
18.9.2013 12:03 random
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Ivy Bridge začalo být vyráběno roku 2011 a to nezahrnuji to, že od zmrazení designu do zahájení produkce taky muselo uběhnout pár měsíců. Do RHEL 6 byla podpora přidána až v půlce roku 2012. Nechcete mi tvrdit, že Intel má křišťálovou kouli a umí detekovat přítomnost kódu, který ještě nebyl napsán?

18.9.2013 12:17 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nechcete mi tvrdit, že Intel má křišťálovou kouli a umí detekovat přítomnost kódu, který ještě nebyl napsán?
1. jak je psany dole, detekovat konkretni kod neni potreba

2. intel nepotrebuje kristalovou kouli, protoze sam dodal ten patch ktery to pouziva... ;-)
The enemy of my enemy is still my enemy.
18.9.2013 16:09 alkoholik | skóre: 36 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Zapominas na updaty mikrokodu.
xkucf03 avatar 18.9.2013 16:36 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Proto Linux-Libre nesvobodný microcode neobsahuje.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
18.9.2013 21:07 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nejsou další revize procesoru nejspíše vypálení aktuálních microcode updatu do interní ROM? To by pak znamenalo kupovat jen první revize :-/.
Grunt avatar 18.9.2013 21:11 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Linux-Libre
Teda to je docela drsné i na moje poměry.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
Jendа avatar 18.9.2013 21:41 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Takže tam nebude ten update. Ale původní (nebo prostě alespoň nějaký) mikrokód tam někde běžet musí.

Btw. ty updaty mikrokódu mě fascinují - hlavně, že se jim tam ještě nic neposralo. Vždyť je to binární patchování za běhu!
Josef Kufner avatar 18.9.2013 23:27 Josef Kufner | skóre: 68
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ono to zas až takový zázrak není. Nasypeš data do kousku paměti a přecvakneš flag, aby to použil místo ROM. Co jsme si programovali instrukce do procesoru ve škole, nic moc složitého to není.
Hello world ! Segmentation fault (core dumped)
19.9.2013 04:45 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
No asi bych nejdřív vyflushoval pipeline. Zvlášť pokud se vypínají poškozené jednotky třeba (kde můžou být validní data)
19.9.2013 04:56 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Njn ale pokud by udělal ten backdoor už v 2011 a s XOR patchem čekal, až do 2012, tak ani první revize není důvěryhodná :-D.
18.9.2013 11:35 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Jak uz jsem psal jinde, zadny "big picture" na to neni potreba.
The enemy of my enemy is still my enemy.
JiK avatar 18.9.2013 16:20 JiK | skóre: 8 | blog: Jirkoviny | Virginia
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
nejvic mne zaujal posledni odstavec:
Nabízí se pochopitelně otázka, proč se obtěžovat s RNG, když se dá udělat zajímavější backdoor někde jinde. Odpověď je bohužel jednoduchá: protože náhodnost nejde rozumně testovat. Jakýkoli backdoor v RNG má velkou šanci, že si ho nikdo nevšimne. Vzpomeňte se na Debian a chybu v OpenSSL. Tam byla entropie generátoru redukována na směšných 16 bitů, a nikdo si toho nevšiml 2 roky. Navíc kdo říká, že backdoorů není víc, že.
Ale nemelo by to (mira entropie, tedy skutecna nahodnost generovanych dat) byt zjistitelna treba pomoci komprese? Neni snad pravda, ze skutecne nahodna data jsou nekomprimovatelna?
18.9.2013 16:29 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Bohuzel tak jednoduchy to neni. Kompresni algoritmy hledaji jenom zjevny statisticky vlastnosti dat. Kdyz treba vygeneruju pomoci AES v counter modu par GB dat, tak teoreticky by to melo jit zkomprimovat na par byte. Stacilo by uhodnout ze se jedna o AES v counter mode, pomoci brute force najit klic a pocatecni hodnotu counteru a tyhle veci ulozit na vystup. V praxi neco takovyho zkomprimovat nepujde (zadny kompresni algoritmus pravdepodobne nedosahne mensi vyslednou velikost nez ma original).
The enemy of my enemy is still my enemy.
18.9.2013 21:08 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Aneb kompresní algoritmy jsou navrženy pouze na specifické formáty dat.
pavlix avatar 18.9.2013 21:24 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Tak vzhledem k tomu, že je kompresní algoritmus reversibilní (jinak by neměl smysl), tak asi těžko může obecně zmenšovat objem dat.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
Jendа avatar 18.9.2013 21:47 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ano, například nikdo nenavrhl kompresní algoritmus, který provede 2**256 operací (cracknutí AES) a pak to vyoptimalizuje na zašifrované nuly.
xkucf03 avatar 18.9.2013 16:29 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti

Takhle offline by to jít testovat mělo1 – postavit řadu počítačů s různými procesory a různými distribucemi/jádry/knihovnami a generovat gigabajty náhodných dat a zkoumat jejich entropii.

[1] dělá to už někdo? bylo by to opravdu vhodné

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
18.9.2013 19:32 Martin Mareš
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Svatej Tučňáku, to je tedy paranoia. Pokud by hypoteticky Intel chtěl přidávat backdoor do procesoru, má hromadu způsobů, jak to udělat bez nutnosti protlačit patch do jádra. Například není nijak těžké modifikovat instrukce používané na volání syscallů, aby detekovaly otevření /dev/random a čtení z něj. Ale raději bych to neměl říkat moc nahlas, nebo brzy někdo vašeho ražení začne prosazovat, aby se při instalaci Linuxu randomizovala čísla syscallů :-)

Na současném řešení s XORováním mi nepřijde nic zásadně špatně. Osobně bych tedy raději data zamíchal ještě před zahashováním, ale jediný důvod, který k tomu mám, je jakýsi kryptografický konservativismus.
18.9.2013 19:40 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Pokud by hypoteticky Intel chtěl přidávat backdoor do procesoru, má hromadu způsobů, jak to udělat bez nutnosti protlačit patch do jádra. Například není nijak těžké modifikovat instrukce používané na volání syscallů, aby detekovaly otevření /dev/random a čtení z něj.
to by se dalo snadno odhalit protoze by ti v systemu neubyvala entropie...

Svatej Tučňáku, to je tedy paranoia.

...

Na současném řešení s XORováním mi nepřijde nic zásadně špatně.
proste jeste nemas ten spravnej security mindset ;-)

The enemy of my enemy is still my enemy.
18.9.2013 20:57 Martin Mareš
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
to by se dalo snadno odhalit protoze by ti v systemu neubyvala entropie...
Neubývala, protože bych to ošvindloval až při návratu ze syscallu.
proste jeste nemas ten spravnej security mindset ;-)

Úhybný manévr, kterým zakrýváte nedostatek (či přesně řečeno absenci) argumentů.

Zkuste být konkrétní a popsat jakýkoliv realistický útok, který by s XORem šel provést a bez něj nikoliv.
18.9.2013 21:35 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Neubývala, protože bych to ošvindloval až při návratu ze syscallu.
Jako ze bys prepsal buffer co to vraci? To by se dalo snadno odhalit pridanim jednoho radku do random.c, ktery pred navratem ten buffer vynuluje, pripadne tam nahraje nejakou znamou, nenahodnou hodnotu...
Zkuste být konkrétní a popsat jakýkoliv realistický útok, který by s XORem šel provést a bez něj nikoliv.
Jak uz jsem psal v tom prispevku na ktery jsem odkazoval a ktery se me nechce prekladat do cestiny:

1. reseni s xorem je velice jednoduche. Pravdepodobne mnohem jednoduzsi nez cokoli jinyho co bys dokazal vymyslet

2. narozdil od jinych reseni je to naprosto neodhalitelne...
The enemy of my enemy is still my enemy.
18.9.2013 23:19 Martin Mareš
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Jako ze bys prepsal buffer co to vraci? To by se dalo snadno odhalit pridanim jednoho radku do random.c, ktery pred navratem ten buffer vynuluje, pripadne tam nahraje nejakou znamou, nenahodnou hodnotu...
Ano, dalo by se to odhalit, pokud by ovšem někoho napadlo to odhalovat. Ale to je u řešení s XORem dost podobné: Vaše představa o neodhalitelnosti je naprostá iluze, stačilo by porovnat chování generátoru s jiným ekvivalentním, který používá trochu jinou posloupnost instrukcí.
Jendа avatar 18.9.2013 23:24 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ale to je u řešení s XORem dost podobné: Vaše představa o neodhalitelnosti je naprostá iluze, stačilo by porovnat chování generátoru s jiným ekvivalentním, který používá trochu jinou posloupnost instrukcí.
Opravdu? I když je to implementované tak, aby vylezlo SHA(NSAKEY || counter++ || serial number)?
19.9.2013 04:50 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
SHA(NSAKEY || counter++ || serial number)
Neznamenalo by to, že by RNRAND dávala v této situaci vždy stejnou sekvenci vůči historii volání po powerupu?

P.S. Ale nevím kdy by se měl ten counter inkrementovat.
19.9.2013 10:06 Lyco | skóre: 12 | blog: Lyco
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Counter by se musel inkrementovat při každém volání RDRAND, jinak by se hodnoty opakovaly.

Pochopitelně by se ten counter musel uložit do nějaké nepřechodné paměti. To se dá zařídit třeba malou EEPROM a kondenzátorem, který při poklesu napětí zařídí napájení pro zápis.

Nebo, teoreticky, by se dala použít paměť která je non-volatile sama od sebe, třeba memristor. (Ne že bych si myslel že je Intel tak pokrokový.)
Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
19.9.2013 21:21 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
18.9.2013 20:07 Lyco | skóre: 12 | blog: Lyco
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
> Osobně bych tedy raději data zamíchal ještě před zahashováním

Problém není v pořadí, ale v XORu. Kdybych dělal XOR ještě před hashováním, tak dostanu hash hashe, tedy stále zcela předvídatelnou funkci. Správné řešení by bylo např. jednotlivé zdroje spoji jako řetězce a ten pak zahashovat (kryptografickým hashem, pochopitelně). V tomto případě se totiž nemůže stát, že výsledek RDRANDu "zničí" předchozí data.
Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
18.9.2013 22:04 Kvakor
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Tak si říkám, kam až by se muselo postoupit, aby bylo jisté, že hardwarový generátor náhodných čísel nemůže být "cinknutý" a vychází mi, že by to muselo být externí zařízení, nejleépe založenmé na kombinaci radioaktivní materiál+Geiger-Müllerův detektor (to celé v tlustostěné olověná nádobě) jako zdroj kvantové náhodnosti a elektronika složená s čistě diskrétních součástek, která by pouze posílala hezky tvarované impulzy na nějaký vstup, kde by vyvolávaly přerušení (např. sérivoý port).

Jenže takto získaná data se stejně musejí stejně zpracovat softwarem a i tak závisí na všem možném od SuperIO chipu na desce přes jádro a jeho zpracování přerušení (nejlepší by bylo co nejvíc realtime) až po samotné zpracování (viz Ramdnomness extractor na Wiklipedii). Mimo toho je objem dat velmi malý (desítky, max. stvoky bitů za sekundu).

PS: Na Fourmilab.ch je takovýto generátor (nazvaný HotBits) poměrně slušně popsaný, včetně softwaru. Tedy až na hardware, na který je použitý hotový detektor, který se u nás asi nesežene, nicméně GM trubice jde sehnat i v ČR (nová stojí okolo dvou-tří tisíc) a zbytek je relativně jednoduchý (viz třeba tady). Jediný problém je sehnat vhodný radioaktivní materiál :-)
18.9.2013 22:29 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Pokud mas kvalitni PRNG tak stovky bitu entropie za sekundu by meli stacit.

Kdyby na neco bylo potreba vic tak podle me by bylo nejlepsi pouzit vstup ze zarizeni ktery neni ke generovani nahodnych cisel primo urceny. Tam je mnohem mensi pravdepodobnost ze se tam podari neco schovat. Napriklad hashovat vstup z nejaky zasumneny web kamery...
The enemy of my enemy is still my enemy.
Jendа avatar 18.9.2013 23:11 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Napriklad hashovat vstup z nejaky zasumneny web kamery...
Pozor na integrovaný JPEG kodér, jehož funkcí je naopak šum a entropii odstraňovat ;).
19.9.2013 08:47 alkoholik | skóre: 36 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nejsi dost paranoidni. Vzhledem k tomu, ze polocas rozpadu koreluje se vzdalenosti zeme od slunce, prisel bys o par bitu sily podle toho, v ktere fazi roku bys generoval klic..
;)
19.9.2013 21:41 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
WOW to kdyby přišla erupce, tak můžeš ten výsledek zahodit :-D. Prej to ovlivňuje tak den před samotnou erupcí (kolik by stálo NSA dopravit atomovku na slunce? :-D).

P.S. Docela by mě zajímalo zda v prostředí bez neutrin (asi?) by se některé izotopy staly stabilními.

P.P.S. (OT) Teď funguje ten mechanismus z "1969" dílu stargate (bez mimozemských technologií) :-D.
Jendа avatar 19.9.2013 21:45 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
P.S. Docela by mě zajímalo zda v prostředí bez neutrin (asi?) by se některé izotopy staly stabilními.
On někdo ukázal, že se izotopy rozpadají (jen) díky neutrinům?
19.9.2013 23:12 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ne, ale prý různé izotopy reagují různou rychlostí a Země se okolo Slunce pohybuje extra blízko s malými výkyvy. Nejlepší by bylo, kdyby to měřili třeba na Voyageru 1. Je fakt, že stabilní je moc silné slovo, zvláště když není vyloučeno, že i proton není stabilní. Třeba takovej tantal 180m je protonu prakticky ekvivalentní (zatím nebyl pozorován žádný jeho rozpad).

Jinak vzhledem k rychlosti neutrina ve vesmíru neexistuje místo, kde by nebylo (možná tak černá díra, ale tam se měření dělá špatně, fyzik má práce na roztrhání :-D).
Jendа avatar 19.9.2013 23:36 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Ne, ale prý různé izotopy reagují různou rychlostí a Země se okolo Slunce pohybuje extra blízko s malými výkyvy.
Já zatím viděl jenom jeden nějaký malý experiment, kde tohle pozorovali. Už to někdo ověřil?
20.9.2013 01:00 pc2005 | skóre: 36 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Hmmm máš pravdu, žádný článek, který to potvrzuje na mě nevypadl,resp. čekal bych, že při takovém objevu to bude někdo od 2006 měřit nepřetržitě (cyklus aktivity slunce trvá roky) a průběžně dodávat data. Navíc jsem našel vyvracející článek :-( (že jsi ten článek viděl ještě před prvním postem ;-) ). Ale zase tihle naměřili fluktuaci :-/.

BTW Neutrino je schopno reagovat s galliem a přeměnit ho na nestabilní germanium.
Grunt avatar 20.9.2013 09:22 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
kolik by stálo NSA dopravit atomovku na slunce?
Vzhledem k tomu, že by si musel aktivovat minimálně Naquahdah či Naquadrii a ne blbé Lithium, tak asi hodně.
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
25.9.2013 14:05 jarok
Rozbalit Rozbalit vše Re: Linux, Linus, RDRAND a ignoranti
Nič nové pod Slnkom. Aj také riešenie (rádioaktívny rozpad) už bolo. Kedysi v 50-tych či 60-tych rokoch pre šifrovanie vládnych/vojenských/straníckych liniek medzi Moskvou a Berlínom a/alebo Prahou. Bohužiaľ, zdroj informácie už neviem, ani bližší spôsob fungovania.

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.