Raak ’n VPN se entropie op? Wat entropy_avail werklik wys
’n Opstartvertraging en ’n stadige gevestigde tonnel is verskillende foute. Lees die fase, die teller se werklike betekenis en die tou voordat jy ewekansigheid blameer.
Dat die kernel se ewekansigheid opraak, is ’n aanloklike verklaring vir ’n stadige VPN, en byna altyd die verkeerde een vir die simptoom wat mense rapporteer. ’n Gasheer wat op ewekansige uitset wag, staak op ’n bepaalde oomblik, gewoonlik vroeg in die opstart of tydens sleutelhantering. ’n Tonnel wat vinnig verbind en dan stadig oordra beskryf eerder deurset. Skei daardie twee waarnemings voordat jy ’n daemon installeer om ’n getal reg te maak wat jy nog nie klaar gelees het nie.
Waarom die mite bly voortleef
Albei probleme is werklik en hulle lyk van ver af dieselfde. Opstartvertragings op ’n pas gebooste virtuele masjien gebeur wel, en ’n stadige gevestigde tonnel is net so werklik. Die fout is om aan te neem die tweede word deur die eerste veroorsaak omdat kriptografie iewers in albei verhale voorkom. Niks aan die woord enkripsie impliseer dat elke oorgedraagde greep ’n vars greep omgewingsgeraas verbruik nie.
Dis nie hoe hierdie genereerders werk nie. ’n Kriptografiese biblioteek hou ’n gesaaide genereerder en trek uitset daaruit, en hersaai volgens sy eie beleid, so die duur oomblik is saaing eerder as bestendige oordrag.
Wat ’n genereerder per pakket doen
In OpenSSL 3 word die standaardgenereerder-hiërargie gebou uit DRBG-instanties wat saai en hersaai volgens konfigurasie en toestand. In OpenVPN 2.6 lei die AEAD-datapad sy nonce af uit die pakket se volgordenommer saam met ’n per-sessie implisiete waarde, terwyl die ouer CBC-pad ’n pseudo-ewekansige IV per pakket trek. Nie een patroon ondersteun ’n reël dat die verskuif van ’n gigabyte ’n gigabyte vars kernelgeraas verbruik nie. Albei ondersteun wel die idee dat sleutelgenerering en handdrukke die plek is waar saaing saak maak.
Die CBC-geval is die moeite werd om te noem, want dit lyk soos die mite en is dit nie: sy per-pakket IV kom van die biblioteek se genereerder op die biblioteek se eie hersaaiskedule, nooit van ’n kernel-oproep per pakket nie. Wanneer iemand ’n per-greep entropiekoste aanhaal, vra watter biblioteekweergawe en watter koodpad hulle gemeet het.
Waar die wag werklik wys
Plaas tydstempels rondom die fases eerder as rondom die sessie: opstart, verifikasie, sleutelverandering en oordrag. ’n Wag voordat die tonnel bruikbaar word, is ’n ander klag as ’n lae bestendige tempo, en net een van hulle dui op ewekansigheid. Op Linux kan ’n normale getrandom() versoek blokkeer totdat die kernel se ewekansige bron geïnisialiseer is, en daarom is die opstartweergawe van hierdie probleem werklik op virtuele masjiene en ingebedde borde wat vroeg min het om die poel te voed.
| Fase | Wat om te hardloop | Lesing wat wag beteken | Lesing wat deurset beteken |
|---|---|---|---|
| Opstart, voor enige tonnel | systemd-analyze critical-chain | ’n eenheid wat sekondes sit voordat die tonnel begin | nie van toepassing nie, nog niks word oorgedra nie |
| Handdruk | journalctl -u openvpn-server@server -b | ’n lang gaping voordat die inisialiseringsreeks voltooi is | nie van toepassing nie, die tonnel is nie op nie |
| Gevestigde oordrag | ss -tin langs sar -n DEV 1 | ’n geblokkeerde proses met leë sokkie-toue | vol toue, herversendings en een besige draad |
Twee goedkoop opdragte hoort aan die begin van daardie versameling, en hulle besleg die maklike vrae voordat die tabel eers nodig is. Die teller wat hulle lees, is entropieboekhouding eerder as ’n bandwydtemeter, en ’n enkele momentopname kan nie wys dat ’n proses geblokkeer is, hoe lank dit gewag het, of watter koppelvlak sy biblioteekaanroepe gebruik nie. ’n Monster wat ná herstel geneem word, mis gewoonlik die staking heeltemal, so hou die kernelweergawe langs die lesing.
cat /proc/sys/kernel/random/entropy_avail
uname -rPas die regstelling by die lesing
As die kernel werklik op inisialisering wag, kyk na die platform se ondersteunde saaipad eerder as na die tonnel. ’n Virtuele masjien kan ’n gasheer-verskafte ewekansige toestel soos virtio-rng kry, en beeldvoorbereiding maak saak, want ’n saad wat onveranderd na baie gaste gekopieer word, is nie onafhanklike inisialisering nie. As ’n biblioteek saaifoute ná opstart rapporteer, ondersoek sy gekonfigureerde bron en verskaffergedrag eerder as om kernelinstellings te verander.
ss -tin dst 203.0.113.7
sar -n DEV 1 5Die OpenSSL se genereerderdokumentasie beskryf hoe daardie hiërargie invoer verkry en wanneer hersaaiing plaasvind, wat ’n veel smaller bewering is as die mite en een wat net vir daardie implementering geld. ’n Entropie-daemon is nie ’n universele spoedreparasie nie, en om een te installeer om ’n teller te laat styg, verander ’n sekuriteitsaanname sonder om ’n vertraging te demonstreer. Vir deurset, volg die datapad: een versadigde draad, herversendings, buitenste verlies en touverlies het elkeen ’n ander regstelling nodig, en bufferreekse spreek sokkiebufferring aan met hul eie toubewyse.