Kāpēc šifrēts VPN pakets var izmaksāt mazāk, nekā jūs domājat
Vēl viena kriptogrāfijas birka nav vēl viena darba vienība. Salīdziniet visu ceļu: AEAD konstrukcija, CPU atbalsts, buferēšana un saskaņotais datu režīms.
Divi profili tiek mērīti vienā un tajā pašā vārtejā, viens ar šifrēšanu un otrs bez tās, un šifrētais nav lēnāks. Dažkārt tas ir pat ātrāks, kas parasti izraisa ilgu strīdu par to, vai tests tika veikts pareizi. Rezultāts ir ticams, jo paketes izmaksas nav kriptogrāfisko vārdu skaits konfigurācijā. Tas ir darbību kopums, ko veic implementācija, uz pieejamās aparatūras, atbilstoši izvēlētajam bufera izkārtojumam.
Simptoms: lēnais nav šifrētais profils
Pieņemsim, ka vēsturisks tests salīdzina AEAD šifru ar režīmu „bez šifrēšanas“, kas joprojām aprēķina atsevišķu autentifikācijas kodu katram paketam. Otrais profils slēpj lietderīgās kravas saturu, bet saglabā jaucējvērtību katram paketam, un procesorā bez paātrinājuma šai jaucējvērtībai tas var izmaksāt vairāk nekā integrētā konstrukcija, kuru tam vajadzēja pārspēt.
Birka konfigurācijā saka „šifrēšana“, un birka ir viss, uz ko skatās lielākā daļa salīdzinājumu. Paketes ceļš saka ko citu: viens profils veic apvienotu darbību, kurai CPU ir instrukcijas, bet otrs — atsevišķu, kurai to nav. Tikai konfigurācijas faila lasīšana nekad neatklās šo atšķirību, jo abi ieraksti izskatās kā viena rinda. Rezultātu izskaidro tikai saskaņotais režīms un aiz tā esošais koda ceļš.
Tas ir viss skaidrojums, un tam nav vajadzīgs nekāds apgalvojums par to, kura primitīva ir universāli ātrāka. Abas var būt ātras, abas var būt lēnas, un kārtība ir atkarīga no mašīnas un koda.
Skaitiet darbības, nevis birkas
AEAD konstrukcija, kā to apraksta RFC 5116, dod implementācijai vienu saskarni, kas atgriež šifrtekstu un tagu kopā. AES-GCM ir viens piemērs: skaitītāja režīma šifrēšana apvienota ar Galois autentifikatoru. Saskarne nepadara integritāti bezmaksas; tā padara kombināciju labi definētu, un tieši tas ļauj implementācijai optimizēt pāri kā vienu vienību.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Tie ir apstrādes skiči, nevis konfigurācijas padomi. Pirmajā nav konfidencialitātes, bet tas joprojām tērē CPU autentifikācijai, un tieši tāpēc „izslēdz šifrēšanu“ nav sinonīms frāzei „izslēdz kriptogrāfisko darbu“.
Otrais var būt lētāks, jo procesori nodrošina instrukcijas abām pusēm: AES raundus un bez pārneses reizināšanu, ko izmanto Galois lauks. Bibliotēkas arī apstrādā neatkarīgus buferus paralēli, kas notur šīs instrukcijas aizņemtas, nevis gaida atmiņu.
Ko saskaņotais režīms patiešām ļauj
Ar Community OpenVPN AEAD datu šifrs nozīmē, ka opcija auth vairs nepiegādā savu atsevišķu datu kanāla HMAC. Šifrēšanas opcijas atsauce apraksta šo apjomu, un tas ir iemesls, kāpēc divas konfigurācijas, kas teksta failā izskatās līdzīgas, var atšķirties darbā uz vienu paketi.
Lasiet saskaņoto režīmu, nevis vēlmju sarakstu. Atļauto šifru saraksts un TLS komplekta nosaukums nepasaka, kādas darbības notiek ar lietderīgo kravu, un veca cipher rinda var neaprakstīt to, ko izvēlējās pašreizējais savienojums.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
Pirmā komanda uzskaita šifrus, ko atbalsta binārais fails, un tas ir iespēju saraksts, nevis saskaņotais rezultāts. Otrā parāda, ko serveris patiešām pieprasa. Savienojuma žurnāls ir vieta, kur apstiprināt galīgo izvēli, jo klients var atkrist uz kaut ko tādu, ko serveris atļauj, bet neviens nebija domājis.
Mēriet to slodzi, kuru patiešām darbināt
Kriptogrāfisks mikrobenchmarks mēra primitīvu tās pašas apstākļos. VPN pārsūtīšana arī kopē buferus, plāno pavedienus vai pārtraukumus, pārbauda politiku un šķērso tīklu. Šīs daļas bieži dominē, tāpēc ātrāka primitīva ne vienmēr dod ātrāku tuneli.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Šīs divas komandas dod jums aptuvenu vietēju primitīvu salīdzinājumu jūsu priekšā esošajā mašīnā, un tās ir godīgas, ka tas ir mikrobenchmarks. Tās neko nepasaka par jūsu tuneļa caurlaidspēju, un tās nekad nevajadzētu citēt kā tādu.
Pēc tam mēriet to, kam ir nozīme, turot visu pārējo nemainīgu: tas pats galapunkts, tie paši paketes izmēri, tas pats transports, tā pati saspiešanas politika. Ja profila maiņa mainīja arī transportu vai apstrādes vietu, rezultāts apraksta to kopumu, nevis kriptogrāfiju.
Turiet arī mērķi acu priekšā. Datu ceļš ar brīvu kriptogrāfisko jaudu joprojām var būt ierobežots ar latentumu, jo lietojumprogramma gaida turp un atpakaļ braucienus, un lielapjoma jaudas ieguvumi neizlabo runīgu protokolu. Mēriet atbalstīto un politikas apstiprināto konfigurāciju kopumā, un izturieties pret „mazāk kastu obligāti ir ātrāk“ kā pret hipotēzi, kas tā arī ir. Noderīgais jautājums nav par to, vai šifrēšana kaut ko maksā, bet gan par to, vai izmaksas parādās tajā mērījumā, kas jums patiešām ir svarīgs.