VPN WireGuardi autor andis välja RDRANDi uue värskenduse

Jason A. Donenfeld , raamatu „WireGuard VPN” autor, teatas hiljuti RDRAND juhuslike arvude generaatori uuest ja ajakohastatud versioonist , mis vastutab Linuxi kernelis seadmete /dev/random ja /dev/urandom töö eest.

Novembri lõpus kanti Jason juhusliku kontrolleri hooldajana ja on nüüd postitanud oma ümbertöötamise esimesed tulemused.

Teadaandes mainitakse, et uus rakendus on tähelepanuväärne selle poolest, et entroopia segamise toimingute puhul kasutatakse SHA1 asemel BLAKE2s räsifunktsiooni .

BLAKE2-l endal on hea omadus, et see põhineb sisemiselt
ChaCha permutatsioon, mida RNG juba kasutab laiendamiseks, nii et
uudsuse, originaalsuse või hämmastava protsessoriga ei tohiks probleeme olla
käitumine, kuna see põhineb millelgi, mis on juba kasutusel.

Lisaks väärib märkimist, et muudatus parandas ka pseudojuhuslike arvude generaatori turvalisust, kõrvaldades problemaatilise SHA1 algoritmi ja takistades RNG initsialiseerimisvektori ülekirjutamist. Kuna BLAKE2s algoritm ületab SHA1-d, avaldas selle kasutamine positiivset mõju ka pseudojuhuslike arvude generaatori jõudlusele (testid Intel i7-11850H protsessoriga süsteemil näitasid kiiruse 131% kasvu).

Teine esile tõstetud eelis on entroopiasegu BLAKE2-le ülekandmisel kasutatavate algoritmide ühendamine: BLAKE2-d kasutatakse ChaCha šifris, mida juba kasutatakse juhuslike järjestuste eraldamiseks.

BLAKE2s on üldiselt kiirem ja kindlasti turvalisem, kuid see on tõsiselt ohustatud. Lisaks ei kasuta praegune RNG konstruktsioon kogu SHA1 funktsiooni , nagu on määratletud, ja võimaldab IV dokumenteerimata ülekirjutamist RDRAND väljundiga , isegi kui RDRAND pole konfigureeritud usaldusväärseks, mis viitab potentsiaalselt pahatahtlikele IV valikutele.

Ja selle lühike pikkus tähendab, et kui me seda mikserile tagasi edastades hoiame vaid poolsalajane, saame vaid 2^80 bitti edasissalasust. Teisisõnu, räsifunktsiooni valik pole mitte ainult aegunud, vaid ka selle kasutamine pole tegelikult hea.

Samuti on tehtud täiustusi krüptoturvalises CRNG pseudojuhuslike numbrite generaatoris, mida kasutatakse juhuslikus kõnes.

Samuti mainitakse, et täiustused taanduvad aeglase RDRAND-generaatori kutsumise piiramisele entroopia eraldamisel, mis võib jõudlust 3,7 korda parandada. Jason demonstreeris, et RDRAND-kutse on mõttekas ainult olukorras, kus CRNG pole veel täielikult initsialiseeritud, kuid kui CRNG initsialiseerimine on lõppenud, ei mõjuta selle väärtus genereeritud jada kvaliteeti ja sel juhul on seda võimalik teha ilma RDRAND-i kutsumata.

Selle kompromissi eesmärk on need kaks probleemi lahendada ja samal ajal säilitada üldine struktuur ja semantika võimalikult originaalilähedased.
Täpsemalt:

a) Selle asemel, et IV räsi RDRANDiga üle kirjutada, paneme dokumenteeritud BLAKE2 "sool" ja "isiklikud" väljad, mis on loodud spetsiaalselt seda tüüpi kasutamiseks.
b) Kuna see funktsioon tagastab täieliku räsi tulemuse funktsioonile entroopiakollektor, tagastame ainult poole pikkusest hash, nagu seda tehti varem. See suurendab ehitada ette salajane 2^80 kuni 2^128 palju mugavam.
c) Selle asemel, et kasutada lihtsalt toorfunktsiooni "sha1_transform", selle asemel kasutame täielikku ja korralikku BLAKE2s funktsiooni koos lõpetamisega.

Muudatused on plaanitud lisada kerneli versiooni 5.17 ning need on juba üle vaadanud arendajad Ted Ts'o (teine ​​isik, kes vastutab juhusliku draiveri hooldamise eest), Greg Kroah-Hartman (vastutab Linuxi kerneli stabiilsuse säilitamise eest) ja Jean-Philippe Aumasson (BLAKE2/3 algoritmide autor).

Lõpuks, kui olete huvitatud lisateabest, leiate üksikasjad järgmiselt lingilt.


Lisa eelistatud allikana Google'is