Што робіць загадзя ўзгоджаны ключ у IPsec, OpenVPN і WireGuard
Агульны сакрэт можа аўтэнтыфікаваць піра або дадаць пласт аховы, і яго роля змяняецца разам з пратаколам. Не блытайце яго з паролем карыстальніка.
Словы загадзя ўзгоджаны ключ сустракаюцца ў дакументацыі IPsec, OpenVPN і WireGuard, але абазначаюць тры розныя аб'екты. Адзін служыць сакрэтам аўтэнтыфікацыі, другі ахоўвае канал кіравання, трэці дадае матэрыял у рукапоціск, які ўжо мае ідэнтычнасці. Калі лічыць іх узаемазаменнымі, злучэнне ўпадзе на этапе, якога ніхто не чакаў. Прачытайце, што гэтае поле робіць у дадзеным пратаколе, перш чым капіраваць у яго значэнне.
Тры пратаколы, тры значэнні
Кожны пратакол вызначае задачу ключа ў сваёй спецыфікацыі, і гэтыя задачы не перасякаюцца. Сакрэт аўтэнтыфікацыі даказвае, што два піры ведаюць адно і тое ж значэнне. Ключ канала кіравання ахоўвае наступнае ўзгадненне. Дапаўненне да рукапоціску змяняе расклад ключоў, не змяняючы таго, кім з'яўляюцца піры.
Ніводная з гэтых роляў не аўтэнтыфікуе чалавека, і менавіта гэтая блытаніна каштуе найбольш часу. Загадзя ўзгоджаны ключ выдаюць прыладам або шлюзам да абмену, таму кожны ўласнік для іншага боку выглядае аднолькава. Гэтая ўласцівасць — перавага для сувязі паміж двума маршрутызатарамі і рызыка для службы аддаленага доступу з названымі супрацоўнікамі. Трымайце ўліковыя даныя і крыптаграфічны сакрэт у асобных слупках дакумента, які апісвае разгортванне.
IPsec і OpenVPN ужываюць гэтае слова па-рознаму
IKEv2 можа аўтэнтыфікаваць піра загадзя ўзгоджаным сакрэтам замест сертыфікатаў, і значэнне мусіць супадаць на абодвух баках. Паколькі той самы сакрэт звычайна наладжваюць для групы піраў, любы ўласнік можа выдаць сябе за іншых, і абмен не атрымлівае ніякай прамой сакрэтнасці ад ключоў ідэнтычнасці, якіх ніколі не меў.
Опцыі tls-auth і tls-crypt у OpenVPN прымацоўваюць статычны ключ да канала кіравання, дадаючы подпіс HMAC або шыфруючы само ўзгадненне. Гэты ключ не з'яўляецца паролем карыстальніка і не замяняе сертыфікат кліента. Адрозніваць іх важна падчас абнаўлення, калі змена пароля пакідае ключ канала кіравання некранутым.
PSK у WireGuard дадае, але не ідэнтыфікуе
Піры WireGuard ужо маюць адкрытыя і закрытыя ключы Curve25519, і рукапоціск аўтэнтыфікуе гэтыя ідэнтычнасці. Неабавязковы загадзя ўзгоджаны ключ падмешваецца ў ланцужковы ключ, дадаючы сіметрычны матэрыял паверх абмену адкрытымі ключамі.
Сам па сабе ён не дае ні ідэнтычнасці, ні ўліковага запісу, таму аператар не можа адрозніць двух уласнікаў па іх PSK. Абодва бакі мусяць несці адно і тое ж значэнне, інакш рукапоціск зрываецца без карыснага паведамлення пра памылку. Таму ротацыю трэба планаваць адразу з двух бакоў, а не як праўку аднаго файла.
Праверце распаўсюджванне, ротацыю і выдаленне
Распаўсюджванне — слабое месца любога праекта, дзе адзін сакрэт выкарыстоўваюць у многіх месцах. Значэнне, устаўленае ў акно чата, захаванае ў рэпазіторыі або паўторна выкарыстанае ў розных асяроддзях, назапашвае копіі, якія ніхто не можа пералічыць, і кожная копія ціха пашырае зону паражэння.
Тэкст у Base64 — не шыфраванне. Сакрэт, што ляжыць побач з адкрытым сертыфікатам у тым самым каталозе, застаецца сакрэтам у адкрытым выглядзе.
openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null
Змяняйце ключ па графіку і пасля любой падазронай уцечкі, абнаўляючы ўсіх запланаваных піраў да адклікання старога значэння. Затым праверце сувязь з абодвух бакоў, бо неадпаведны ключ зрываецца на рукапоціску і выглядае дакладна як праблема з міжсеткавым экранам.
Запішыце, які сакрэт ахоўвае які этап, каб скід пароля ніколі не прымалі за абнаўленне крыптаграфічнага ключа. Гэты адзін радок эканоміць гадзіну кожны раз, калі хтосьці правярае разгортванне.