Што спецыфікацыя пратаколу VPN даказвае, а што — не
Спецыфікацыя фіксуе фарматы паведамленняў, алгарытмы і дапушчэнні пра пагрозы. Яна не можа паручыцца за зборку, якую вы ўсталявалі, ці за апрацоўку ўліковага запісу аператарам.
Дакумент пратаколу — гэта кантракт паміж рэалізацыямі, і ўважлівае чытанне паказвае, што два адпаведныя бакі будуць абменьваць і якія ўласцівасці распрацоўшчыкі мелі намер забяспечыць. Ён не кажа, які бінарны файл працуе на серверы, да якога вы падключаецеся, як гэты сервер наладжаны і што потым адбываецца з вашым уліковым запісам. Гэта тры розныя віды доказаў, і стаўленне да спецыфікацыі як да ўсіх трох адначасова — гэта тое, з чаго назва пратаколу пачынае рабіць працу, якую не можа. Раздзяленне гэтых трох і ёсць сутнасць практыкавання.
Дакумент — гэта пачатак аргументу, а не яго выснова.
Што дакумент насамрэч вызначае
Для WireGuard апісанне пратаколу вызначае рукапоцісканне Noise IK, фіксаваны набор прымітываў, структуры паведамленняў і транспартнае афармленне, якое далей пераносіць пакеты. Для IKEv2 параўнальны дакумент — RFC 7296, які вызначае абмены, карысныя нагрузкі і ўзгадненне прапаноў. У абодвух выпадках абсяг дакладны: паведамленні, машына станаў і дапушчэнні, пры якіх выконваюцца мэты бяспекі.
Неабавязковыя рэжымы ўскладняюць чытанне. Уласцівасць, якая выконваецца для аднаго рукапоціскання, можа не дзейнічаць для разгортвання з іншай схемай аўтэнтыфікацыі ці рэзервовай канфігурацыяй.
Дзе заканчваюцца гарантыі
Фармальны аналіз адказвае на пытанне пра мадэль. Праца па верыфікацыі WireGuard выкарыстоўвае сімвалічную мадэль у даказніку Tamarin, які можа паказаць, што дызайн супрацьстаіць пэўным атакам пры яго дапушчэннях; ён не паказвае, што пастаўленая рэалізацыя ў прасторы карыстальніка не мае памылкі бяспекі памяці. Менавіта ў гэтым разрыве паміж мадэллю і машынай жывуць рэальныя інцыдэнты. Чытаць доказ як сертыфікат рэалізацыі — гэта памылка катэгорыі.
Перадавая сакрэтнасць ілюструе тую ж мяжу. Уласцівасць залежыць ад знішчэння ключоў так, як мае на ўвазе пратакол, а гэта ўласцівасць рэалізацыі і яе асяроддзя, а не фармату паведамлення. Дызайн, які прадугледжвае сціранне, не можа патрабаваць яго на платформе, што скідвае памяць на дыск.
Шматузроўневыя залежнасці яшчэ больш пашыраюць разрыў: бібліятэка TLS за тунэлем на базе TLS, інтэрфейс ядра, які выкарыстоўвае тунэль у прасторы карыстальніка, і генератар выпадковых лікаў — усе яны знаходзяцца па-за тэкстам пратаколу.
Прасочвайце байты да самай зборкі
Пераходзьце ад дакумента да артэфактаў, вызначаючы версіі і потым параўноўваючы іх з тым, што фактычна абслугоўвае трафік. Прадукт, які называе пратакол, можа дадаваць кампаненты забеспячэння, тэлеметрыі і кіравання, якіх спецыфікацыя ніколі не апісвае.
openvpn --version | head -3 wg --version dpkg -l | grep -E 'openvpn|wireguard|libssl' ss -lunp | grep -E '1194|51820' sha256sum ./wireguard-tools_1.0.20210914_amd64.deb
Узнаўляльныя зборкі і апублікаваныя кантрольныя сумы дазваляюць звязаць дрэва зыходнікаў з распаўсюджаным бінарным файлам. Без гэтай сувязі апублікаваны зыходнік даказвае толькі тое, што праверка магчымая, а не тое, што файл, які выконваецца, адпавядае яму.
Канфігурацыя адносіцца да таго ж кроку. Наборы шыфраў, дазволеныя бакі і налады маршрутызацыі — гэта выбары разгортвання, і адпаведная зборка, наладжаная няўважліва, усё роўна дае слабы тунэль.
Трымайце аперацыйныя практыкі асобна
Уліковыя запісы, плацежныя даныя і звароты ў падтрымку — гэта рашэнні аператара, якія не абмяжоўвае ніякі тэкст пратаколу. Аўдытарская справаздача ахоплівае названыя кампаненты ў заяўленых межах, а палітыка прыватнасці апісвае намеры і практыкі; ні адно не замяняе другое, і ні адно не з’яўляецца крыптаграфічным сцвярджэннем.
Дакладная выснова назапашвальная: спецыфікацыя тлумачыць дызайн, зборка і канфігурацыя — тунэль, а дакументаваныя практыкі аператара — усё, чаго тунэль ніколі не бачыць. Скажыце, што з гэтага вы правяралі, і сцвярджэнне застанецца праўдзівым.