Linus Torvalds til kritiker af tilfældighedsgenerator: Du er dum

9 kommentarer.  Hop til debatten
Et forslag om at droppe processorens tilfældighedsgenerator i Linux-kernen blev mødt med et svar i velkendt Linus Torvalds-stil. Men sikkerhedsekspert giver Linux-stifteren tørt på.
12. september 2013 kl. 15:43
errorÆldre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Afsløringerne af efterretningstjenesternes arbejde med at undergrave kendte krypteringsteknikker har fået it-verdenen til at granske de funktioner, der tidligere har været tillid til. Det fik en britisk Linux-entusiast til at foreslå en ændring i Linux-kernen, men forslaget blev mødt med et flabet svar fra Linux-grundlægger Linus Torvalds.

»Hvor kan jeg indsende et forslag om at få hævet IQ'en og kerne-kendskabet hos folk? Først skulle I tage og læse drivers/char/random.c. Derefter burde I lære om kryptografi. Og til sidst kan I komme tilbage og indrømme overfor verden, at I tog fejl,« indleder Linus Torvalds sit svar på forslaget.

Problemet ligger i brugen af funktionen Rdrand i tilfældighedsgeneratoren i Linux-kernen. Rdrand er en funktion i processoren, som ud fra termisk støj kan generere tilfældige tal.

Der er blot den hage ved funktionen, at ingen med sikkerhed kan vide, at tallene fra funktionen er ægte tilfældige tal og ikke resultatet af en kompromitteret algoritme, som kan give eksempelvis NSA en fordel, hvis man bruger funktionen til kryptering.

Artiklen fortsætter efter annoncen

Linus Torvalds uddyber sit svar med, at Rdrand blot er ét af flere input, som bliver blandet sammen til at skabe et tilfældigt tal, og dermed skulle det samlet set forbedre tilfældigheden, uanset om funktionen ikke genererer ægte tilfældige tal.

Sikkerhedsekspert Paul Ducklin fra sikkerhedsfirmaet Sophos har imidlertid fulgt Linus Torvalds opfordring til at se på kildekoden til tilfældighedsgeneratoren og påpeger i et blogindlæg flere problemer.

Ægte tilfældighed er et velkendt problem i datalogien, og derfor bruger eksempelvis Linux' tilfældighedsgenerator input fra flere kilder såsom tid mellem tastetryk, musebevægelser, netværksaktivitet og andre data, som kan give pseudotilfældighed.

Brugen af Rdrand burde ganske rigtigt ikke gøre nogen skade, når det indgår sammen med de øvrige kilder, men Paul Ducklin påpeger, at hvis funktionen er kompromitteret, så øger den heller ikke sikkerheden.

Artiklen fortsætter efter annoncen

Kildekoden, som Linus Torvalds henviser til, er desuden fyldt med modsætninger ifølge Paul Ducklin. Der står i kommentarerne, at Rdrand ikke bliver brugt, hvorefter der senere står, at processorens tilfældighedsgenerator bliver kaldt.

Samtidig bliver inputtet fra Rdrand brugt, efter hashfunktionerne har behandlet inputtet fra de øvrige kilder, og det sker på en måde, hvorpå det ville være en smal sag for en kompromitteret processor at annullere den tilfældighed, de øvrige input skulle have genereret.

»Hvis jeg var konge, så ville jeg blande data fra Rdrand ind tidligere i processen sammen med alle de øvrige entropikilder, så der ikke var nogen, der behøvede at besvare spørgsmålet: 'Hvem har bedt jer om at vente med Rdrand indtil en XOR til allersidst?'« skriver Paul Ducklin.

9 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
8
13. september 2013 kl. 09:26

Når nogen kommer med forbedringsforlag til Linux kerne, så afvises de flabet af Linus. Han er jo den alvidende, og alle andre er dumme.

7
12. september 2013 kl. 20:22

RdRand bruges ikke som eneste entropi-kilde, men kun som input til entropi-pølen. Det er en fordel under opstart, at kunne generere tilfældige tal uden at skulle akkumulere entropi fra I/O devices først.

Det er i øvrigt muligt at slå RdRand-understøttelse fra med et compile-flag.

5
12. september 2013 kl. 19:01

Samtidig bliver inputtet fra Rdrand brugt, efter hashfunktionerne har behandlet inputtet fra de øvrige kilder, og det sker på en måde, hvorpå det ville være en smal sag for en kompromitteret processor at annullere den tilfældighed, de øvrige input skulle have genereret.

Hvis dét er rigtigt, så kunne det da være en idé at tage substansen alvorligt, - selvom et farverigt svar måske er fortjent.

K

6
12. september 2013 kl. 20:05

Samtidig bliver inputtet fra Rdrand brugt, efter hashfunktionerne har behandlet inputtet fra de øvrige kilder, og det sker på en måde, hvorpå det ville være en smal sag for en kompromitteret processor at annullere den tilfældighed, de øvrige input skulle have genereret.</p>
<p>Hvis dét er rigtigt, så kunne det da være en idé at tage substansen alvorligt, - selvom et farverigt svar måske er fortjent.

Nu fik jeg læst Paul Ducklins blog indlæg, som der linkes til i artiklen.

Hvis det indlægget står til troende har der været en alvorlig svaghed i koden bag /dev/random i Linux kernen i rundt regnet et årti.

Hillemænd. Det er altså en større nyhed end at Linus har udtalt sig uhøfligt mod budbringeren af den nyhed.

9
13. september 2013 kl. 12:23

Hvis det indlægget står til troende har der været en alvorlig svaghed i koden bag /dev/random i Linux kernen i rundt regnet et årti.

Prøv at læse det igen og sammenhold med kildekoden.

Der fremskaffes på anden vis et tilfældigt tal. Dette tal XOR'es med inputtet fra RdRand.

Linus siger, at det ikke kan skade, selv hvis input fra RdRand viser sig ikke at være tilfældigt: Hvis du XOR'er noget tilfældigt med noget kendt, får du stadig noget tilfældigt.

Ducklin påpeger så, at hvis CPU'en er konstrueret specielt til at genkende Linux' kernekode, kan den finde det tilfældige tal i et register, og så sørge for, at RdRand returnerer et konstrueret tal på baggrund af det. Hvis der f.x. returneres det negerede tilfældige tal, vil resultatet af XOR blive en række nuller.

Det er selvfølgelig rigtigt, men inderligt ligegyldigt: Hvis NSA eller andre har pillet så meget ved CPU'en, at den kan gøre ovenstående, har man alligevel tabt så grundigt at man ikke kan regne med noget som helst. Så kan de have pillet ved alt.

4
12. september 2013 kl. 18:36

Linus giver et svar, der er passende.

Her er hvad jeg fandt efter 5 min. søgen efter hvordan man kan forsøge at forbedre kernen: http://lxr.free-electrons.com/source/MAINTAINERS Da han ikke har fulgt nogen af rådene syntes jeg det er fuldstændigt uacceptabelt at han henvender sig til LT, LT giver ham faktisk høfligt svar, når man tænker på at hans henvendelse ligner sabotage af kernearbejdet. (og alle beslutningsvejene)

1
12. september 2013 kl. 17:22

Der tales meget om NSA for tiden. Nogen har kigget på tilfældighedsgeneratoren i Linux-kernen og fundet ud af, at kommentarerne i koden ikke er helt opdaterede. De konkluderer, at koden derfor må være følsom overfor, at NSA kan have pillet ved CPU-designet.

Åbenbart er tilfældighedsgeneratoren den eneste fare, de kan se ved at køre på en NSA-infiltreret CPU.

Linus kalder dem "ignoranter" og beder dem om at sætte sig ind i tingene, før de brokker sig. Som sædvanlig er han ikke specielt diplomatisk.

I andre nyheder: Vand viser sig at være vådt ved visse temperaturer.