Slová predzdieľaný kľúč sa objavujú v dokumentácii IPsec, OpenVPN a WireGuard, ale označujú tri rôzne objekty. Jeden je tajomstvo na overovanie, druhý chráni riadiaci kanál a tretí pridáva materiál do handshake, ktorý už má identity. Ak ich považujete za zameniteľné, vznikne spojenie, ktoré zlyhá vo fáze, ktorú nikto nečakal. Prečítajte si, čo pole v danom protokole robí, skôr než doň skopírujete hodnotu.

Tri protokoly, tri významy

Každý protokol určuje úlohu kľúča vo vlastnej špecifikácii a tieto úlohy sa neprekrývajú. Tajomstvo na overovanie dokazuje, že dve protistrany poznajú rovnakú hodnotu. Kľúč riadiaceho kanála chráni vyjednávanie, ktoré nasleduje. Doplnok handshake mení plán kľúčov bez toho, aby menil to, kým protistrany sú.

Žiadna z týchto rolí neoveruje človeka, a práve toto zmätenie stojí najviac času. Predzdieľaný kľúč sa do zariadení alebo brán nasadzuje pred výmenou, takže každý držiteľ vyzerá pre druhú stranu rovnako. Táto vlastnosť je výhodou pre spojenie medzi dvoma routermi a rizikom pre službu vzdialeného prístupu s pomenovanými zamestnancami. Držte prihlasovací údaj účtu a kryptografické tajomstvo v oddelených stĺpcoch dokumentu, ktorý nasadenie opisuje.

IPsec a OpenVPN používajú to slovo inak

IKEv2 môže overiť protistranu predzdieľaným tajomstvom namiesto certifikátov a hodnota musí na oboch stranách súhlasiť. Keďže sa rovnaké tajomstvo zvyčajne konfiguruje pre skupinu protistrán, každý držiteľ sa môže vydávať za ostatných, a výmena nezíska žiadnu doprednú bezpečnosť z kľúčov identity, ktoré nikdy nemala.

Voľby tls-auth a tls-crypt v OpenVPN pripájajú statický kľúč k riadiacemu kanálu, buď pridajú podpis HMAC, alebo šifrujú samotné vyjednávanie. Tento kľúč nie je heslo používateľa a nenahrádza klientsky certifikát. Rozlišovať oboje je dôležité pri obnove, keď zmena hesla nechá kľúč riadiaceho kanála nedotknutý.

PSK vo WireGuard pridáva, neidentifikuje

Protistrany WireGuard už majú verejné a súkromné kľúče Curve25519 a handshake tieto identity overuje. Voliteľný predzdieľaný kľúč sa vmieša do reťazového kľúča a prináša symetrický materiál navrch výmeny verejných kľúčov.

Neposkytuje vlastnú identitu ani používateľský účet, takže operátor nerozlíši dvoch držiteľov podľa ich PSK. Obe strany musia niesť rovnakú hodnotu, inak handshake zlyhá bez užitočnej chyby. Preto treba rotáciu naplánovať pre obe strany súčasne, nie ako úpravu jedného súboru.

Skontrolujte distribúciu, rotáciu a odstránenie

Distribúcia je slabé miesto každého návrhu, ktorý používa jedno tajomstvo na mnohých miestach. Hodnota vložená do chatovacieho okna, uložená v repozitári alebo znovu použitá medzi prostrediami získava kópie, ktoré nikto nespočíta, a každá kópia potichu rozširuje rozsah škôd.

Text Base64 nie je šifrovanie. Tajomstvo uložené vedľa verejného certifikátu v tom istom adresári je stále tajomstvom v otvorenej podobe.

openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null

Rotujte podľa plánu a po každom podozrení na únik, a pred zrušením starej hodnoty aktualizujte všetky zamýšľané protistrany. Potom spojenie otestujte z oboch koncov, pretože nezhodný kľúč zlyhá pri handshake a vyzerá presne ako problém s firewallom.

Zapíšte, ktoré tajomstvo chráni ktorú fázu, aby sa reset hesla nikdy neplietol s obnovou kryptografického kľúča. Ten jeden riadok ušetrí hodinu zakaždým, keď niekto nasadenie audituje.

Súvisiace články