Articolul se dorește a fi atât o scurtă prezentare a suitei de protocoale IPsec, dar și o introducere în cum poate fi folosit IPsec pentru securizarea comunicațiilor prin rețea.
IPsec – Internet Protocol Security - este o suită de protocoale destinate securizării comunicațiilor prin intermediul autentificării și/sau criptării pachetelor IP. Cel mai uzual, IPsec este folosit pentru acces de la distanță - accesul de la o stație în rețea și VPN între rețele.
IPsec cuprinde și un protocol (IKE – Internet Key Exchange) destinat negocierii algoritmilor în funcție de politica locală, generării cheilor de criptare și autentificare și schimbului de chei între părțile participante.
IPsec operează pe nivelul 3 al modelului OSI, nivelul rețea, având avantajul că aplicațiile nu trebuie să fie special proiectate să beneficieze de IPsec.
Pentru că protocolul IP nu are integrată nici o componentă de securitate, a fost introdus IPsec pentru a furniza următoarele facilități de securitate:
| • | Confidențialitate - criptarea traficului; |
| • | Validarea integrității – datele transmise nu au fost alterate în timpul transferului prin rețea; |
| • | Autentificarea părților – asigură că traficul provine de la o parte de încredere; |
| • | Anti-replay – protecția împotriva înregistrării traficului și retransmiterii acestuia de către o parte cu intenții răuvoitoare; exemplu – înregistrarea unei părți de trafic reprezentând o secvență reușită de autentificare și retransmiterea ei mai târziu într-o încercare de impersonare. |
IPsec funcționează în două moduri:
1. | Modul transport În modul transport doar partea de date (payload) a pachetului IP este criptată și/sau autentificată. Informațiile de rutare din pachet sunt intacte, dar în situația în care se folosește și antet (header) de autentificare nu se poate folosi translatarea adreselor IP (NAT) pentru că acest lucru va duce la invalidarea hash-ului. Modul transport este folosit în cazul comunicațiilor host-to-host. O modalitate de incapsula IPsec pentru a trece prin NAT este mecanismul NAT-T (NAT Traversal). |
2. | Modul tunel În modul tunel întregul pachet IP (partea de date precum și antetele) este criptat și/sau autentificat. Pentru a putea fi rutate pachetele trebuie incapsulate într-un nou pachet IP. Tunelarea este folosită pentru comunicațiile între rețele (ex.: tunele între rutere din rețele diferite, VPN-uri), de la un host la o rețea sau de la host la host peste Internet. |
Principalele protocoale care intră în componenta IPsec sunt AH și ESP.
AH (Authentication Header) - antet de autentificare - furnizează facilități de autentificare, integritate și nerepudiere, dar nu și confidențialitate. AH protejează atât partea de date cât și antetele pachetului IP, cu excepția celor care se modifică în timpul transmisiei prin rețea (TTL, TOS, Header checksum). Protocolul AH nu este compatibil cu NAT pentru că echipamentele de rețea ce sunt responsabile de NAT trebuie să schimbe informațiile existente în antetele pachetelor.
ESP (Encapsulating Security Payload) - livrează și confidențialitate, pe lângă autentificare și integritate. ESP poate fi folosit doar pentru autentificare, doar pentru confidențialitate (criptare) sau autentificare și confidențialitate. Oricum nu se recomandă folosirea criptării fără autentificare din motive de securitate. În modul transport antetul pachetului IP nu este protejat de ESP, ci doar informațiile din pachet (payload); în modul tunel este criptat întregul pachet incapsulat.
Algoritmii de verificare a integrității (hash algorithms) folosiți atât de AH cât și de ESP sunt SHA1 și MD5, acesta din urmă nemaifiind recomandat din motive de securitate (coliziuni în algoritm).
Algoritmii de criptare folosiți de ESP sunt DES, 3DES și AES (128, 192, 256). Algoritmul DES nu se recomandă a mai fi folosit din cauza cheii prea scurte (56 biti), ceea ce-l face vulnerabil la atacuri "brute-force".
Pe lângă AH și ESP IPsec mai beneficiază și de serviciile protocoalelor IKE (Internet key exchange) și ISAKMP (Internet Security Association and Key Management Protocol).
IKE este protocolul folosit pentru asocierile de securitate (security association - SA), acestea reprezentând stabilirea de informații comune de securitate între două entități din rețea în vederea comunicației securizate. ISAKMP este un protocol pentru stabilirea de asocieri de securitate (SA) și chei de criptare în Internet.
Prin intermediul IPsec se pot implementa un set de scenarii pentru a îmbunătăți securitatea rețelei:
| • | Securizarea comunicației între două servere – în acest caz IPsec este folosit pentru a cripta traficul între două servere. Un exemplu este autentificarea și criptarea traficului între un server OWA (Outlook Web Access) și un server Exchange. |
| • | Protejarea unui server – serverul poate fi izolat față de clienți neautentificați, posibil cu intenții răuvoitoare. În acest scenariu un server de aplicație critic va permite accesul numai de la stațiile care sunt în domeniu; orice alt client care nu aparține domeniului nu va putea iniția o conexiune către server. |
| • | Protejarea domeniului – IPsec poate fi folosit pentru izolarea membrilor domeniului de stații/servere care nu aparțin acestuia. Toți membrii domeniului se conectează între ei securizat, dar, nefiind autentificate, alte mașini care nu sunt în domeniu nu pot accesa nici o resursă din acesta. |
Acest ultim scenariu este cel mai dificil de implementat pentru că trebuie avute în vedere un număr de situații ce trebuie exceptate de la aplicarea politicilor IPSec, cum ar fi serverele DHCP, DNS și controller-ele de domeniu (domain controllers). La pornirea unui calculator acesta trebuie să-și primească adresa IP prin intermediul DHCP, apoi folosește serviciul DNS pentru localizarea unui controller de domeniu, de-abia după logarea în domeniu beneficiază de autentificarea Kerberos pentru a putea folosi IPsec.
Voi prezenta un scenariu în care un server/stație va fi configurat/ă să accepte doar conexiuni TCP securizate.
În Windows Server 2008 și Windows Vista configurarea regulilor IPsec se face din consola Windows Firewall with Advanced Security (WF.msc). În această consolă se selectează secțiunea Inbound rules, meniul Action și apoi "New Rule".
Vom selecta o regulă custom:

Următorul pas este specificarea aplicației la care se aplică această regulă; selectăm "All programs".

Apoi alegem protocolul și, eventual, portul/porturile de la care și spre care se face conexiunea:

Urmează să specificăm adresele IP pentru care se aplică această regulă:

La acest pas se precizează că se permite conexiunea numai dacă este securizată (IPsec), aceasta însemnând autentificată și, opțional, și criptată:

Opțional, se poate specifica și o listă de calculatoare sau utilizatori de la care se poate iniția conexiunea:

La următorul pas se specifică dacă regula se aplică pentru una din situațiile în care calculatorul este conectat în domeniu, într-o rețea privată sau publică:

Iar ultimul pas este denumirea acestei reguli:

Prin integrarea managementului Windows Firewall și IPsec în aceeași interfață nu doar se ușurează munca administratorului, dar se și micșorează posibilitatea de configurare greșită, cum ar fi situația unor reguli ce intră în conflict, situație întâlnită în versiunile anterioare de Windows, la care existau utilitare diferite de configurare și management pentru firewall și IPsec.