Għalfejn pakkett VPN encryptat jista’ jiswa inqas milli taħsbu
Tikketta kriptografika oħra mhijiex unità oħra ta’ xogħol. Qabbel il-passa kollu: kostruzzjoni AEAD, appoġġ tas-CPU, buffering u l-mod tad-dejta nnegozjat.
Żewġ profili jiġu mkejla fuq l-istess gateway, wieħed b’encryption u ieħor mingħajrha, u dak encryptat mhuwiex aktar bil-mod. Xi kultant huwa aktar mgħaġġel, li normalment joħloq argument twil dwar jekk it-test sarx sew. Dan ir-riżultat huwa plawsibbli, għax l-ispiża ta’ pakkett mhijiex l-għadd ta’ kliem kriptografiku fil-konfigurazzjoni. Hija s-sett ta’ operazzjonijiet li twettaq l-implimentazzjoni, fuq il-ħardwer li għandha, fuq it-tqassim tal-buffer li għażlet.
Is-sintomu: dak bil-mod mhuwiex il-profil encryptat
Ejja ngħidu li test storiku jqabbel cipher AEAD ma’ mod „mingħajr encryption“ li xorta jikkalkula kodiċi ta’ awtentikazzjoni separat għal kull pakkett. It-tieni profil jaħbi l-kontenut tal-payload imma jżomm hash għal kull pakkett, u fuq proċessur mingħajr aċċellerazzjoni għal dak il-hash jista’ jiswa aktar mill-kostruzzjoni integrata li kellu jegħleb.
It-tikketta fil-konfigurazzjoni tgħid „encryption“, u t-tikketta hija kollox li tħares lejh il-maġġoranza tal-paraguni. Il-passa tal-pakkett jgħid xi ħaġa oħra: profil wieħed iwettaq operazzjoni magħquda li s-CPU għandha struzzjonijiet għaliha, u l-ieħor iwettaq waħda separata li m’għandux. Li taqra l-fajl tal-konfigurazzjoni biss qatt ma se tikxef dik id-differenza, għax iż-żewġ entrati jidhru bħal linja waħda. Biss il-mod nnegozjat u l-passa tal-kodiċi warajh jispjegaw ir-riżultat.
Dik hija l-ispjegazzjoni kollha, u ma teħtieġ l-ebda talba dwar liema primittiva hija aktar mgħaġġla universalment. Tnejn jistgħu jkunu mgħaġġla, tnejn jistgħu jkunu bil-mod, u l-ordni tiddependi mill-magna u mill-kodiċi.
Għodd operazzjonijiet, mhux tikketti
Kostruzzjoni AEAD, kif deskritta f’RFC 5116, tagħti lill-implimentazzjoni interfaċċja waħda li tirritorna ċ-ċifratur u t-tikketta flimkien. AES-GCM huwa eżempju wieħed: encryption fil-mod tal-counter magħquda ma’ awtentikatur Galois. L-interfaċċja ma tagħmilx l-integrità b’xejn; tagħmel it-taħlita definita tajjeb, u dan huwa dak li jippermetti lill-implimentazzjoni tottimizza l-par bħala unità waħda.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Dawn huma skeċċi tal-ipproċessar, mhux parir tal-konfigurazzjoni. L-ewwel waħda m’għandhiex kunfidenzjalità imma xorta tqatta’ CPU fl-awtentikazzjoni, u huwa eżattament għalhekk li „itfi l-encryption“ mhuwiex sinonimu ta’ „itfi x-xogħol kriptografiku“.
It-tieni tista’ tkun irħas għax il-proċessuri jipprovdu struzzjonijiet għaż-żewġ nofsijiet: rawnds tal-AES u l-multiplikazzjoni mingħajr carry li tuża l-qasam Galois. Il-libreriji wkoll jipproċessaw buffers indipendenti b’mod parallel, li jżomm dawk l-istruzzjonijiet impenjati minflok jistennew il-memorja.
X’jippermetti fil-fatt il-mod nnegozjat
B’Community OpenVPN, cipher tad-dejta AEAD ifisser li l-għażla auth ma tibqax tikkontribwixxi HMAC separat tagħha tal-kanal tad-dejta. Ir-referenza tal-għażla tal-encryption tiddeskrivi dak l-iskop, u huwa għalhekk li żewġ konfigurazzjonijiet li jidhru simili f’fajl tat-test jistgħu jvarjaw fix-xogħol għal kull pakkett.
Aqra l-mod nnegozjat minflok il-lista tax-xewqat. Lista ta’ ciphers permessi u isem ta’ suite TLS ma jgħidulekx liema operazzjonijiet jaħdmu fuq il-payload, u linja cipher qadima tista’ ma tiddeskrivix liema għażlet il-konnessjoni attwali.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
L-ewwel kmand jelenka ċ-ciphers li l-binarju jappoġġja, li hija lista ta’ kapaċitajiet u mhux ir-riżultat nnegozjat. It-tieni juri x’jitlob fil-fatt is-server. Il-log tal-konnessjoni huwa l-post fejn tikkonferma l-għażla finali, għax il-klijent jista’ jaqa’ fuq xi ħaġa li s-server jippermetti imma li ħadd ma kien beħsiebu.
Kejjel ix-xogħol li fil-fatt tmexxi
Mikrobenchmark kriptografiku jkejjel primittiva taħt il-kundizzjonijiet tagħha stess. Trasferiment VPN ukoll jikkopja buffers, jiskeda ħjut jew interrupts, jiċċekkja l-politika u jaqsam in-netwerk. Dawk il-partijiet spiss jiddominaw, u għalhekk primittiva aktar mgħaġġla mhux dejjem tagħti mina aktar mgħaġġla.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Dawk iż-żewġ kmandi jagħtuk paragun lokali approssimattiv tal-primittivi fuq il-magna quddiemek, u huma onesti li huma mikrobenchmarks. Ma jgħidu xejn dwar it-throughput tal-mina tiegħek, u qatt m’għandhom jiġu kkwotati bħala tali.
Imbagħad kejjel ix-xogħol li jgħodd, u żżomm kollox ieħor kostanti: l-istess endpoint, l-istess daqsijiet tal-pakkett, l-istess trasport, l-istess politika tal-kompressioni. Jekk il-bidla fil-profil bidlet ukoll it-trasport jew il-post tal-ipproċessar, ir-riżultat jiddeskrivi dak il-pakkett u mhux il-kriptografija.
Żomm ukoll l-għan fil-vista. Passa tad-dejta b’kapaċità kriptografika żejda xorta tista’ tkun marbuta mal-latency għax l-applikazzjoni tistenna vjaġġi lura u ’l quddiem, u l-qligħ fil-kapaċità bil-kwantità ma jsewwix protokoll li jitkellem ħafna. Kejjel il-konfigurazzjoni appoġġjata u approvata mill-politika b’mod sħiħ, u ttratta „inqas kaxxi trid tkun aktar mgħaġġla“ bħala l-ipoteżi li hi. Il-mistoqsija utli mhijiex jekk l-encryption tiswiex xi ħaġa, imma jekk l-ispiża tidhirx fil-kejl li tassew jimpurtak minnu.