Prečo môže šifrovaný paket VPN stáť menej, než si myslíte
Ďalšia kryptografická značka nie je ďalšia jednotka práce. Porovnajte celú cestu: konštrukcia AEAD, podpora procesora, bufferovanie a vyjednaný dátový režim.
Dva profily sa testujú na tej istej bráne, jeden so šifrovaním a jeden bez, a šifrovaný nie je pomalší. Niekedy je rýchlejší, čo zvyčajne vyvolá dlhú hádku o tom, či bol test vykonaný správne. Výsledok je uveriteľný, pretože cena paketu nie je počet kryptografických slov v konfigurácii. Je to súbor operácií, ktoré implementácia vykonáva, na hardvéri, ktorý má, nad rozložením bufferu, ktoré si zvolila.
Príznak: pomalý nie je šifrovaný profil
Predpokladajme, že historický test porovnáva šifru AEAD s režimom „bez šifrovania“, ktorý stále počíta samostatný autentizačný kód pre každý paket. Druhý profil skrýva obsah užitočného zaťaženia, ale zachováva hash na paket, a na procesore bez zrýchlenia pre tento hash môže stáť viac než integrovaná konštrukcia, ktorú mal prekonať.
Značka v konfigurácii hovorí „šifrovanie“ a na značku sa pozerá väčšina porovnaní. Cesta paketu hovorí niečo iné: jeden profil vykonáva kombinovanú operáciu, pre ktorú má procesor inštrukcie, a druhý samostatnú, pre ktorú ich nemá. Čítanie samotného konfiguračného súboru nikdy neodhalí ten rozdiel, pretože oba záznamy vyzerajú ako jeden riadok. Výsledok vysvetľuje iba vyjednaný režim a kódová cesta za ním.
To je celé vysvetlenie a nevyžaduje žiadne tvrdenie o tom, ktorá primitíva je univerzálne rýchlejšia. Obe môžu byť rýchle, obe môžu byť pomalé, a poradie závisí od stroja a kódu.
Počítajte operácie, nie značky
Konštrukcia AEAD, ako ju opisuje RFC 5116, dáva implementácii jediné rozhranie, ktoré vracia šifrovaný text a značku spolu. AES-GCM je jeden príklad: šifrovanie v režime čítača kombinované s autentifikátorom Galois. Rozhranie nerobí integritu zadarmo; robí kombináciu dobre definovanou, a práve to umožňuje implementácii optimalizovať dvojicu ako celok.
Separate authentication path: payload -> independent HMAC -> framed packet AEAD path: payload -> authenticated encryption with tag -> framed packet
Sú to náčrty spracovania, nie rady ku konfigurácii. Prvý nemá dôvernosť, ale stále spotrebúva procesor na autentizáciu, a práve preto „vypni šifrovanie“ nie je synonymom „vypni kryptografickú prácu“.
Druhý môže byť lacnejší, pretože procesory poskytujú inštrukcie pre obe polovice: kolá AES a násobenie bez prenosu, ktoré používa pole Galois. Knižnice tiež spracúvajú nezávislé buffery paralelne, čo udržiava tie inštrukcie zaneprázdnené namiesto čakania na pamäť.
Čo vyjednaný režim skutočne umožňuje
Pri Community OpenVPN dátová šifra AEAD znamená, že voľba auth už neprispieva vlastným samostatným HMAC dátového kanála. Referencia k voľbe šifrovania opisuje tento rozsah, a to je dôvod, prečo sa dve konfigurácie, ktoré v textovom súbore vyzerajú podobne, môžu líšiť v práci na paket.
Čítajte vyjednaný režim, nie zoznam želaní. Zoznam povolených šifier a názov sady TLS vám nepovedia, ktoré operácie bežia na užitočnom zaťažení, a starý riadok cipher nemusí opisovať, čo si zvolilo aktuálne spojenie.
openvpn --show-ciphers | head -20 sudo grep -E 'cipher|auth' /etc/openvpn/server.conf
Prvý príkaz vypisuje šifry, ktoré binárka podporuje, čo je zoznam schopností, nie vyjednaný výsledok. Druhý ukazuje, čo server skutočne žiada. Protokol spojenia je miesto na potvrdenie konečnej voľby, pretože klient môže spadnúť na niečo, čo server povoľuje, ale nikto nezamýšľal.
Merajte záťaž, ktorú skutočne prevádzkujete
Kryptografický mikrobenchmark meria primitívu za jej vlastných podmienok. Prenos VPN tiež kopíruje buffery, plánuje vlákna alebo prerušenia, kontroluje politiku a prechádza sieťou. Tieto časti často dominujú, a preto rýchlejšia primitíva nie vždy dáva rýchlejší tunel.
openssl speed -evp aes-256-gcm openssl speed -evp sha1
Tieto dva príkazy vám dajú hrubé miestne porovnanie primitív na stroji pred vami a sú čestné v tom, že ide o mikrobenchmarky. Nepovedia nič o priepustnosti vášho tunela a nikdy by sa ako také nemali citovať.
Potom merajte záťaž, na ktorej záleží, so všetkým ostatným konštantným: rovnaký koncový bod, rovnaké veľkosti paketov, rovnaký transport, rovnaká politika kompresie. Ak zmena profilu zmenila aj transport alebo miesto spracovania, výsledok opisuje tento zväzok, nie kryptografiu.
Majte na očiach aj cieľ. Dátová cesta s voľnou kryptografickou kapacitou môže byť stále limitovaná latenciou, pretože aplikácia čaká na spiatočné cesty, a zisky v hromadnej kapacite neopravia zhovorčivý protokol. Merajte podporovanú a politikou schválenú konfiguráciu ako celok a berte „menej krabíc musí byť rýchlejšie“ ako hypotézu, ktorou to je. Užitočná otázka nie je, či šifrovanie niečo stojí, ale či sa tá cena objaví v meraní, na ktorom vám skutočne záleží.