Tuuma juhuslikkuse otsasaamine on aeglase VPN-i jaoks ahvatlev seletus ja peaaegu alati vale seletus sümptomile, mida inimesed teatavad. Juhuslikku väljundit ootav host takerdub kindlal hetkel, tavaliselt buudi alguses või võtmete töötlemise ajal. Tunnel, mis ühendub kiiresti ja edastab seejärel aeglaselt kirjeldab hoopis läbilaskevõimet. Eraldage need kaks tähelepanekut enne, kui paigaldate deemonit, et parandada arvu, mille lugemist te pole lõpetanud.

Miks müüt püsib

Mõlemad probleemid on tõelised ja kaugelt vaadates sarnased. Käivitusseisakud värskelt buuditud virtuaalmasinas juhtuvad tõesti, ja aeglane püstitatud tunnel on sama tõeline. Viga on eeldada, et teise põhjustab esimene, sest krüptograafia ilmub kuskil mõlemas loos. Miski sõnas krüpteerimine ei vihja, et iga edastatud bait tarbib värske baidi keskkonnamüra.

Need generaatorid ei tööta nii. Krüptograafiline teek hoiab seemendatud generaatorit ja ammutab sellest väljundit, seemendades ümber oma poliitika järgi, nii et kallis hetk on seemendamine, mitte ühtlane ülekanne.

Mida generaator iga paketi kohta teeb

OpenSSL 3-s ehitatakse vaikimisi generaatorihierarhia DRBG eksemplaridest, mis seemendavad ja seemendavad ümber vastavalt konfiguratsioonile ja olekule. OpenVPN 2.6-s tuletab AEAD andmetee oma nonce paketi järjekorranumbrist koos sessioonipõhise kaudse väärtusega, samas kui vanem CBC tee ammutab iga paketi kohta pseudojuhusliku IV. Kumbki muster ei toeta reeglit, et gigabaidi liigutamine tarbib gigabaidi värsket tuumamüra. Mõlemad toetavad ideed, et võtmete genereerimine ja kätlemised on koht, kus seemendamine loeb.

CBC juhtum tasub nimetada, sest see näeb välja nagu müüt ja ei ole seda: selle paketipõhine IV pärineb teegi generaatorist teegi enda ümberseemendamise graafiku järgi, mitte kunagi tuumakutsest iga paketi kohta. Kui keegi tsiteerib entroopia kulu baidi kohta, küsige, millist teegiversiooni ja millist kooditeed nad mõõtsid.

Kus ootamine tegelikult välja paistab

Pange ajatemplid etappide, mitte sessiooni ümber: käivitus, autentimine, võtmevahetus ja ülekanne. Ootamine enne, kui tunnel muutub kasutatavaks, on teine kaebus kui madal ühtlane kiirus, ja ainult üks neist viitab juhuslikkusele. Linuxis võib tavaline getrandom() päring blokeeruda, kuni tuuma juhuslik allikas on initsialiseeritud, mistõttu on selle probleemi buudiaegne versioon tõeline virtuaalmasinates ja manustatud plaatidel, millel on alguses vähe, millega basseini toita.

EtappMida käivitadaNäit, mis tähendab ootamistNäit, mis tähendab läbilaskevõimet
Buut, enne mis tahes tunnelitsystemd-analyze critical-chainüksus, mis istub sekundeid enne tunneli käivitumistei kohaldu, veel ei edastata midagi
Kätleminejournalctl -u openvpn-server@server -bpikk vahe enne initsialiseerimisjärjestuse lõppuei kohaldu, tunnel ei ole üleval
Püstitatud ülekanness -tin kõrval sar -n DEV 1blokeeritud protsess tühjade soketijärjekordadegatäis järjekorrad, kordusedastused ja üks hõivatud lõim

Kaks odavat käsku kuuluvad selle kogumi algusesse ja lahendavad lihtsad küsimused enne, kui tabelit üldse vaja on. Loendur, mida nad loevad, on entroopiaarvestus, mitte ribalaiuse mõõdik, ja üks hetktõmmis ei saa näidata, et protsess on blokeeritud, kui kaua see ootas või millist liidest selle teegikutsed kasutavad. Pärast taastumist võetud proov jätab seiskumise tavaliselt täiesti vahele, seega hoidke tuuma versioon näidu kõrval.

cat /proc/sys/kernel/random/entropy_avail
uname -r

Sobitage parandus näiduga

Kui tuum tõesti ootab initsialiseerimist, vaadake platvormi toetatud seemendusteet, mitte tunnelit. Virtuaalmasinale saab anda hosti pakutava juhusliku seadme, näiteks virtio-rng, ja kujutise ettevalmistus loeb, sest muutumatult paljudesse külalistesse kopeeritud seeme ei ole sõltumatu initsialiseerimine. Kui teek teatab pärast buuti seemendustõrgetest, uurige selle konfigureeritud allikat ja pakkuja käitumist, selle asemel et tuuma seadeid muuta.

ss -tin dst 203.0.113.7
sar -n DEV 1 5

OpenSSL-i generaatori dokumentatsioon kirjeldab, kuidas see hierarhia sisendit saab ja millal ümberseemendamine toimub, mis on palju kitsam väide kui müüt ja kehtib ainult selle teostuse kohta. Entroopiadeemon ei ole universaalne kiiruseparandus ja selle paigaldamine loenduri tõstmiseks muudab turvaeeldust, ilma et tõestaks viivitust. Läbilaskevõime puhul järgige andmeteed: üks küllastunud lõim, kordusedastused, väline kadu ja järjekordade mahaviskamine vajavad igaüks erinevat parandust, ning puhvrite suurused tegelevad soketi puhverdusega oma järjekordatõenditega.

Seotud artiklid