You are on page 1of 9

SIFB

Arhitectura de securitate IP

PUIULEȚ CRISTIAN

Anul
2017-2018
IP Security Protocol (IPSec)

1. Introducere
1.1 Ce este IPsec?
Internet Protocol Security (IPsec) este o suită de protocoale utilizată pentru
securizarea comunicațiilor IP (Internet Protocol) prin criptarea și autentificarea
fiecărui pachet IP al unei sesiuni de comunicare pentru a asigura confidențialitatea,
integritatea și non-repudierea informațiilor. IPsec mai conține și o serie de protocoale
pentru realizarea autentificării mutuale între participanți la începutul sesiunii precum
și pentru negocierea cheii criptografice folosite pe parcursul comunicării.
IPsec este o schemă de securitate de tip end-to-end implementată în nivelul 3 al
stivei TCP/IP precum și în al stivei ISO/OSI. Din acest motiv spre deosebire de
celelalte protocoale precum SSL (Secure Sockets Layer), TLS (Transport Layer
Security) și SSH (Secure Shell) care sunt implementate pe nivelele superioare ale
stivei TCP/IP o aplicație nu trebuie proiectată în mod special pentru a folosi IPsec.

1.2 Scurt istoric


IPsec a fost dezvoltat inițial de Naval Research Laboratory ca parte a proiectului de
cercetare DARPA.
Astfel ESP (Encapsulating Security Payload) a derivat din protocolul SP3D a cărui
descriere a fost publicată de NIST dar proiectată de către NSA (National Security
Agency) iar AH (Authentication Header) a fost inițial o parte a standardului IETF
pentru autentificare SNMP ( Simple Network Mangement Protocol).
IPsec este descris oficial de către IETF (Internet Engineering Task Force) într-
o se-rie de documente RFC. Tot aici se specifică și denumirea protocolului ca fiind
IPsec.
2 Arhitectura de securitate
2.1 Authentication Header (AH)
Această componentă garantează integritatea și autenticitatea pachetelor IP.
În plus poate fi utilizată pentru a proteja împotriva atacurilor replay prin folosirea
tehnicii sliding window și distrugerea pachetelor vechi.
─ În IPv4 AH protejează IP payload-ul și toate câmpurile antetului unei
datagrame IP cu excepția câmpurilor variabile(DSCP/TOS, ECN, Flag-uri, Fragment
Offset, TTL și Header Checksum) și a opțiunilor IP precum IP Security Option.
─ În IPv6 AH protejează cea mai mare parte a antetului de bază, pe sine,
extensiile nevariabile de după AH și IP payload-ul mai puțin câmpurile variabile
(DSCP, ECN, Flow Label și Hop Limit).
Diagrama generală a unui pachet AH arată în felul următor:

Antetul următor (8 biți)


Specifică tipul antetului următor, indicând ce protocol de pe nivelul superior a fost
protejat.
Lungimea Conținutului (Payload Len) (8 biți)
Lungimea acestui Antet de Autentificare în unități de 4 octeți minus 2 (0 înseamnă 8
octeți, 1 înseamnă 12 octeți, etc.). Pentru pachetele IPv6, lungimea acestui antet tre-
buie să fie multiplu de 8 octeți.
Rezervat (16 biți)
Câmp rezervat pentru a fi utilizat ulterior (are valoarea 0).
Index Parametri de Securitate (IPS) (32 biți)
Valoarea arbitrară utilizată (alături de adresa destinație) pentru a identifica asocierea
de securitatea a receptorului.
Număr de ordine (32 biți)
Secvență de numere strict crescătoare utilizată pentru prevenirea atacurilor replay.
Integrity Check Value (multiple of 32 biți)
Valoare variabilă pentru asigurarea lungimii antetului. Poate conține paddare pentru
a respecta restricția de multiplu de 8 octeți pentru IPv6 sau cea de 4 octeți pentru
IPv4.

AH și NAT
Deși AH asigură o protecție foarte bună a conținutului pachetului este incompatibi-lă
cu NAT (Network Address Translation).
NAT este folosit pentru a mapa o serie de adrese private (de exemplu 192.168.1.X)
în și din un set mai restrâns de adrese publice reducând astfel nevoia de spațiu IP
routabil, public. În acest proces antetul IP este modificat de dispozitivul NAT pentru a
schimba adresa IP sursa/destinație. Acest lucru determină recalcularea ICV și orice
modificare va duce la imposibilitatea autentificării de către recipient deoarece
calculul ICV presupune folosirea unei chei secrete care nu este cunoscută de
intermediari și deci router-ul NAT nu poate recalcula ICV-ul.
Aceeași problemă apare și în cazul PAT (Port Address Translation), care mapează
mai multe adrese IP private într-o singură adresă externă.
Din acest motiv, AH (fie în tipul tunel, fie în tipul transport) este complet incom-patibil
cu NAT și poate fi folosit doar când rețelele sursă și destinație sunt accesibile fără
interpretare.
Acest lucru nu se aplică și în cazul ESP deoarece autentificarea și criptarea nu in-
corporează și antetul IP modificat de NAT.

2.2 Encapsulating Security Payload (ESP)


Această componentă asigură autenticitatea, integritatea și confidențialitatea pache-
telor. ESP suportă și configurații fie doar criptare, fie doar autentificare dar nu este
recomandat.
Spre deosebire de Antetul de Autentificare, ESP nu asigură integritatea și autentici-
tatea întregului pachet în tipul transport (spre deosebire de tipul tunel unde întregul
pachet este încapsulat si un nou antet este adăugat).

Diagrama generală a unui pachet AH arată în felul următor:


Index Parametri de Securitate (IPS) (32 biți)
Valoarea arbitrară utilizată (alături de adresa destinație) pentru a identifica asocierea
de securitatea a receptorului.
Număr de ordine (32 biți)
Secvență de numere strict crescătoare utilizată pentru prevenirea atacurilor replay.
Integrity Check Value (multiple of 32 biți)
Valoare variabilă pentru asigurarea lungimii antetului. Poate conține paddare pentru
a respecta restricția de multiplu de 8 octeți pentru IPv6 sau cea de 4 octeți pentru
IPv4.
Payload Data (Conținut)
Conținutul protejat al pachetului IP original inclusiv datele folosite la protejarea con-
ținutului (de exemplu vectori de inițializare pentru algoritmul de criptare). Tipul con-
ținutului este indicat e câmpul Antetul următor.
Paddare (0 – 255 octeți )
Paddarea pentru criptare pentru a extinde dimensiunea conținutului la lungimea
nece-sară pentru algoritmul de criptare.
Lungimea paddării (8 biți)
Lungimea paddării în octeți.
Antetul următor (8 biți)
Specifică tipul antetului următor.

2.3 Asocierea de securitate (AS)


Arhitectura de securitate IP folosește conceptul de asociere de securitate ca baza
construirii funcțiilor de securitate în IP. De fapt nu este altceva decât un set de algo-
ritmi și parametri (ca de exemplu cheile) care este folosit pentru a cripta și autentifica
un flux într-o anumită direcție. De aceea într-un trafic bidirecțional fluxurile sunt
securizate de o pereche de asocieri de securitate. Acestea sunt stabilite folosind
ISAKMP (Internet Security Internet Security Association and Key Management Pro-
tocol) care este la rândul lui implementat prin configurarea manuală cu pre-shared
secrets, , Internet Key Exchange (IKE și IKEv2), Kerberized Internet Negotiation of
Keys (KINK), și folosirea IPSECKEY DNS .
Pentru a decide tipul de protecție pentru un pachet, IPsec folosește Security
Parameter Index (SPI) alături de adresa destinație într-un antet , care identifică
împre-ună în mod unic o asociere de securitate pentru acel pachet. În mod similar se
proce-dează și pentru pachetele primite.
Metode de autentificare
Autentificarea se poate realiza prin trei metode în momentul negocierii parametri-lor
asocierii de securitate:
 PSK - Pre-Shared Key : cheile secrete sunt pre-configurate și în momentul
nego-cierii IKE sunt trimise pe rețea și verificate de entitățile omoloage.
 PKI - Public Key Infrastructure: implică existența unei autorități de încredere
care stabilește un certificat digital pentru fiecare entitate. În momentul
negocierii fiecare entitate își trimite certificatul celorlalte pentru validare.
 EAP - Extensible Authentication Protocol: este un framework care oferă o
schemă de mesaje de autentificare precum MD5, GTC, TLS, SIM, AKA și
este fo-losit ca extensie a protocolului IKEv2, nefiind suportat de IKEv1.

Protocoale de negociere a cheii


Dacă negocierea nu se realizează manual atunci se utilizează negocierea IKE intr-
una din cele două versiuni: protocolul IKEv1 sau IKEv2 (cele două protocoale nu
sunt compatibile unul cu celălalt).
IKEv1
Este alcătuit din două faze Phase1 (autentifică entitățile, stabilește asocierea de se-
curitate și derivă cheile Diffie-Hellman) și Phase2 (quick mode). Phase1 este
împărți-tă în două moduri: main mode și aggresive mode.
3 Tipuri de încapsulare
3.1 Încapsulare de tip tunel
Pachetul încapsulat va avea un set de adrese exterioare (adresele IP ale entităților
gateway) ți un ste de adrese interioare sau protejate (adresele subrețelelor din
spatele acestor gateway-uri)
După tipul entității participante putem avea următoarea clasificare:
 Site – to –site
Atunci când entitățile sunt gateway-uri de securitate care realizează operații cripto-
grafice pentru subrețele protejate aflate în administrarea lor.
 Remote Access
Atunci când entitățile sunt un gateway de securitate care are în administrare o sub-
rețea și un calculator independent. Acest scenario se mai numește și Dial-up VPN.

3.2 Încapsulare de tip transport


Pachetul încapsulat va avea un singur set de adrese IP, publice, al calculatoarelor
independente ce doresc să comunice și care au instalat un soft specializat IPsec.
A fost definită o modalitate de încapsulare a mesajelor IPsec astfel încât ele să poa-
tă trece prin transformări NAT numită mecanism NAT-T.

4 Algoritmi criptografici
Algoritmii criptografici folosiți de IPsec sunt HMAC-SHA1 pentru integrita-te,protecție
și autenticitate și 3DES – CBC sau AES-CBC pentru confidențialitate.

5 Implementări
5.1 Windows
În Windows7, Windows Server 2008 R2, Windows Vista și Windows Server 2008
este posibilă configurarea compportamentului IPsec utilizând Windows Firewall with
Advanced Security.
În versiunile anterioare, IPsec era o tehnologie separată de Windows Firewall.
Tehnologia IPsec poate fi utilizată pentru a bloca worms, pentru a proteja servere
sau pentru izolarea domeniilor.
Să luăm de exemplu worm-ul „Slammer”. Slammer atacă computere care rulează pe
SQL Server sau MSDE și prin urmare urmărește portul 1434. O metodă de a pre-
veni migrarea acestuia este asignarea unei politici care blochează traficul de oriunde
spre adresa IP proprie a computer-ului cu portul destinație 1434/UDP. În Windows
2000 puteai realiza acest lucru printr-un script folosind ipsecpol.exe astfel:
ipsecpol -w REG -p "Block UDP 1434 Filter" -r "Block In-bound UDP 1434 Rule" -f
*=0:1434:UDP -n BLOCK –x
5.2 Linux
Pentru versiunile Linux 2.2 și 2.4 exista FreeS/WAN (alternativ Openswan care es-te
o implementare open source a IPsec în Linux și este o continuare a FreeS/WAN) iar
incepând cu 2.4.47 Linux are o implementare a IPsec în Kernel.
Configurarea IPsec VPN pentru Kernel 2.6 se xemplu se poate realiza folosind
KAME tools setkey și racoon.

Bibliografie
[1] http://en.wikipedia.org/wiki/IPsec
[2] http://ro.wikipedia.org/wiki/IPsec
[3] http://www.unixwiz.net/techtips/iguide-ipsec.html
[4] http://technet.microsoft.com/en-us/library/cc512574.aspx#ECAA
[5] http://www.ipsec-howto.org/x304.html
[6] http://www.freebsd.org/doc/en/books/handbook/ipsec.html

You might also like