Sunteți pe pagina 1din 6

IPSec

Ce e IPsec?

IPsec e o extensie a protocolului IP care furnizeaza securitatea IP-ului si a


protocoalelor nivelelor superioare. Prima oara a fost dezvoltat pentru noul
standard IPv6 si apoi adaptat la IPv4. Arhitectura IPsec-ului e descrisa in
RFC2401. Urmatoarele paragrafe ofera o scurta introducere in IPsec.

IPsec foloseste 2 protocoale diferite – AH si ESP – pentru a asigura


autenticitatea, integritatea si confidentialitatea comunicarii. Poate proteja fie
intreaga datagrama a IP-ului sau numai protocoalele nivelelor superioare.
Modurile cele mai convenabile/potrivite sunt: modul tunel (tunnel mode) si modul
transport (transport mode). In modul tunel, datagrama IP e toata incapsulata de o
noua datagrama IP folosind protocolul IPsec. In modul transport doar incarcatura
utila(payload-ul) datagramei IP e condus de protocolul IPsec inserand header-ul
IPsec intre header-ul IP si header-ul protocolului superior (vezi Figura 1).

modul transport

IP AH TCP Data

pachet original

(original packet) IP TCP Data

modul tunel
IP AH IP TCP Data

noul IP header

Figura 1. IPsec tunnel mode si IPsec transport mode


Pentru a proteja integritatea datagramelor IP, protocoalele IPsec folosesc
coduri de autenticitate HMAC (hash message authentication codes). Pentru a
capata acest HMAC, protocoalele IPsec folosesc algoritmi hash ca MD5 si SHA
pentru a calcula un hash bazat pe o cheie secreta si pe continuturile datagramei
IP. Acest HMAC e apoi inclus in header-ul protocolului IPsec si receptorul
pachetului poate contola/accesa HMAC-ul daca are acces la cheia secreta.

Pentru a proteja confidentialitatea datagramelor IP, protocoalele IPsec


folosesc algoritmi standard simetrici de encriptare. Standardul IPsec necesita
implementarea NULL si DES. Acum, de obicei, algoritmii puternici sunt folositi ca
3DES, AES si Blowfish.

Pentru a proteja, impotriva respingerii atacurilor, protocoalele folosesc o


fereastra alunecatoare (sliding window). Fiecarui pachet i se stabileste un numar
de secventa si e acceptat doar daca numarul pachetului e in cadrul ferestrei sau
in apropiere. Pachetele mai vechi sunt imediat indepartate. Aceasta protejeaza
impotriva atacurilor cu raspuns unde atacatorul inregistreaza pachetele originale
si le raspunde mai tarziu.

Pentru ca partenerii sa fie capabili sa incapsuleze si decapsuleze


pachetele IPsec au nevoie de un mod de a pastra cheile secrete, algoritmii si
adresele IP implicate in comunicare. Toti acesti parametri necesari pentru
protectia datagramelor IP sunt stocate/salvate intr-o asociatie de securitate SA
(security association). SA sunt depozitate intr-o baza de date SA (SAD).

Fiecare SA defineste urmatorii parametrii:

• Sursa si destinatia adresei IP a header-ului IPsec rezultat.

• Protocolul IPsec (AH sau ESP), cateodata comprimarea (IPCOMP) e


suportata de asemenea.

• Algoritmul si cheia secreta folosite de protocolul IPsec.

• Parametrul index de securitate (Security Parameter Index – SPI). Acesta e


un numar pe 32 de biti care identifica SA.

Cateva implementari ale bazei de date SA permit parametrilor suplimentari sa


fie stocati/salvati:

• Modul IPsec (tunel sau transport)

• Marimea ferestrei alunecatoare(sliding window) pentru a proteja


impotriva atacurilor cu raspuns (replay attacks)
• Timpul de viata a SA

De cand SA defineste sursa si destinatia adreselor IP, poate proteja doar


intr-o directie a traficului intr-o comunicare IPsec duplex intreaga. Pentru a
proteja in ambele directii IPsec necesita 2 SA unidirectionale.

SA doar specifica cum IPsec trebuie sa protejeze traficul. Informatia


aditionala e necesara sa defineasca care trafic sa protejeze si cand. Aceasta
informatie e stocata/salvata in politica de asigurare SP (security policy) care in
schimb e salvata intr-o baza de date cu politici de asigurare SPD (security policy
database).

De obicei, un SP specifica urmatorii parametrii:

• Sursa si destinatia adreselor pachetelor care necesita sa fie protejate. In


modul transport acestea sunt aceleasi adrese ca la SA. In modul tunel ele
pot sa difere!

• Protocolul (si portul) care trebuie protejat. Unele implementari IPsec nu


permit definitia protocoalelor precise pentru protectie. In acest caz tot
traficul intre adresele IP mentionate e protejat.

• SA este folosit pentru protectia pachetelor.

Legatura/conectarea manuala a SA e o eroare complet predispusa si nu


prea sigura. Cheia secreta si algoritmii encriptati trebuie sa fie impartiti intre toti
participantii in reteaua virtuala privata (virtual private network). In special
schimbul cheilor ridica probleme critice pentru administratorul sistemului: Cum sa
schimbi chei simetrice secrete cand nici o modalitate de encriptare nu e inca
stabilita?

Pentru a rezolva aceasta problema s-a dezvoltat protocolulul de schimbat


chei IKE (internet key exchange protocol). Acest protocol autentifia participantii
in prima faza. In a doua faza SA negociaza si cheile secrete simetrice sunt alese
folosind un schimb de chei Diffie Hellmann. Apoi protocolul IKE chiar are grija sa
redefineasca cheile secrete pentru a le asigura confidentialitatea.

Protocoalele IPsec

Familia protocoalelor IPsec consta in 2 protocoale: header de autentificare


AH (Authentication Header) si incarcatura utila de securitate incapsulat ESP
(Encapsulated Security Payload). Ambele sunt protocoale IP independente. AH e
protocolul IP 51 si ESP e protocolul IP 50. Urmatoarele 2 sectiuni vor acoperi pe
scurt proprietatiile lor.
AH – Authentication Header

Protocolul AH protejeaza integritatea datagramei IP. Pentru a reusi


aceasta, protocolul AH calculeaza un HMAC pentru a-i proteja integritatea. Cand
se calculeaza HMAC, protocolul AH se bazeaza pe o cheie straina, incarcatura
utila a pachetului si partile permanente a header-ului IP ca adrese IP. Atunci se
adauga header-ul AH la pachet.

Header-ul AH e prezentat in Figura 2.

Header-ul Lungimea Necomunicativ

urmator incarcaturii utile (rezervat)

SPI – Security Parameter Index

Sequence Number (Replay Defense)

Hash Message Authentication Code

Figura 2. Header-ul AH protejeaza integritatea pachetului

Header-ul AH are o lungime de 24 bytes. Primul byte e campul Header-


ului urmatorAcest camp specifica protocolul urmatorului header. In modul tunel o
datagrama IP e incapsulata; de aceea valoarea acestui camp e 4. Cand se
incapsuleaza o datagrama TCP, in modul transport, valoarea corespunzatoare e
6. Urmatorul byte specifica lungimea incarcaturii utile. Acest camp e urmat de 2
bytes necomunicativi (rezervati). Urmatorul cuvant double mentioneaza lungimea
32 bit indexul parametrului de securitate SPI (Security Parameter Index). SPI
specifica pentru decapsularea pachetului sa se foloseasca SA. Secventa de 32
biti protejeaza impotriva atacurilor cu raspuns. In cele din urma bitul 96 retine
HMAC. Acest HMAC protejeaza integritatea pachetelor din moment ce doar
partenerii care stiu cheia secreta pot crea si verifica HMAC-ul.

De cand protocolul AH protejeaza datagrama IP incluzand parti


permanente a header-ului IP cum IP-ul se adreseaza, protocolul AH nu permite
translatarea adreselor de retea NAT (Network address translation). NAT
inlocuieste o adresa IP in header-ul IP (de obicei sursa IP) de o adresa IP
diferita. Dupa schimb HMAC nu mai e valid. NAT – extensia de traversare a
protocolului IPsec implementeaza cai in jurul restrictiei.
ESP - Encapsulated Security Payload

Protocolul ESP poate asigura integritatea pachetului folosind un HMAC


dar si confidentialitatea folosind encriptari. Dupa incriptarea pachetului si
calcularea HMAC-ului, e generat header-ul ESP si adaugat la pachet.

Header-ul ESP e alcatuit din 2 parti si e prezentat in Figura 3.

Indexul parametrului de securitate (SPI)

Numarul de secventa (Replay Defense)

Initializarea vectorului (IV)

Data

Lungimea Header-ul
Padding-ului urmator
Padding
Hash Message Authenication Code

Figura 3. Header-ul ESP

Primul cuvant double din header-ul ESP specifica indexul parametrului de


securitate SPI (Security Parameter Index). SPI specifica sa foloseasca SA pentru
decapsularea pachetului ESP. Al 2-lea cuvant double specifica numarul de
secventa. Numarul de secventa e folosit pentru a proteja impotriva atacurilor cu
raspuns. Al 3-lea cuvant double specifica initializarea vectorului IV (Initialization
Vector) care e folosit pentru procesul de encriptare. Algoritmii simetrici de
encriptare sunt sensibili la un atac frecvent daca nu e folosit nici un IV. IV-ul
asigura ca doua incarcaturi utile identice duc la incarcaturi utile encriptate diferit.

IPsec foloseste cifru de blocare pentru procesul de encriptare. De aceea


incarcaturile utile pot avea nevoie sa fie captusite daca lungimea incarcaturii utile
nu e un multiplu/varianta a lungimii obstacolului. Lungimea “captuselii” e apoi
adaugata. Urmarind lungimea captuselii campul header-ului urmator lung de 2
bytes specifica header-ul urmator. In cele din urma HMAC, lung de 96 biti, e
adaugat la header-ul ESP asigurand integritatea pachetului. HMAC-ul ia in
considerare doar incarcatura utila a pachetului.

Folosirea lui NAT nu strica protocolul ESP. Totusi, in cele mai multe
cazuri, NAT nu e posibil in combinatie cu IPsec. NAT-Traversal ofera o solutie in
acest caz prin incapsularea pachetelor ESP inauntrul pachetelor UDP.

S-ar putea să vă placă și