Reînnoirea cheii, reconectarea sau reautentificarea: de care ai nevoie?
Reînnoirea cheii schimbă cheile de sesiune, reconectarea reconstruiește conexiunea, iar reautentificarea repetă identitatea. Confundarea lor duce la remedierea greșită.
O sesiune care rulează de ore nu va păstra aceleași chei pentru totdeauna, iar acest lucru este intenționat. Trei evenimente diferite sunt numite rotație a cheilor: material de sesiune nou sub o asociere existentă, o reconstrucție completă a conexiunii și o repetare a verificării identității. Fiecare are un declanșator, un cost și o semnătură de defect diferite. Alege-l pe cel greșit și remedierea fie nu face nimic, fie scoate tunelul din funcțiune fără motiv.
Decizia depinde de ce strat a expirat de fapt.
Trei operațiuni numite rotație
O reînnoire a cheii creează chei de trafic noi în cadrul relației de control existente, folosind mecanismul definit de protocol. IKEv2 face asta cu o nouă asociere de securitate copil, TLS 1.3 cu un mesaj de actualizare a cheii, iar WireGuard cu o nouă strângere de mână când se ating limitele sale de timp sau de mesaje. Adresele tunelului și identitatea autentificată rămân unde erau.
O reconectare aruncă conexiunea și o reconstruiește de la început, ceea ce repetă alocarea adreselor, instalarea rutelor și orice negociere făcută de prima încercare.
Reautentificarea repetă dovada identității în sine, care poate implica o acreditare, un certificat sau un al doilea factor. Poate avea loc cu sau fără reconectare, în funcție de produs.
Ce observă utilizatorii la reînnoire
O reînnoire a cheii ar trebui să fie aproape invizibilă. Identificatorii asocierii se schimbă, contoarele pot fi resetate, iar aplicațiile își păstrează socketurile; o pauză scurtă într-o direcție este normală în timpul schimbului. Un identificator nou într-o listă de stare nu este dovada unei defecțiuni. Linia de jurnal care urmează după schimb este cea care îți spune dacă s-a terminat.
O cădere reală la reînnoire indică un punct anume. O nepotrivire a propunerii, o acreditare expirată sau o schimbare de cale produc fiecare o linie de jurnal diferită, și doar una dintre ele se remediază prin ajustarea duratelor de viață.
Unde cele trei diverg în practică
Dacă singurul lucru expirat este materialul cheii, reînnoiește cheia. Dacă adresa partenerului, ruta sau legătura NAT s-au schimbat și pachetele nu mai ajung, reconectează. Dacă organizația cere o verificare periodică a identității, aceea este reautentificare și nicio ajustare a duratelor nu o înlocuiește.
Valorile implicite ale protocoalelor conțin de obicei răspunsul corect. WireGuard reînnoiește cheile după un prag de timp și de volum de date fără nicio acțiune a utilizatorului; duratele IKEv2 sunt negociate pentru fiecare asociere copil; tunelurile bazate pe TLS rotesc cheile în sesiunea existentă. Creșterea duratelor pentru a evita o eroare recurentă amână defectul și prelungește expunerea dacă o cheie este compromisă.
Un avertisment contează pentru sesiunile lungi: frecvența singură nu creează secretul înainte. Proprietatea depinde de modul în care cheile de sesiune se raportează la secretele pe termen lung și de dacă cheile vechi sunt distruse, ceea ce este o chestiune de proiectare și implementare, nu o setare.
Alege valorile implicite, apoi înregistrează etapa
Păstrează valorile implicite ale furnizorului dacă o cerință documentată nu spune altfel, și schimbă duratele la ambele capete dacă le schimbi. Apoi înregistrează la ce etapă a ajuns fiecare eveniment, astfel încât următoarea apariție să poată fi verificată față de același punct al strângerii de mână.
swanctl --list-sas ip xfrm state | grep -E 'proto|replay-window' wg show journalctl -u strongswan --since '1 hour ago' | grep -i -E 'rekey|rekeyed|child'
După o corecție, fă o reînnoire controlată și trimite trafic de aplicație nou prin asociația nouă. Un tunel care raportează că este stabilit dar nu transmite nimic este defectul pe care această verificare există ca să îl prindă.