It op reitsjen fan 'e kearn-tafalligens is in oanloklike ferklearring foar in stadige VPN, en hast altyd de ferkearde foar it symptoom dat minsken melde. In host dy't op tafallige útfier wachtet, stiet op in bepaald momint stil, meastentiids betiid by it opstarten of by it omgean mei kaaien. In tunnel dy't fluch ferbynt en dan stadich oerdraacht beskriuwt ynstee trochset. Skied dy beide observaasjes foardat jo in daemon ynstallearje om in getal te reparearjen dat jo noch net útlêzen hawwe.

Wêrom't de myte oerlibbet

Beide problemen binne echt en se lykje fan fierrens opinoar. Opstartstops op in krekt starte firtuele masine barre wier, en in stadige fêstige tunnel is like echt. De flater is oan te nimmen dat de twadde troch de earste komt om't kryptografy earne yn beide ferhalen foarkomt. Neat oan it wurd fersifering hâldt yn dat elke oerdroegen byte in farske byte omjouwingslûd ferbrûkt.

Sa wurkje dizze generators net. In kryptografyske bibleteek hâldt in siedde generator en hellet der útfier út, en siedet opnij neffens syn eigen belied, dat it djoere momint is it siedzjen en net de stadige oerdracht.

Wat in generator per pakket docht

Yn OpenSSL 3 wurdt de standert generatorhierargy boud út DRBG-eksimplaren dy't siedde en opnij siedde neffens konfiguraasje en steat. Yn OpenVPN 2.6 liedt it AEAD-datapaad syn nonce ôf fan it folchnûmer fan it pakket tegearre mei in ymplisite wearde per sesje, wylst it âldere CBC-paad in pseudotafallige IV per pakket hellet. Gjin fan beide patroanen stipet de regel dat it ferpleatsen fan in gigabyte in gigabyte farsk kearnlûd ferbrûkt. Beide stipje it idee dat kaaigeneraasje en hânskodzjen it plak binne dêr't siedzjen ta saak docht.

It CBC-gefal fertsjinnet in namme om't it op 'e myte liket en it net is: syn IV per pakket komt fan 'e generator fan 'e bibleteek neffens it eigen opnij-siedzjende skema fan 'e bibleteek, nea fan in kearnoprop per pakket. As immen in entropykosten per byte neamt, freegje dan hokker bibleteekferzje en hokker kodepaad se metten hawwe.

Wêr't it wachtsjen echt te sjen is

Set tiidstimpels om 'e fazen hinne ynstee fan om 'e sesje: opstart, autentikaasje, kaaiferskowing en oerdracht. Wachtsjen foardat de tunnel brûkber wurdt is in oare klacht as in lege konstante snelheid, en mar ien fan beiden wiist op tafal. Op Linux kin in normaal fersyk getrandom() blokkearje oant de tafallige boarne fan 'e kearn initialisearre is, en dêrom is de opstartferzje fan dit probleem echt op firtuele masines en ynboude buorden dy't betiid min te fieden hawwe foar de poel.

FazeWat út te fierenLêzing dy't wachtsjen betsjutLêzing dy't trochset betsjut
Opstart, foarôfgeand oan elke tunnelsystemd-analyze critical-chainin ienheid dy't sekonden sit foardat de tunnel begjintnet fan tapassing, der wurdt noch neat oerdroegen
Hânskodzjenjournalctl -u openvpn-server@server -bin lange iepening foardat de initialisaasje-rige foltôge isnet fan tapassing, de tunnel is net omheech
Fêstige oerdrachtss -tin njonken sar -n DEV 1in blokkearre proses mei lege socket-rigesfolle riges, weromstjoeringen en ien drokke tried

Twa goedkeape opdrachten hearre by it begjin fan dy samling, en se besljochtsje de maklike fragen foardat de tabel sels nedich is. De teller dy't se lêze is entropy-boekhâlding en net in bânbreedtemeter, en ien momintbyld kin net sjen litte dat in proses blokkearre is, hoe lang it wachte hat of hokker ynterface syn bibleteekoproppen brûke. In meunster dat nei it herstel nommen wurdt, mist de stop meastentiids hielendal, dus hâld de kearnferzje njonken de lêzing.

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

Koppelje de korreksje oan de lêzing

As de kearn echt op initialisaasje wachtet, sjoch dan nei it stipe siedpaad fan it platfoarm ynstee fan de tunnel. In firtuele masine kin in troch de host levere tafallich apparaat krije, lykas virtio-rng, en it tarieden fan it byld docht ta saak om't in sied dat sûnder feroaring nei in protte gasten kopiearre is, gjin ûnôfhinklike initialisaasje is. As in bibleteek nei it opstarten siedflatings meldt, ûndersykje dan syn konfigurearre boarne en it gedrach fan 'e leveransier ynstee fan kearnynstellingen te feroarjen.

ss -tin dst 203.0.113.7
sar -n DEV 1 5

De OpenSSL-generatordokumintaasje beskriuwt hoe't dy hierargy ynfier krijt en wannear't opnij siedzjen bart, wat in folle smeller bewearing is as de myte en ien dy't allinnich foar dy ymplemintaasje jildt. In entropydaemon is gjin universele snelheidsreparaasje, en it ynstallearjen fan ien om in teller stige te litten feroaret in feiligensoanname sûnder in fertraging oan te toanen. Foar trochset, folgje it datapaad: ien fersêde tried, weromstjoeringen, útwindige ferlies en rige-fallen hawwe elk in oare korreksje nedich, en buffer-grutten pakke socket-bufferjen oan mei har eigen rige-bewiis.

Relatearre artikelen