Два профілі тэстуюцца на адным шлюзе, адзін з шыфраваннем, другі без, і зашыфраваны не аказваецца павольнейшым. Часам ён хутчэйшы, што звычайна выклікае доўгую спрэчку пра тое, ці правільна праводзіўся тэст. Вынік праўдападобны, бо кошт пакета — гэта не колькасць крыптаграфічных слоў у канфігурацыі. Гэта набор аперацый, якія выконвае рэалізацыя, на тым абсталяванні, якое мае, і па той схеме буфера, якую абрала.

Сімптом: менавіта зашыфраваны профіль не з’яўляецца павольным

Выкажам здагадку, што гістарычны тэст параўноўвае шыфр AEAD з рэжымам „без шыфравання“, які ўсё яшчэ вылічвае асобны код аўтэнтыфікацыі для кожнага пакета. Другі профіль хавае змест карыснай нагрузкі, але захоўвае хэш на пакет, і на працэсары без паскарэння для гэтага хэша ён можа каштаваць даражэй за інтэграваную канструкцыю, якую павінен быў пераўзысці.

Метка ў канфігурацыі кажа „шыфраванне“, і менавіта на метку глядзіць большасць параўнанняў. Шлях пакета кажа іншае: адзін профіль выконвае аб’яднаную аперацыю, для якой у працэсара ёсць інструкцыі, а другі — асобную, для якой іх няма. Чытанне аднаго канфігурацыйнага файла ніколі не выявіць гэтую розніцу, бо абодва запісы выглядаюць як адзін радок. Толькі ўзгоднены рэжым і код за ім тлумачаць вынік.

Гэта і ёсць усё тлумачэнне, і яно не патрабуе ніякага сцвярджэння пра тое, які прымітыў універсальна хутчэйшы. Абодва могуць быць хуткімі, абодва могуць быць павольнымі, і парадак залежыць ад машыны і кода.

Лічыце аперацыі, а не меткі

Пабудова AEAD, як апісана ў RFC 5116, дае рэалізацыі адзіны інтэрфейс, які вяртае шыфратэкст і тэг разам. AES-GCM — адзін з прыкладаў: шыфраванне ў рэжыме лічыльніка, аб’яднанае з аўтэнтыфікатарам Галуа. Інтэрфейс не робіць цэласнасць бясплатнай; ён робіць спалучэнне добра вызначаным, і менавіта гэта дазваляе рэалізацыі аптымізаваць пару як адзінае цэлае.

Separate authentication path:
  payload -> independent HMAC -> framed packet

AEAD path:
  payload -> authenticated encryption with tag -> framed packet

Гэта эскізы апрацоўкі, а не парады па канфігурацыі. У першым няма канфідэнцыяльнасці, але працэсар усё роўна траціцца на аўтэнтыфікацыю, і менавіта таму „выключыць шыфраванне“ не з’яўляецца сінонімам да „выключыць крыптаграфічную працу“.

Другі можа быць таннейшым, бо працэсары даюць інструкцыі для абодвух палавін: раўндаў AES і множання без пераносу, якое выкарыстоўвае поле Галуа. Бібліятэкі таксама апрацоўваюць незалежныя буферы паралельна, што трымае гэтыя інструкцыі занятымі замест чакання памяці.

Што ўзгоднены рэжым фактычна дазваляе

У Community OpenVPN шыфр даных AEAD азначае, што опцыя auth больш не дадае ўласны асобны HMAC канала даных. Даведка па опцыі шыфравання апісвае гэтыя межы, і менавіта таму дзве канфігурацыі, падобныя ў тэкставым файле, могуць адрознівацца па працы на пакет.

Чытайце ўзгоднены рэжым, а не спіс жаданняў. Дазволены спіс шыфраў і назва набору TLS не кажуць, якія аперацыі выконваюцца над нагрузкай, а стары радок cipher можа не апісваць тое, што выбрала бягучае злучэнне.

openvpn --show-ciphers | head -20
sudo grep -E 'cipher|auth' /etc/openvpn/server.conf

Першая каманда пералічвае шыфры, якія падтрымлівае бінарнік, гэта спіс магчымасцей, а не ўзгоднены вынік. Другая паказвае, што сервер фактычна запытвае. Журнал злучэння — гэта месца, дзе пацвярджаецца канчатковы выбар, бо кліент можа адкаціцца да таго, што сервер дазваляе, але ніхто не меў на ўвазе.

Мерце тую нагрузку, якую фактычна выконваеце

Крыптаграфічны мікратэст мерае прымітыў ва ўласных умовах. Перадача праз VPN таксама капіюе буферы, плануе патокі або перапынкі, правярае палітыку і перасякае сетку. Гэтыя часткі часта дамінуюць, і менавіта таму хутчэйшы прымітыў не заўсёды дае хутчэйшы тунель.

openssl speed -evp aes-256-gcm
openssl speed -evp sha1

Гэтыя дзве каманды даюць грубае лакальнае параўнанне прымітываў на машыне перад вамі, і яны сумленна сведчаць, што гэта мікратэсты. Яны нічога не кажуць пра прапускную здольнасць вашага тунеля, і іх ніколі нельга цытаваць як такія.

Затым мерце нагрузку, якая мае значэнне, трымаючы ўсё астатняе нязменным: той жа канчатковы пункт, тыя ж памеры пакетаў, той жа транспарт, тая ж палітыка сціскання. Калі змена профілю таксама змяніла транспарт або месца апрацоўкі, вынік апісвае гэты набор, а не крыптаграфію.

Трымайце мэту ў полі зроку таксама. Шлях даных з запасной крыптаграфічнай магутнасцю можа ўсё яшчэ быць абмежаваны затрымкай, бо праграма чакае кругавых паездак, і выйгрыш у агульнай прапускной здольнасці не выпраўляе гаваркі пратакол. Мерце падтрыманую і ўзгодненую з палітыкай канфігурацыю як цэлае, і стаўцеся да „менш скрынь павінна быць хутчэй“ як да гіпотэзы, якой яна і ёсць. Карыснае пытанне не ў тым, ці каштуе шыфраванне нечага, а ў тым, ці паказваецца гэты кошт у тым вымярэнні, якое вам сапраўды важна.

Падобныя артыкулы