Ce pachete OpenVPN protejează digestul auth?
Opțiunea auth acoperă mai puțin decât sugerează un profil. Parcurgeți canalul, cazul AEAD și protecția canalului de control înainte de a stabili o politică de digest.
Majoritatea dezbaterilor despre digesturile OpenVPN pornesc de la pachetul greșit. A citi auth SHA256 ca „acceptă doar partenerii care oferă SHA256” este primul lucru de dezvățat. Opțiunea numește un digest pentru anumite pachete, iar care sunt acele pachete depinde de canal și de dacă acel canal este AEAD. Parcurgeți cele patru întrebări de mai jos în ordine; fiecare restrânge ce poate însemna setarea în implementarea dumneavoastră.
Numiți canalul pe care setarea trebuie să îl protejeze
OpenVPN are un canal de control care transportă traficul de strângere de mână TLS și un canal de date care transportă sarcina tunelului. Digestul auth are un rol în ambele, dar nu același, iar profilul face rar diferența vizibilă. Notați pe care dintre cele două încercați să îl restricționați înainte de a atinge un fișier de configurare.
Tabelul de mai jos este versiunea scurtă a modului în care aceeași opțiune ajunge în fiecare context.
| Context | What the auth digest does |
|---|---|
| Data channel without AEAD | Selects the HMAC digest that authenticates each data packet |
| Data channel with AEAD, such as GCM | Unused for the data channel; the cipher authenticates its own packets |
| Control channel protected by tls-auth | Selects the HMAC digest for that protection, even when data is AEAD |
Verificați dacă canalul de date este AEAD înainte de a vă baza pe el
Dacă cifrul de date negociat este AES-GCM sau CHACHA20-POLY1305, canalul de date se autentifică singur, iar digestul separat nu face munca pe care poate v-o imaginați. Ambele sunt construcții AEAD, așa că integritatea este produsă de aceeași operație care criptează sarcina. Nu este o degradare, dar înseamnă că o politică justificată ca „fiecare pachet de date este HMAC-SHA256” este faptic greșită pe acel tunel. Confirmați valoarea negociată în jurnalul serverului sau în ieșirea de stare a clientului înainte de a rescrie politica.
Inspectați cifrul care a fost cu adevărat negociat, nu lista din profil, pentru că negocierea poate ajunge pe un alt membru al mulțimii. data-ciphers AES-256-GCM:AES-128-GCM este o listă de negociere, iar ambele intrări sunt AEAD, deci niciuna dintre ele nu consumă digestul auth pentru protecția sarcinii.
Tratați protecția canalului de control ca pe o decizie separată
tls-auth adaugă un HMAC pachetelor canalului de control și își ia digestul din setarea auth, de aceea un tunel AEAD poate avea în continuare un digest semnificativ configurat. tls-crypt este o altă aranjare, cu protecția ei fixă, așa că nu presupuneți că moștenește fiecare proprietate a tls-auth. Citiți documentația mecanismului pe care l-ați ales, în loc să transferați presupuneri între ele.
Cei doi parteneri trebuie să fie de acord și asupra aranjării, și asupra direcției cheii. Un digest care se potrivește, dar un fișier de cheie folosit în direcția greșită produce o strângere de mână care eșuează din motive pe care setarea digestului nu le poate explica.
Țineți auth separat de negocierea cifrurilor și de certificate
Trei setări sunt confundate constant: digestul auth, lista cifrurilor de date și algoritmul de semnătură al certificatului. Schimbarea primeia nu reemite un certificat, nu îi selectează digestul de semnătură și nu creează o metodă utilizator-parolă. Definițiile opțiunilor de protocol din sursele OpenVPN 2.6 descriu fiecare în secțiunea ei, ceea ce este o reamintire utilă că sunt butoane independente.
Când un partener refuză să se conecteze după o schimbare de digest, cauza este de obicei o nepotrivire într-una dintre celelalte două setări. Citiți ambele capete înainte de a schimba oricare dintre ele.
Scrieți politica și comparați-o cu configurațiile care rulează
O declarație la nivel de flotă ar trebui să numească explicit modurile de canal de date permise și protecția canalului de control aleasă, în aceeași frază. Acea frază este verificabilă; „folosim SHA256” nu este. Apoi comparați-o cu profilurile efective de server și client, nu cu un șablon dintr-un depozit.
Încheiați notând ce a negociat de fapt fiecare tunel și ce mecanism i-a autentificat pachetele. O linie auth vizibilă într-un profil este doar dovada intenției de configurare, iar intenția este partea cea mai ieftină a verificării.