A mbaron entropia e një VPN? Çfarë tregon vërtet entropy_avail
Një ngecje në nisje dhe një tunel i vendosur i ngadaltë janë dy defekte të ndryshme. Lexoni fazën, kuptimin e vërtetë të numëruesit dhe radhën para se të fajësoni rastësinë.
Mbarimi i rastësisë së kernelit është një shpjegim tërheqës për një VPN të ngadaltë, dhe pothuajse gjithmonë i gabuari për simptomën që njerëzit raportojnë. Një host që pret dalje të rastësishme ngec në një moment të caktuar, zakonisht herët gjatë nisjes ose gjatë trajtimit të çelësave. Një tunel që lidhet shpejt dhe pastaj transferon ngadalë po përshkruan në vend të kësaj xhiron. Ndani këto dy vëzhgime para se të instaloni një daemon për të rregulluar një numër që nuk e keni mbaruar së lexuari.
Pse miti mbijeton
Të dy problemet janë reale dhe nga larg duken njësoj. Ngecjet e nisjes në një makinë virtuale të sapo nisur ndodhin vërtet, dhe një tunel i vendosur i ngadaltë është po aq real. Gabimi është të supozosh se i dyti shkaktohet nga i pari sepse kriptografia shfaqet diku në të dyja historitë. Asgjë në fjalën kriptim nuk nënkupton që çdo bajt i transferuar konsumon një bajt të freskët zhurme mjedisore.
Gjeneratorët nuk funksionojnë kështu. Një bibliotekë kriptografike mban një gjenerator me farë dhe nxjerr dalje prej tij, duke e rifarëzuar sipas politikës së vet, pra momenti i shtrenjtë është farëzimi, jo transferimi i qëndrueshëm.
Çfarë bën një gjenerator për çdo paketë
Në OpenSSL 3 hierarkia e parazgjedhur e gjeneratorëve ndërtohet nga instanca DRBG që farëzojnë dhe rifarëzojnë sipas konfigurimit dhe gjendjes. Në OpenVPN 2.6 rruga e të dhënave AEAD nxjerr nonce-in e saj nga numri i sekuencës së paketës së bashku me një vlerë të nënkuptuar për sesion, ndërsa rruga më e vjetër CBC nxjerr një IV pseudo të rastësishëm për çdo paketë. Asnjëri model nuk mbështet rregullin që lëvizja e një gigabajti konsumon një gigabajt zhurmë të freskët të kernelit. Të dyja mbështesin idenë se gjenerimi i çelësave dhe shtrëngimet e duarve janë vendi ku farëzimi ka rëndësi.
Rasti CBC meriton emër sepse duket si miti dhe nuk është: IV-ja e tij për çdo paketë vjen nga gjeneratori i bibliotekës sipas orarit të vetë bibliotekës për rifarëzim, kurrë nga një thirrje e kernelit për çdo paketë. Kur dikush citon një kosto entropie për bajt, pyesni cilën version biblioteke dhe cilën rrugë kodi matën.
Ku shihet vërtet pritja
Vendosni vulë kohore rreth fazave, jo rreth sesionit: nisja, autentikimi, ndryshimi i çelësit dhe transferimi. Pritja para se tuneli të bëhet i përdorshëm është një ankesë tjetër nga një normë e ulët e qëndrueshme, dhe vetëm njëra prej tyre tregon nga rastësia. Në Linux një kërkesë getrandom() normale mund të bllokohet derisa burimi i rastësishëm i kernelit të inicializohet, prandaj versioni në nisje i këtij problemi është real në makina virtuale dhe pllaka të integruara që kanë pak me çfarë të ushqejnë pellgun herët.
| Faza | Çfarë duhet ekzekutuar | Lexim që do të thotë pritje | Lexim që do të thotë xhiro |
|---|---|---|---|
| Nisje, para çdo tuneli | systemd-analyze critical-chain | një njësi që rri sekonda para se tuneli të nisë | nuk zbatohet, ende nuk transferohet asgjë |
| Shtrëngim duarsh | journalctl -u openvpn-server@server -b | një hendek i gjatë para se sekuenca e inicializimit të përfundojë | nuk zbatohet, tuneli nuk është lart |
| Transferim i vendosur | ss -tin pranë sar -n DEV 1 | një proces i bllokuar me radhë soketësh bosh | radhë të plota, ritransmetime dhe një fije e zënë |
Dy komanda të lira i përkasin fillimit të asaj mbledhjeje, dhe ato zgjidhin pyetjet e lehta para se tabela të nevojitet fare. Numëruesi që lexojnë është kontabilitet entropie, jo matës i gjerësisë së brezit, dhe një pamje e vetme nuk mund të tregojë se një proces është bllokuar, sa priti ose cilën ndërfaqe thërrasin funksionet e bibliotekës së tij. Një mostër e marrë pas rikuperimit zakonisht e humb plotësisht ngecjen, pra mbani versionin e kernelit pranë leximit.
cat /proc/sys/kernel/random/entropy_avail
uname -rPërshtatni korrigjimin me leximin
Nëse kernelit vërtet pret inicializimin, shikoni rrugën e farëzimit të mbështetur nga platforma, jo tunelin. Një makine virtuale mund t'i jepet një pajisje e rastësishme e siguruar nga hosti, si për shembull virtio-rng, dhe përgatitja e imazhit ka rëndësi sepse një farë e kopjuar pa ndryshim në shumë mysafirë nuk është inicializim i pavarur. Nëse një bibliotekë raporton dështime farëzimi pas nisjes, shqyrtoni burimin e konfiguruar dhe sjelljen e ofruesit në vend që të ndryshoni cilësime të kernelit.
ss -tin dst 203.0.113.7
sar -n DEV 1 5Dokumentacioni i gjeneratorit OpenSSL përshkruan se si kjo hierarki merr hyrje dhe kur ndodh rifarëzimi, që është një pohim shumë më i ngushtë se miti dhe vlen vetëm për atë implementim. Një daemon entropie nuk është riparim universal shpejtësie, dhe instalimi i tij për të ngritur një numërues ndryshon një supozim sigurie pa demonstruar vonesë. Për xhiron, ndiqni rrugën e të dhënave: një fije e ngopur, ritransmetimet, humbja e jashtme dhe rëniet e radhës kërkojnë secila një korrigjim tjetër, dhe madhësitë e buferit trajtojnë buferimin e soketëve me provat e tyre të radhës.