AH sau ESP? Decide după ce trebuie să protejeze pachetul
AH autentifică o parte mai mare din pachet și nu criptează nimic; ESP poate cripta și autentifica. Alege după câmpurile pe care trebuie să le protejezi, apoi cădeți de acord asupra modului.
Două propuneri IPsec pot numi același algoritm de integritate bazat pe SHA și totuși pot cere protocoale de protecție diferite; AH și ESP nu sunt două grafii ale aceleiași setări de autentificare. Citește mai întâi protocolul, apoi algoritmii lui, apoi modul lui, și cea mai mare parte a ambiguității dispare. AH autentifică pachetul, inclusiv câmpurile din antetul IP care rămân neschimbate pe drum, în timp ce ESP autentifică și criptează ce încapsulează și lasă antetul exterior în pace. Această diferență decide mai multe implementări decât orice nume de hash.
Ce acoperă AH și ESP nu
AH oferă integritate, autentificarea originii datelor și serviciul anti-repetare pe care îl definește, și nicio confidențialitate. Acoperirea lui include datele stratului superior și câmpurile din antetul IP pe care regulile lui le consideră imuabile, exact partea pe care ESP în modul transport o lasă afară. Când o cerință spune că antetul IP însuși trebuie autentificat, AH este protocolul care răspunde.
Această acoperire este și motivul pentru care AH este fragil în practică. Câmpurile variabile precum TTL, suma de control a antetului și unele opțiuni nu pot fi autentificate pentru că routerele le pot rescrie, așa că protocolul le pune la zero înainte de a calcula verificarea. Prin urmare, orice rescrie adrese strică calculul, nu doar politica.
NAT transformă alegerea într-o constrângere
Traducerea adreselor rescrie sursa sau destinația în antetul IP pe care AH tocmai l-a autentificat, așa că verificarea integrității eșuează la celălalt capăt, și eșuează ca eroare de protocol și nu ca un mesaj care poate fi citit. ESP nu autentifică antetul exterior, de aceea ESP cu traversare NAT funcționează, iar AH în spatele NAT nu. Un tunel cu ambele capete în spatele unor routere obișnuite este exact locul unde acest lucru apare prima dată. Așadar prima întrebare nu este care protocol este mai puternic, ci dacă există un traducător între capete.
Dacă există, AH cade, iar discuția trece la ESP și la alegerile lui de algoritm. Este o constrângere și nu o preferință, de aceea stă la începutul deciziei și nu la sfârșit.
Modul multiplică întrebarea
ESP în modul transport protejează încărcătura stratului superior și lasă antetul IP în pace; în modul tunel încapsulează întregul pachet interior, inclusiv antetul IP interior, și îl protejează. AH are aceleași două moduri, deci AH sau ESP sunt de fapt patru combinații înainte de a alege vreun algoritm.
Algoritmii ESP în modul combinat rezolvă apoi integritatea fără un al doilea protocol. AES-GCM și ChaCha20-Poly1305 autentifică și criptează într-o singură construcție, deci adăugarea AH deasupra nu cumpără nimic, dar costă încă un antet și încă o negociere. Arhitectura permite AH și ESP împreună, iar întrebarea practică este dacă poarta ta și versiunea ta acceptă combinația și dacă cineva o va putea întreține după aceea.
Înlocuitorul onest pentru doar AH
Varianta ESP doar cu integritate păstrează algoritmul și renunță la pretenția de criptare în loc să o mimeze, și trece prin NAT. Dacă un design vechi folosea AH pentru că era nevoie de autentificare fără confidențialitate, acea variantă este traducerea directă, nu un tunel criptat cu o notă atașată.
Vederea ESP într-o propunere nu este nici ea dovadă de criptare. Citește algoritmul de criptare: o intrare NULL înseamnă doar integritate, iar o intrare în modul combinat înseamnă ambele.
Decide în trei întrebări
Întreabă dacă e nevoie de confidențialitate, dacă există un traducător pe cale și ce câmpuri de antet trebuie autentificate. Aceste trei răspunsuri indică un protocol și un mod, iar scrierea lor ia mai puțin timp decât recitirea RFC-urilor mai târziu.
Apoi verifică ce a fost acceptat, nu ce a fost propus. ip xfrm state arată protocolul, modul și algoritmii asocierii instalate, iar o nepotrivire nu instalează nimic, ceea ce este un eșec mai curat decât un tunel care urcă fără protecția dorită.
Ține eșecurile de autentificare, acoperirea selectorilor și erorile de rutare separate de această alegere. Ele dau simptome diferite, iar a da vina pe protocol pentru o problemă de selector este o modalitate sigură de a petrece o zi schimbând hash-uri fără motiv.