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

Чатыры задачы ў адным злучэнні

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

Некаторыя схемы зліваюць дзве ролі ў адну. AES-GCM і ChaCha20-Poly1305 гэта аўтэнтыфікаваныя шыфравальныя канструкцыі, таму канфідэнцыйнасць і цэласнасць прыходзяць разам; AES-CBC не, яму патрэбны асобны код аўтэнтыфікацыі паведамлення са сваім ключом. Таму чытанне прапановы як мяшка незалежных лікаў няправільна чытае тыя, што былі задуманыя парамі.

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

Чаму назва шыфра амаль нічога не кажа

Успрыміце фразу AES-256 сур’ёзна на хвіліну: яна пазначае блокавы шыфр і памер ключа. Яна нічога не кажа пра рэжым працы, пра тое, ці забяспечана цэласнасць, як усталяваныя ключы ці як аўтэнтыфікаваны партнёр. Два прадукты могуць абодва рэкламаваць AES-256 і адрознівацца ва ўсім астатнім, уключаючы адзін з неаўтэнтыфікаваным рэжымам і другі з рэжымам AEAD і сучасным абменам ключамі.

TLS 1.3 унёс гэтае размежаванне ў стандарт, што карысная папраўка для кожнага, хто вывучыў старэйшую лексіку. Яго шыфранаборы называюць толькі AEAD і хэш, а групы абмену ключамі і алгарытмы подпісу перамаўляюцца як асобныя параметры. Таму назву набору TLS 1.3 нельга параўноўваць з назвай набору TLS 1.2 на роўных, хоць абодва з’яўляюцца ў адным полі файла канфігурацыі. Аўдытар, які параўноўвае два радкі напрамую, робіць выснову, якую пратакол не падтрымлівае. Чытайце таксама перамоўленую групу і параметры подпісу, інакш параўнанне няпоўнае.

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

Узровень вызначае лексіку

Разгортванне IPsec вядзе дзве перамовы: прапанова IKE для кіравальнага канала і пераўтварэнне ESP для даных, і яны могуць законна адрознівацца. Чытаць першае і меркаваць, што яно апісвае другое, частая крыніца блытаніны падчас аўдыту, бо файл канфігурацыі згадвае абодва, а цікавае другое.

LayerWhat is negotiated thereWhat it does not cover
IKE proposalAlgorithms and groups for the control channel that builds the tunnelThe algorithms protecting the data itself
ESP transformEncryption and integrity for tunneled packetsPeer identity, which authentication already settled
TLS handshakeAEAD and hash, plus separately negotiated groups and signaturesRouting, authorization or retention policy
WireGuardNothing; the algorithm set is fixed by the protocolEverything above the cryptographic arrangement

Назва, даступная ў адной бібліятэцы, не аўтаматычна рэалізаваная для іншага шляху даных. Таму сцвярджэнне, што наш прадукт падтрымлівае AES-256, слабейшае, чым гучыць, і таму праблему сумяшчальнасці звычайна вырашаюць пошукам падтрыманага перасячэння, а не ўключэннем усіх старых алгарытмаў з абодвух бакоў.

Спецыфікацыя TLS 1.3 самы ясны апублікаваны прыклад гэтага размежавання, бо яна вызначае набор як пару і пераносіць астатняе ў асобную перамову. Калі гэтая форма знаёмая, прапанова IPsec і адзіны фіксаваны набор WireGuard чытаюцца як варыяцыі адной ідэі.

Чытайце перамоўлены вынік, потым спыніцеся

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

openssl s_client -connect vpn.example.net:443 -brief
ipsec statusall
wg show

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

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

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

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