Co dělá předsdílený klíč v IPsec, OpenVPN a WireGuard
Sdílené tajemství může ověřit protějšek nebo přidat vrstvu ochrany a jeho role se mění podle protokolu. Nezaměňujte ho za heslo uživatele.
Slova předsdílený klíč se objevují v dokumentaci IPsec, OpenVPN a WireGuard, ale označují tři různé objekty. Jeden je tajemství pro ověřování, druhý chrání řídicí kanál a třetí přidává materiál do handshake, který už má identity. Když je považujete za zaměnitelné, vznikne spojení, které selže v fázi, kterou nikdo nečekal. Přečtěte si, co pole v daném protokolu dělá, než do něj zkopírujete hodnotu.
Tři protokoly, tři významy
Každý protokol určuje úlohu klíče ve vlastní specifikaci a tyto úlohy se nepřekrývají. Tajemství pro ověřování dokazuje, že dva protějšky znají stejnou hodnotu. Klíč řídicího kanálu chrání vyjednávání, které následuje. Doplněk handshake mění plán klíčů, aniž by měnil to, kdo jsou protějšky.
Žádná z těchto rolí neověřuje člověka, a právě to zmatení stojí nejvíc času. Předsdílený klíč se do zařízení nebo bran nasazuje před výměnou, takže každý držitel vypadá pro druhou stranu stejně. Tato vlastnost je výhodou pro spojení mezi dvěma routery a rizikem pro službu vzdáleného přístupu s pojmenovanými zaměstnanci. Držte přihlašovací údaj účtu a kryptografické tajemství v oddělených sloupcích dokumentu, který nasazení popisuje.
IPsec a OpenVPN používají to slovo jinak
IKEv2 může ověřit protějšek předsdíleným tajemstvím místo certifikátů a hodnota musí na obou stranách souhlasit. Protože se stejné tajemství obvykle konfiguruje pro skupinu protějšků, každý držitel se může vydávat za ostatní, a výměna nezíská žádnou dopřednou bezpečnost z klíčů identity, které nikdy neměla.
Volby tls-auth a tls-crypt v OpenVPN připojují statický klíč k řídicímu kanálu, buď přidávají podpis HMAC, nebo šifrují samotné vyjednávání. Tento klíč není heslo uživatele a nenahrazuje klientský certifikát. Rozlišovat obojí je důležité při obnově, kdy změna hesla nechá klíč řídicího kanálu nedotčený.
PSK ve WireGuard přidává, neidentifikuje
Protějšky WireGuard už mají veřejné a soukromé klíče Curve25519 a handshake tyto identity ověřuje. Volitelný předsdílený klíč se vmíchá do řetězového klíče a přináší symetrický materiál navrch výměny veřejných klíčů.
Neposkytuje vlastní identitu ani uživatelský účet, takže operátor nerozliší dva držitele podle jejich PSK. Obě strany musí nést stejnou hodnotu, jinak handshake selže bez užitečné chyby. Proto je třeba rotaci naplánovat pro obě strany současně, ne jako úpravu jednoho souboru.
Zkontrolujte distribuci, rotaci a odstranění
Distribuce je slabé místo každého návrhu, který používá jedno tajemství na mnoha místech. Hodnota vložená do chatovacího okna, uložená v repozitáři nebo znovu použitá mezi prostředími získává kopie, které nikdo nespočítá, a každá kopie tiše rozšiřuje rozsah škod.
Text Base64 není šifrování. Tajemství uložené vedle veřejného certifikátu ve stejném adresáři je pořád tajemstvím v otevřené podobě.
openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null
Rotujte podle plánu a po každém podezření na únik, a než zrušíte starou hodnotu, aktualizujte všechny zamýšlené protějšky. Potom spojení otestujte z obou konců, protože neshodný klíč selže při handshake a vypadá přesně jako problém s firewallem.
Zapište, které tajemství chrání kterou fázi, aby se reset hesla nikdy nepletl s obnovou kryptografického klíče. Ten jeden řádek ušetří hodinu pokaždé, když někdo nasazení audituje.