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.

Saistītie raksti