Ce face o cheie prepartajată în IPsec, OpenVPN și WireGuard
Un secret comun poate autentifica un partener sau poate adăuga un strat de protecție, iar rolul lui se schimbă cu protocolul. Nu îl confundați cu o parolă de utilizator.
Cuvintele cheie prepartajată apar în documentația IPsec, OpenVPN și WireGuard, dar descriu trei obiecte diferite. Unul este un secret de autentificare, altul protejează un canal de control, iar al treilea adaugă material unei strângeri de mână care are deja identități. Dacă le tratați ca interschimbabile, obțineți o conexiune care eșuează într-o etapă la care nimeni nu se aștepta. Citiți ce face câmpul în acel protocol înainte de a copia o valoare în el.
Trei protocoale, trei semnificații
Fiecare protocol definește sarcina cheii în propria specificație, iar sarcinile nu se suprapun. Un secret de autentificare dovedește că doi parteneri cunosc aceeași valoare. O cheie de canal de control protejează negocierea care urmează. Un supliment pentru strângerea de mână schimbă programul cheilor fără a schimba cine sunt partenerii.
Niciunul dintre aceste roluri nu autentifică un om, iar tocmai această confuzie costă cel mai mult timp. O cheie prepartajată este instalată pe dispozitive sau gateway-uri înainte de schimb, așa că fiecare deținător arată identic pentru cealaltă parte. Această proprietate este un avantaj pentru o legătură între doi routeri și un risc pentru un serviciu de acces la distanță cu angajați numiți. Țineți acreditarea contului și secretul criptografic în coloane separate ale documentului care descrie implementarea.
IPsec și OpenVPN folosesc cuvântul diferit
IKEv2 poate autentifica un partener cu un secret prepartajat în locul certificatelor, iar valoarea trebuie să coincidă la ambele capete. Deoarece același secret este de obicei configurat pentru un grup de parteneri, orice deținător îi poate imita pe ceilalți, iar schimbul nu câștigă nicio confidențialitate înainte din chei de identitate pe care nu le-a avut niciodată.
Opțiunile tls-auth și tls-crypt din OpenVPN atașează o cheie statică la canalul de control, adăugând o semnătură HMAC sau criptând negocierea în sine. Acea cheie nu este o parolă de utilizator și nu înlocuiește certificatul clientului. Distincția contează la reînnoire, când o schimbare de parolă lasă cheia canalului de control neatinsă.
PSK-ul din WireGuard adaugă, nu identifică
Partenerii WireGuard au deja chei publice și private Curve25519, iar strângerea de mână autentifică aceste identități. O cheie prepartajată opțională este amestecată în cheia de lanț și aduce material simetric peste schimbul de chei publice.
Nu oferă o identitate proprie și nici un cont de utilizator, așa că un operator nu poate distinge doi deținători după PSK-ul lor. Ambele capete trebuie să poarte aceeași valoare, altfel strângerea de mână eșuează fără un mesaj de eroare util. De aceea rotația trebuie planificată pentru ambele părți deodată, nu ca editarea unui singur fișier.
Verificați distribuirea, rotația și eliminarea
Distribuirea este punctul slab al oricărui proiect care folosește un secret în multe locuri. O valoare lipită într-o fereastră de chat, salvată într-un depozit sau refolosită între medii adună copii pe care nimeni nu le poate enumera, iar fiecare copie extinde în tăcere raza daunelor.
Textul Base64 nu este criptare. Un secret păstrat lângă un certificat public în același director rămâne un secret în clar.
openssl rand -base64 32
sudo wg show wg0 preshared-keys
sudo grep -R -n 'psk' /etc/ipsec.d/ 2>/dev/null
Rotiți conform unui program și după orice expunere suspectată, actualizând fiecare partener prevăzut înainte de a revoca valoarea veche. Apoi testați legătura de la ambele capete, pentru că o cheie nepotrivită eșuează la strângerea de mână și arată exact ca o problemă de firewall.
Documentați care secret protejează care etapă, ca o resetare de parolă să nu fie niciodată confundată cu reînnoirea unei chei criptografice. Acea singură linie economisește o oră de fiecare dată când cineva auditează implementarea.