Израз унапред договорени кључ јавља се у документацији 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

Ротирајте по распореду и након сваке сумњиве изложености, ажурирајући сваку предвиђену страну пре него што опозовете стару вредност. Затим испробајте везу са оба краја, јер кључ који се не поклапа пада при руковању и изгледа тачно као проблем са ватрозидом.

Запишите која тајна штити коју фазу, да се поновно постављање лозинке никада не замени са обновом криптографског кључа. Тај један ред штеди сат сваки пут када неко прегледа увођење.

Повезани чланци