Două mașini care vorbesc doar între ele pot păstra acea topologie și totuși obține chei de trafic negociate. Forma rețelei și modul de protecție sunt alegeri independente, iar confundarea lor este ceea ce îi face pe oameni să încerce să rotească un secret static prin înlocuirea unui fișier în timp ce ambele daemon-uri rulează în continuare. Înlocuirea fișierului cheii sub o pereche în funcțiune nu rotește nimic. Modul cu cheie statică, pe care OpenVPN 2.6 îl marchează ca învechit, păstrează o singură cheie pe toată durata de viață a tunelului, așa că fișierul de pe disc și cheia din memorie se potrivesc din nou doar după repornirea ambelor capete. Dacă cerința este reînnoirea automată, modul de protecție trebuie schimbat.

Ce nu poate face modul cu cheie statică

În modul secret, ambii parteneri împart o cheie pre-partajată care criptează și autentifică direct tunelul. Nu există strângere de mână, deci nu există niciun mecanism prin care vreo parte să propună material de cheie nou, să demonstreze o identitate sau să se recupereze după o nepotrivire fără intervenția operatorului. Ambele proprietăți decurg din absența unui canal de control, nu dintr-o opțiune lipsă, iar niciun indicator de configurare nu adaugă unul acestui mod.

Manualul OpenVPN 2.6 spune explicit că cheia persistă până când este generată una nouă. Acest lucru este acceptabil pentru o legătură de laborator sau o pereche fixă de aparate cu o procedură de rotație documentată și este inacceptabil oriunde un secret de lungă durată este un risc real. O înlocuire de fișier nu creează o cheie nouă pentru o pereche în funcțiune; creează doi parteneri care nu sunt de acord. Prin urmare, înlocuirea fișierului adaugă o întrerupere fără a adăuga rotație.

De asemenea, nu există noțiunea de identitate a partenerului dincolo de deținerea fișierului. Oricine deține cheia este un partener, iar nimic din tunel nu înregistrează care parte este care, așa că revocarea este totul sau nimic.

Trecerea la TLS fără reproiectarea legăturii

Modul TLS adaugă un canal de control și, odată cu el, capacitatea de a negocia cheile canalului de date. Într-o implementare punct la punct, o parte preia rolul de server, iar cealaltă rolul de client, dar topologia rămâne o legătură între doi parteneri: fiecare parte cunoaște punctul terminal al celeilalte și nu apare niciun bazin și niciun serviciu multi-utilizator. Rolurile sunt un detaliu al strângerii de mână, nu o arhitectură nouă.

Dați fiecărei mașini propria identitate. Fiecare parte are nevoie de un certificat și o cheie privată, de ancora de încredere care o validează pe cealaltă și de o regulă de verificare a partenerului care numește cine este așteptat. Nu refolosiți cheia privată a unui partener pe celălalt pentru a economisi timp; asta transformă două identități într-una și elimină posibilitatea de a revoca fiecare parte separat. Înregistrarea este locul unde se face acest lucru corect, pentru că repararea ulterioară înseamnă reemiterea certificatelor.

Păstrați contractul de rețea neschimbat în timp ce protecția se schimbă. Aceleași adrese de tunel, rute și servicii permise ar trebui să se aplice înainte și după, astfel încât o defecțiune în timpul migrării să fie o problemă de protecție și nu o surpriză de rutare deghizată. Notați adresele și rutele înainte de schimbare; compararea lor după este mai rapidă decât reconstruirea din memorie.

Unele implementări protejează și canalul de control cu propria cheie statică, care nu se rotește împreună cu canalul de date. Acea cheie păzește strângerea de mână, nu încărcătura utilă, așa că un compromis al ei expune negocierea, nu traficul. Păstrați-o separat de materialul canalului de date și dați-i o dată de înlocuire de care este responsabilă o persoană numită. Rotirea ei înseamnă repornirea ambilor parteneri într-o fereastră coordonată, motiv pentru care merită o intrare în calendar și nu o amintire.

Cine reînnoiește ce, și când

În modul TLS, reînnoirea este guvernată de limite configurate: un interval de timp, un număr de octeți sau un număr de pachete. Controlul temporal documentat este ceea ce se bazează majoritatea implementărilor, iar valoarea efectivă mai mică dintre cei doi parteneri poate începe înlocuirea, așa că ridicarea ei doar pe o parte nu va opri evenimentul. Limitele bazate pe volum există pentru că o legătură aglomerată poate epuiza o cheie mult înainte de ceas. Niciuna dintre limite nu este o verificare de sănătate și niciuna nu vă spune că o reînnoire a reușit.

De aceea diagnosticarea unei renegocieri recurente dintr-un singur fișier de configurare este înșelătoare. Citiți setările pe ambii parteneri, apoi priviți tranziția din jurnal în loc să presupuneți o defecțiune. O reînnoire care se încheie curat arată ca o scurtă rafală de trafic pe canalul de control, nu ca o deconectare.

Țineți obiectele separate în minte. Certificatul dovedește identitatea pe termen lung și este înlocuit conform unui calendar pe care îl controlați. Cheia canalului de date este reîmprospătată automat, iar un schimb de autentificare separat, dacă implementarea îl cere, urmează politica contului și poate avea nevoie de propriile aranjamente pentru schimburile ulterioare.

Dezactivarea completă a reînnoirii, prin setarea intervalului la zero, nu este o soluție pentru un jurnal zgomotos. Transformă un eveniment sănătos al ciclului de viață într-o cheie permanentă, ceea ce vă readuce la proprietatea de care încercați să scăpați.

Acceptarea schimbării

Construiți noua configurație din exemplul acceptat al versiunii instalate, nu dintr-un fragment minimal vechi ale cărui algoritmi și căi de fișiere au fost moștenite de altundeva. Coordonați comutarea astfel încât ambii parteneri să se schimbe împreună și păstrați o cale de recuperare aprobată în caz că o parte nu pornește. Coborâți legătura în mod deliberat în loc să așteptați o întrerupere pentru a testa revenirea. O revenire pe care ați exersat-o valorează mai mult decât una pe care ați descris-o.

Testați trei lucruri: verificarea inițială a identității reușește, fluxul aplicației dorit funcționează și o reînnoire controlată are loc fără a pierde trafic. Apoi citiți tranziția din jurnal pentru ceea ce dovedește de fapt: un identificator nou de cheie înseamnă că partenerii au finalizat o înlocuire, nu că tunelul s-a reconectat. Tratați-o ca dovadă a unui singur pas și verificați contoarele de trafic înainte de a declara migrarea încheiată.

Ceea ce o promisiune de zero întreruperi ar ascunde este defecțiunea pe care nu ați văzut-o încă. O reînnoire care eșuează, un certificat care expiră sau un defect de cale pot încă perturba legătura, iar niciunul nu este exclus de o rulare curată de test. Proprietatea pentru care merită proiectat este mai îngustă și mai utilă: înlocuirea de rutină a cheilor încetează să mai fie o schimbare manuală de fișier.

Articole similare