Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Virtual Private Network (VPN)

retele calculatoare



+ Font mai mare | - Font mai mic



Virtual Private Network (VPN)

Introducere

Voi prezenta in aceasta lucrare metode implementabile in practica de realizare a asa numitelor Retele Virtuale Private (Virtual Private Networks), pe scurt VPN si, de asemenea, chestiuni teoretice, de amanunt, ale tehnologiilor folosite.



In pofida numelui, nu e nimic virtual in aceste solutii, ele sunt solutii reale. Cuvantul virtual se refera la faptul ca nu se construiesc retele noi pentru transportul datelor, ci se formeaza pe suportul deja disponibil, pe stiva de protocoale IP ce formeaza Internetul. Doar ca din punct de vedere logic, se formeaza retele independente, ale caror noduri sunt strict definite.

Astfel, un PC din Bucuresti, unul din Paris si unul din New York, care, fiind conectate la internet, adica avand fiecare un IP public (rutabil), pot forma o retea virtuala in care datele schimbate de ele, sunt indescifrabile pentru restul lumii. Mai exact, chiar daca am avea controlul unui router prin care trec pachetele de date intre 2 din calculatoarele membre ale retelei virtuale, interceptandu-le nu intelegem absolut nimic.

Ca exemplu practic, imaginati-va o companie multinationala cu un sediu central in Bruxel si cu reprezentante in Los Angeles si mai multe tari din Europa. Cum si-ar putea organiza activitatea aceasta companie? Pana nu demult erau cateva variante: posta clasica, fax, e-mail. Nevoia de comunicare a crescut foarte mult in ultimul timp insa, aceste solutii devenind insuficiente.

Astazi, se folosesc solutii complexe gen ERP (Enterprise Resource Planning) sau CRM (Customer Relationship Management). Aceste solutii au urmatoarea structura simplificata: o baza de date, o aplicatie care lucreaza cu baza de date si utilizatori (clienti) care sunt partea finala a acestui lant (Figura 1). Nici o problema atunci cand toate partile se afla in aceeasi retea locala, separata de internet, nefiind posibila scurgerea de date. Daca, insa, analizam cazul de mai sus, al companiei cu sediul central in Bruxel si cu reprezentante in Los Angeles si mai multe tari din Europa, situatia se complica. Am vrea ca utilizatori din reprezentantele firmei sa poata comunica cu baza de date centralizata care se gaseste la sediul central. Datele care se transfera sunt confidentiale si este inacceptabil ca persoane din afara organizatiei sa poata avea acces la ele. Am avea, asadar, nevoie de canale de comunicatie dedicate la care sa aiba acces numai filialele companiei. Exista astfel de canale, asa numitele linii inchiriate, oferite de obicei de operatorii de telefonie. Problema acestor linii inchiriate este ca sunt scumpe si, mai mult, nu sunt flexibile. Ba chiar, la un moment dat, ar putea exista teama ca datele sunt receptionate de catre operatorul de telefonie. Si aici ne punem intrebarea: nu am putea sa folosim canale deja existente, cum ar fi legatura internet deja prezenta pentru a transmite aceste date, dar intr-un mod securizat? Ba da, am putea! Creem la sediul central al companiei un punct de acces, adica un server configurat in asa fel incat sa accepte conexiuni doar de la filialele firmei (autentificare) si sa cripteze continutul datelor transmise (criptare).

Exista doua tipuri mai importante de protocoale pentru VPN: PPTP si IPsec.

PPTP (Point to Point Tunnelling Protocol) a fost folosit indeosebi de Microsoft. Avea la baza urmatorul procedeu: se facea un handshake pe TCP port 1723 si, dupa o autentificare corecta se trecea la encapsularea pachetelor in protocolul GRE (numarul 47). Sunt probleme insa cu protocolul GRE, deoarece majoritatea gateway‑urilor care fac NAT nu "stiu" sa translateze si acest protocol (stiu doar UDP si TCP).

IPsec in schimb, poate fi folosit si in situatii cand este implicat NAT‑ul, folosindu‑se pentru encapsulare protocoalele UDP sau TCP (Cisco foloseste, de obicei TCP portul 10000).

Figura

Inchei aceasta introducere prin a mentiona ca pe parcursul lucrarii voi folosi termeni specifici IPsec in forma lor nativa din limba engleza, evitand astfel confuzii de termeni si licente de traducere.

IPsec - comunicatii securizate la nivel IP

2.1. Ce este IPsec?

Internet Protocol Security (IPsec) este o colectie de standarde care contribuie la asigurarea comunicatiilor sigure din punct de vedere autentificare si criptare pentru retele de tip Internet Protocol (IP). IPsec suporta integritatea, confidentialitatea, autentificarea originii si replay protection.

IPsec ofera servicii de criptare si autentificare la nivelul IP din modelul TCP/IP al stivei de protocoale. Lucrand la acest nivel, poate proteja orice tip de trafic transportat peste IP, spre deosebire de alte metode de criptare care, in general, protejeaza doar un protocol de nivel mai inalt: PGP pentru e-mail, SSH pentru remote login, SSL pentru web si asa mai departe.

IPsec poate fi folosit pe orice masina care are instalat protocolul IP. Gateway-uri dedicate IPsec pot fi instalate oriunde este nevoie pentru a proteja traficul. IPsec poate, de asemenea, rula pe routere, pe firewall-uri, pe diferite servere de aplicatii, ca si pe statii de lucru ale utilizatorului final sau laptopuri.

Sunt folosite trei protocoale pentru IPsec: ESP (Encapsulating Security Payload), optional AH (Authentication Header) si IKE (Internet Key Exchange).

2.2. Avantaje / Dezavantaje

Avantajele criptarii direct de la nivelul IP sunt numeroase. IPsec este "cel mai general mod" de a oferi servicii de securitate pentru Internet.

Protocoalele de nivel mai inalt protejeaza un singur protocol, de exemplu PGP protejeaza doar e‑mailul.

Serviciile de securitate de nivel mai jos (hardware de obicei) protejeaza un singur mediu de transmitere a datelor; de exemplu o pereche de cutii de criptare la capetele unei linii fac inutil ascultarile de linie daca cel care asculta nu poate sa sparga algoritmul de criptare.

IPsec, in schimb, poate proteja orice protocol mai sus de IP si orice mediu peste care functioneaza IP. Mai exact, poate proteja o mixtura de protocoale de aplicatie care ruleaza peste o combinatie complexa de medii. Aceasta este si cazul internetului. IPsec este singura solutie generala.

IPsec poate, de asemenea, sa ofere anumite servicii in background, fara ca utilizatorii sa constientizeze acest lucru. Pentru a folosi PGP si semnaturi pentru e-mail, de exemplu, utilizatorul trebuie cel putin sa: memoreze o parola, sa o tina sigura, sa urmareasca proceduri pentru a valida cheile corespondentilor.

Sistemul poate fi proiectat astfel incat sarcina ce cade in seama utilizatorilor sa fie cat mai mica.

IPsec e construit pentru a securiza legaturi IP intre masini. O face foarte bine, dar e important de tinut minte ca sunt multe lucruri pe care nu le face. Cele mai importante limitari sunt:

IPsec nu poate fi sigur daca sistemul pe care e instalat nu e sigur;

IPsec nu este end-to-end

Autentifica masini, nu utilizatori

Nu opreste atacuri tip Denial of Service

Nu opreste analizoarele de trafic (se pot trage anumite concluzii chiar daca nu se pot decripta pachetele, cum ar fi adresa gateway sursa si destinatie, dimensiunea pachetelor).

Avantajul principal al IPsec este ca ofera protectie la tot ce este trimis prin protocolul IP. IPsec creeaza tunele securizate prin retele nesigure. Locatiile conectate prin aceste tunele formeaza VPN-uri (Virtual Private Networks).

2.3. Aplicatii ale IPsec

Pentru ca IPsec opereaza la nivelul Network, sau Internet, in modelul TCP/IP, este foarte flexibil si poate fi folosit pentru a securiza aproape orice fel de trafic. Doua aplicatii, totusi, sunt extrem de raspandite:

  • Retele Private Virtuale, sau VPN, aplicatie care permite mai multor locatii sa comunice in mod securizat peste un mediu nesigur cum este Internetul, criptand toata comunicatia dintre locatii
  • Utilizatori mobili care se conecteaza la reteaua corporatiei de acasa sau de la un hotel etc.

IPsec este inclus in routere, in produse tip firewall si in majoritatea sistemelor de operare, in principal pentru a suporta aceste aplicatii.

Un VPN permite ca doua retele sa comunice in siguranta, atunci cand singura conexiune dintre ele este o a treia retea, care insa nu poate fi considerata sigura din punct de vedere al confidentialitatii datelor. Solutia VPN consta in plasarea a cate unui nod (gateway) securizat intre retelele care doresc sa comunice si reteaua nesigura (internetul). Gateway-urile cripteaza pachetele care intra in reteaua nesigura si le decripteaza pe cele care ies, creand un tunel privat prin reteaua nesigura.

Daca criptografia este puternica, implementarea este atenta, si administrarea nodurilor tip gateway e competenta, atunci se poate avea incredere in securitatea tunelului. Cele doua retele, apoi, se comporta ca o singura retea privata, mai mare, care are unele din legaturi ca tunele criptate printr‑o retea nesigura. VPN-urile reale sunt, adeseori, mai complexe. O organizatie poate avea, la un moment dat, 50 de filiale, plus cativa parteneri si clienti, cu care trebuie sa comunice date confidentiale. O alta organizatie ar putea sa aiba 5000 de magazine, sau 50000 de puncte de vanzare. Reteaua nesigura nu trebuie neaparat sa fie Internetul. Aceleasi probleme se ivesc intr‑o retea de corporatie sau institutionala atunci cand doua departamente vor sa comunice privat intre ele.

Din punct de vedere administrativ, simplitatea majoritatii VPN‑urilor este ca parti mari ale lor sunt statice, adica se cunoaste adresa IP a majoritatii nodurilor implicate. Mai important, se stie ca acestea nu se vor schimba. Acest lucru simplifica mult munca de administrare.

Asa numitul Road Warrior este un utilizator mobil care se conecteaza la un server de obicei de pe un laptop, pentru a avea acces securizat la resursele din spatele acelui server.

2.4. Protocoalele ESP si AH

In versiunea 4 a Protocolului Internet (IPv4), exista un camp de 8 biti numit "Protocol", care identifica protocolul de nivel urmator. Lista completa a protocoalelor este urmatoarea:

0 HOPOPT IPv6 Hop-by-Hop Option [RFC1883]
1 ICMP Internet Control Message [RFC792]
2 IGMP Internet Group Management [RFC1112]
3 GGP Gateway-to-Gateway [RFC823]
4 IP IP in IP (encapsulation) [RFC2003]
5 ST Stream [RFC1190,RFC1819]
6 TCP Transmission Control [RFC793]
7 CBT CBT [Ballardie]
8 EGP Exterior Gateway Protocol [RFC888,DLM1]
9 IGP any private interior gateway [IANA]
(used by Cisco for their IGRP)
10 BBN-RCC-MON BBN RCC Monitoring [SGC]
11 NVP-II Network Voice Protocol [RFC741,SC3]
12 PUP PUP [PUP,XEROX]
13 ARGUS ARGUS [RWS4]
14 EMCON EMCON [BN7]
15 XNET Cross Net Debugger [IEN158,JFH2]
16 CHAOS Chaos [NC3]
17 UDP User Datagram [RFC768,JBP]
18 MUX Multiplexing [IEN90,JBP]
19 DCN-MEAS DCN Measurement Subsystems [DLM1]
20 HMP Host Monitoring [RFC869,RH6]
21 PRM Packet Radio Measurement [ZSU]
22 XNS-IDP XEROX NS IDP [ETHERNET,XEROX]
23 TRUNK-1 Trunk-1 [BWB6]
24 TRUNK-2 Trunk-2 [BWB6]
25 LEAF-1 Leaf-1 [BWB6]
26 LEAF-2 Leaf-2 [BWB6]
27 RDP Reliable Data Protocol [RFC908,RH6]
28 IRTP Internet Reliable Transaction [RFC938,TXM]
29 ISO-TP4 ISO Transport Protocol Class 4 [RFC905,RC77]
30 NETBLT Bulk Data Transfer Protocol [RFC969,DDC1]
31 MFE-NSP MFE Network Services Protocol [MFENET,BCH2]
32 MERIT-INP MERIT Internodal Protocol [HWB]
33 SEP Sequential Exchange Protocol [JC120]
34 3PC Third Party Connect Protocol [SAF3]
35 IDPR Inter-Domain Policy Routing Protocol [MXS1]
36 XTP XTP [GXC]
37 DDP Datagram Delivery Protocol [WXC]
38 IDPR-CMTP IDPR Control Message Transport Proto [MXS1]
39 TP++ TP++ Transport Protocol [DXF]
40 IL IL Transport Protocol [Presotto]
41 IPv6 Ipv6 [Deering]
42 SDRP Source Demand Routing Protocol [DXE1]
43 IPv6-Route Routing Header for IPv6 [Deering]
44 IPv6-Frag Fragment Header for IPv6 [Deering]
45 IDRP Inter-Domain Routing Protocol [Sue Hares]
46 RSVP Reservation Protocol [Bob Braden]
47 GRE General Routing Encapsulation [Tony Li]
48 MHRP Mobile Host Routing Protocol[David Johnson]
49 BNA BNA [Gary Salamon]
50 ESP Encap Security Payload for IPv6 [RFC2406]
51 AH Authentication Header for IPv6 [RFC2402]
52 I-NLSP Integrated Net Layer Security TUBA [GLENN]
53 SWIPE IP with Encryption [JI6]
54 NARP NBMA Address Resolution Protocol [RFC1735]
55 MOBILE IP Mobility [Perkins]
56 TLSP Transport Layer Security Protocol [Oberg]
using Kryptonet key management
57 SKIP SKIP [Markson]
58 IPv6-ICMP ICMP for IPv6 [RFC1883]
59 IPv6-NoNxt No Next Header for IPv6 [RFC1883]
60 IPv6-Opts Destination Options for IPv6 [RFC1883]
61 any host internal protocol [IANA]
62 CFTP CFTP [CFTP,HCF2]
63 any local network [IANA]
64 SAT-EXPAK SATNET and Backroom EXPAK [SHB]
65 KRYPTOLAN Kryptolan [PXL1]
66 RVD MIT Remote Virtual Disk Protocol [MBG]
67 IPPC Internet Pluribus Packet Core [SHB]
68 any distributed file system [IANA]
69 SAT-MON SATNET Monitoring [SHB]
70 VISA VISA Protocol [GXT1]
71 IPCV Internet Packet Core Utility [SHB]
72 CPNX Computer Protocol Network Executive [DXM2]
73 CPHB Computer Protocol Heart Beat [DXM2]
74 WSN Wang Span Network [VXD]
75 PVP Packet Video Protocol [SC3]
76 BR-SAT-MON Backroom SATNET Monitoring [SHB]
77 SUN-ND SUN ND PROTOCOL-Temporary [WM3]
78 WB-MON WIDEBAND Monitoring [SHB]
79 WB-EXPAK WIDEBAND EXPAK [SHB]
80 ISO-IP ISO Internet Protocol [MTR]
81 VMTP VMTP [DRC3]
82 SECURE-VMTP SECURE-VMTP [DRC3]
83 VINES VINES [BXH]
84 TTP TTP [JXS]
85 NSFNET-IGP NSFNET-IGP [HWB]
86 DGP Dissimilar Gateway Protocol [DGP,ML109]
87 TCF TCF [GAL5]
88 EIGRP EIGRP [CISCO,GXS]
89 OSPFIGP OSPFIGP [RFC1583,JTM4]
90 Sprite-RPC Sprite RPC Protocol [SPRITE,BXW]
91 LARP Locus Address Resolution Protocol [BXH]
92 MTP Multicast Transport Protocol [SXA]
93 AX.25 AX.25 Frames [BK29]
94 IPIP IP-within-IP Encapsulation Protocol [JI6]
95 MICP Mobile Internetworking Control Pro. [JI6]
96 SCC-SP Semaphore Communications Sec. Pro. [HXH]
97 ETHERIP Ethernet-within-IP Encapsulation [RFC3378]
98 ENCAP Encapsulation Header [RFC1241,RXB3]
99 any private encryption scheme [IANA]
100 GMTP GMTP [RXB5]
101 IFMP Ipsilon Flow Management Protocol [Hinden]
102 PNNI PNNI over IP [Callon]
103 PIM Protocol Independent Multicast [Farinacci]
104 ARIS ARIS [Feldman]
105 SCPS SCPS [Durst]
106 QNX QNX [Hunter]
107 A/N Active Networks [Braden]
108 IPComp IP Payload Compression Protocol [RFC2393]
109 SNP Sitara Networks Protocol [Sridhar]
110 Compaq-Peer Compaq Peer Protocol [Volpe]
111 IPX-in-IP IPX in IP [Lee]
112 VRRP Virtual Router Redundancy Protocol [RFC3768]
113 PGM PGM Reliable Transport Protocol [Speakman]
114 any 0-hop protocol [IANA]
115 L2TP Layer Two Tunneling Protocol [Aboba]
116 DDX D-II Data Exchange (DDX) [Worley]
117 IATP Interactive Agent Transfer Protocol [Murphy]
118 STP Schedule Transfer Protocol [JMP]
119 SRP SpectraLink Radio Protocol [Hamilton]
120 UTI UTI [Lothberg]
121 SMP Simple Message Protocol [Ekblad]
122 SM SM [Crowcroft]
123 PTP Performance Transparency Protocol [Welzl]
124 ISIS over IPv4 [Przygienda]
125 FIRE [Partridge]
126 CRTP Combat Radio Transport Protocol [Sautter]
127 CRUDP Combat Radio User Datagram [Sautter]
128 SSCOPMCE [Waber]
129 IPLT [Hollbach]
130 SPS Secure Packet Shield [McIntosh]
131 PIPE Private IP Encapsulation within IP [Petri]
132 SCTP Stream Control Transmission Protocol [Stewart]
133 FC Fibre Channel [Rajagopal]
134 RSVP-E2E-IGNORE [RFC3175]
135 Mobility Header [RFC3775]
136 UDPLite [RFC-ietf-tsvwg-udp-lite-02.txt]
137-252 Unassigned [IANA]
253 Use for experimentation and testing [RFC3692]
254 Use for experimentation and testing [RFC3692]
255 Reserved [IANA]

Majoritatea serviciilor de securitate sunt oferite prin folosirea a doua protocoale de securizare a traficului, Authentication Header (AH) si Encapsulating Security Payload (ESP), si prin folosirea unor proceduri si protocoale de management criptografic al cheilor. Se observa din lista de mai sus ca ESP si AH, respectiv numarul 50 si 51 sunt, la fel ca TCP sau UDP (numerele 6 si 17) subprotocoale ale Protocolului Internet (IP).

Atunci cand IPsec este corect implementat el nu afecteaza negativ utilizatorii, hosturile sau alte noduri din Internet care nu folosesc IPsec pentru protectia traficului. Protocoalele de securitate IPsec (AH, ESP si mai putin IKE) sunt gandite de a fi independente de algoritmul de criptare folosit. Aceasta modularitate permite selectarea diferitelor seturi de algoritmi de criptare care sunt potriviti pentru aplicatia data, fara a afecta celelalte componente ale implementarii. De exemplu, comunitati diferite de utilizatori pot alege, la un moment dat, diferiti algoritmi de criptare. Este, totusi, specificata o multime data de algoritmi de criptare utilizabili pentru AH si ESP pentru a usura interoperabilitatea globala in Internet. Utilizarea acestor algoritmi de criptare, complementar cu protectia traficului IPsec si protocoalele de management ale cheilor, are ca scop de a permite programatorilor de sisteme si de aplicatii sa dezvolte tehnologii de securitate criptografica la nivelul Internet (in topologia TCP/IP) de o inalta calitate.

O implementare IPsec opereaza intr‑un host, ca gateway de securitate, sau ca un device independent, permitand protectia traficului IP. Un gateway de securitate este un sistem intermediar care are implementat IPsec, de exemplu un firewall sau un router cu capacitati de IPsec. Acest IPsec creeaza o granita intre interfetele protejate si cele neprotejate, pentru un nod sau o retea intreaga:

Figura

In aceasta diagrama, "neprotejat" se refera la o interfata care poate fi descrisa ca si "neagra", sau "cifrata", iar "protejat" se refera la o interfata care poate fi denumita si "rosie", sau "plaintext". Interfata protejata este de obicei interna, de exemplu intr‑o implementare IPsec pe un gateway, interfata protejata ar fi legatura catre o interfata soket accesibila doar sistemului de operare. Voi folosi termenul de "inbound" pentru traficul care intra intr‑un nod implementat cu IPsec prin interfata neprotejata. Analog, termenul "outbound" va referi traficul care intra in nod prin interfata protejata si urmeaza a fi rutat prin interfata neprotejata, sau trafic initiat de pe localhost catre interfata neprotejata. O implementare IPsec poate suporta mai cel putin o interfata pe fiecare din cele doua parti ale granitei pe care o stabileste.

IP Authentication Header (AH), ofera integritatea datelor si autentificarea originii datelor, cu posibilitati optionale de anti-replay. Protocolul Encapsulating Security Payload (ESP) ofera aceleasi servicii ca AH si, in plus confidentialitate prin criptare. Folosirea ESP‑ului doar pentru criptare (confidentialitate) nu este recomandata. Atat ESP cat si AH ofera controlul accesului, impus prin distribuirea de chei criptografice si prin managementul traficului. Aceste protocoale pot fi aplicate separat sau impreuna pentru a oferi servicii de securitate in IPv4 si IPv6. Totusi majoritatea cerintelor de securitate pot fi indeplinite prin folosirea doar a ESP. De aceea, incepand din acest punct ne vom referi numai la ESP, lasand la o parte AH.

ESP suporta doua moduri de folosire: modul transport si modul tunel. In modul transport se ofera protectie in principal pentru protocoalele de nivel mai inalt, in comunicatia dintre cele doua hosturi care discuta; in modul tunel, ESP este aplicat pachetelor IP care urmeaza sa intre in tunel, astfel asigurandu‑se comunicatie securizata intre subretelele ce se afla in spatele gateway‑urilor cu IPsec. Vom discuta mai jos diferentele dintre cele doua moduri.

IPsec permite utilizatorului sa controleze granularitatea serviciului de securitate. De exemplu, se poate crea un singur tunel criptat pentru a transporta tot traficul dintre doua noduri de securitate, dar, in acelasi timp se poate crea cate un tunel separat pentru fiecare pereche de noduri care comunica.

Pentru ca majoritatea serviciilor de securitate pe care le ofera IPsec folosesc chei criptografice, IPsec se bazeaza pe un set separat de mecanisme pentru a pozitiona aceste chei acolo unde trebuie. Pentru a securiza comunicatii bidirectionale intre doua sisteme cu IPsec trebuie sa existe o pereche de SA‑uri (Security Associations), cate una pe fiecare directie. IKE creeaza in mod explicit perechi SA ca urmare a acestei cerinte.

Headerul ESP ofera un mix de servicii de securitate pentru IPv4 si IPv6. ESP poate fi aplicat singur, in combinatie cu AH, sau recursiv, de exemplu prin folosirea modului tunel. Serviciile de securitate pot fi oferite intre o pereche de host‑uri care comunica, intre o pereche de gateway‑uri securizate, sau intre un gateway securizat si un host.

Headerul ESP este introdus dupa headerul IP si inainte de headerul protocolului mai inalt (modul transport), sau inaintea unui header ip incapsulat (modul tunel). ESP este folosit pentru a oferi confidentialitate, autentificarea originii datelor, integritate fara conexiune, servicii de anti‑raspuns (anti‑replay - o forma de integritate secventei partiala), si confidentialitatea fluxului de traficm dar limitat. Serviciile oferite depinde de optiunile selectate in momentul in care se stabileste SA‑ul si de felul implementarii. Confidentialitatea poate fi aleasa independent de celelalte servicii. Totusi, folosirea confidentialitatii (criptarea) fara integritate/autentificare (fie cu ESP sau separat cu AH), poate pune traficul in pericolul de a fi atacat si de a‑i fi subminat serviciul de confidentialitate. Autentificarea originii datelor si integritatea fara conexiune sunt servicii care vin impreuna (numite "autentificare") si sunt oferite ca o optiune impreuna cu confidentialitatea. Serviciul anti‑raspuns poate fi ales numai daca se alege si autentificarea originii datelor, iar alegerea sa depinde numai de destinatie. Cu toate ca apelurile implicite catre sursa de a incrementa Numarul de Secventa folosit pentru anti‑raspuns, serviciul este efectiv doar daca destinatia verifica acest Numar de Secventa).

Confidentialitatea fluxului de date necesita alegerea modului tunel de transmitere, si este cea mai eficienta daca se implementeaza intr‑un gateway, acolo unde se pot ascunde sursele si destinatiile pachetelor de date. A se lua aminte ca, in pofida faptului ca atat confidentialitatea cat si autentificarea sunt optionale, cel putin una dintre ele trebuie aleasa.

Forma pachetului ESP este urmatoarea:

Figura

Headerul protocolului, care se afla imediat inaintea headerului ESP, va contine valoarea 50 in campul Protocol. Voi defini in continuare campurile specifice acestui header. "Optional" inseamna ca acel camp este omis daca optuinea nu este selectata. Daca o optiune este selectata sau nu, se defineste la stabilirea SA‑urilor. Asadar, formatul pachetelor ESP pentru o SA data este fix, pe toata durata SA. In contrast, campurile obligatorii sunt prezente intotdeauna in formatul pachetului ESP, pentru toate SA‑urile.

SPI (Security Parameters Index) este o valoare aleatoare pe 32 de biti care, in combinatie adresa IP a destinatiei si protocolul ESP, identifica in mod unic SA‑ul pentru aceasta datagrama. Multimea de valori SPI din gama de la 1 pana la 255 sunt rezervate de IANA (Autoritatea pentru numere asignate in Internet) pentru utilizare ulterioara; o valoare rezervata SPI nu ar fi asignata de IANA decat daca folosirea valorii SPI asignate e specificata in vreun RFC (Request For Comment). SPI este ales in mod normal de sistemul destinatie odata cu stabilirea unei SA. Campul SPI este obligatoriu.

O valoare de 0 (zero) pentru SPI este rezervata pentru uz local, specific si nu trebuie trimisa mai departe "pe fir". De exemplu, o implementare de management al cheilor poate folosi valoarea zero pentru SPI pentru a specifica cum "ca nu exista nici o SA" pe perioada in care implementarea IPsec cere de la sistemul de management sa se stabileasca o noua SA, dar SA nu a fost inca stabilita.

Numarul de secventa este un camp de 32 de biti care contine un contor monoton crescator. Este obligatoriu si totdeauna prezent chiar daca destinatia nu alege sa activeze serviciul anti‑raspuns pentru o SA anume. Procesarea campului numar de secventa este la alegerea destinatiei, adica sursa trebuie sa transmita intotdeauna acest camp, iar destinatia nu e obligata sa‑l ia in seama.

Contorul sursei si a destinatiei sunt initializate la zero atunci cand se stabileste SA, primul pachet trimis folosind o SA data va avea numarul de secventa 1. Daca serviciul anti‑raspuns este activat, numarul de secventa transmis nu trebuie sa se repete. Astfel, contorul sursei si destinatiei trebuie resetate (prin crearea unei noi SA, deci o noua cheie) inainte de transmiterea celui de‑al 2^32 pachet din SA.

Campul Payload Data este un camp de marime variabila continand datele descrise de campul Next Header. Campul Payload Data este obligatoriu si are un numar intreg de octeti ca lungime. Daca algoritmul folosit la criptarea datelor necesita date de sincronizare a criptografiei, de exemplu un vector de initializare (IV - Initialization Vector), atunci aceste date pot fi purtate in mod explicit in campul Payload. Orice algoritm de criptare care necesita astfel de date de sincronizare explicite, per pachet, trebuie sa indice lungimea, o structura pentru aceste date, si locatia lor ca parte a unui RFC care sa specifice cum este folosit algoritmul cu ESP. Daca astfel de date de sincronizare sunt implicite, algoritmul folosit pentru obtine datele trebuie sa faca parte dintr‑un RFC.

Completarea (Padding). Mai multi factori necesita sau motiveaza folosirea campului de completare:

- daca un algoritm de criptare este folosit si cere ca textul necriptat sa fie multiplu al unui numar de octeti, de exemplu marimea blocului unui cifru bloc, campul de completare este folosit pentru a umple textul plain (constand din campurile Payload Data, Pad Length si Next Header, cat si completarea) pana la dimensiunea ceruta de algoritm.

- completarea mai poate fi necesara, indiferent de necesitatile algoritmului de criptare, pentru a fi siguri ca textul criptat rezultat se termina intr‑o limita de 4 octeti. Adica campurile Pad Length si Next Header trebuie sa fie aliniat la un cuvant de 4 octeti, asa cum este ilustrat in formatul de pachet ESP de mai sus, pentru a asigura ca campul Authentication Data, daca este prezent, este aliniat la o limita de 4 octeti la randul sau.

- completarea peste necesarul algoritmului sau alinierii poate fi folosita pentru a ascunde lungimea reala a datelor utile, in vederea unei confidentialitati partiale a fluxului de trafic. Totusi, completari de acest gen au dezavantaje referitoare la latimea de banda consumata si deci trebuie analizata cu grija.

Sursa poate adauga 0‑255 octeti de completare. Includerea campului Padding intr‑un pachet ESP este optionala, dar toate implementarile trebuie sa suporte generarea si consumarea completarilor.

a. Pentru a ne asigura ca bitii ce urmeaza a fi criptati sunt multipli de marimea blocului algoritmului folosit, calcularea completarii se aplica doar datelor utile (Payload Data), in afara de campurile IV, Pad Length si Next Header.

b. In scopul de asigura ca datele de autentificare (Authentication Data) sunt aliniate la 4 octeti, calculul completarii se aplica datelor utile inclusiv ctmpurile IV, Pad Lengthsi Next Header.

Daca octetii de completare sunt necesari, dar algoritmul de criptare nu specifica ce continut trebuie sa aiba aceasta completare, atunci se va folosi urmatorul model implicit. Octetii de completare sunt initializati cu o multime de valori intregi fara semn pe un byte. Primul octet de completare adaugat la plaintext este numerotat 1, urmatorii octeti de completare formand un sir crescator: 1, 2, 3, Cand se foloseste acesta schema de completare, destinatia ar trebui sa verifice campul Padding.

Orice algoritm de criptare care necesita o alta schema de completare in afara de cea implicita descrisa mai sus, trebuie sa specifice continutul completarii (de exemplu zerouri sau numere aleatorii), si orice mecanism de procesare la destinatie al acestor octeti de completare, intr‑un RFC care sa specifice cum este folosit algoritmul cu ESP. In aceste circumstante, continutul campului Padding va fi determinat de algoritmul si modul de criptare ales si definit in RFC. RFC‑ul corespunzator poate specifica cum ca destinatia trebuie sa verifice campul de completare sau ca destinatia trebuie sa informeze sursele cum va procesa acest camp.

Campul Pad Length indica numarul de octeti de completare care il urmeaza imediat. Plaja de valori posibile este 0‑255, unde o valoare de zero indica faptul ca nu sunt prezenti octeti de completare. Acest camp este obligatoriu.

Next Header este un camp pe 8 biti care identifica tipul de date continute in campul Date Utile (Paylod Data), de exemplu, un header extensie in IPv6 sau un identificator de protocol de nivel mai inalt in IPv4. Valoarea acestui camp este aleasa din multimea de numere de protocol IP enumerata mai sus. Acest camp este, de asemenea, obligatoriu.

Date de Autentificare (Authentication Data) este un ctmp de lungime variabila care contine o valoare de verificare a integritatii (ICV - Integrity Check Value) calculata in functie de pachetul ESP, mai putin Authentication Data. Lungimea acestui camp e specificata de functia de autentificare aleasa. Campul este optional, si este inclus numai daca serviciul de autentificare a fost ales pentru SA in cauza. Algoritmul de autentificare trebuie sa specifice lungimea lui ICV si regulile de comparatie si pasii de procesare pentru validare.

Formatul unui pachet IPv4 inainte si dupa aplicarea ESP este (Figura 4):

Figura

Pentru IPv6 avem (Figura 5)

Figura

2.5. IKE - protocol de managementul cheilor

Atat Oakley cat si SKEME (vezi Anexa A) definesc o metoda de a stabili o sesiune de schimbare de chei autentificata. Aceasta include construirea payload‑urilor, purtarea payload‑urilor de informatii, ordinea in care sunt procesate si cum sunt folosite. In timp ce Oakley denumeste "moduri", ISAKMP defineste "faze" relatia dintre cele doua este directa si IKE prezinta schimburi diferite ca moduri care opereaza in una sau doua faze.

Faza 1 este aceea in care cele doua parti ISAKMP stabilesc un canal sigur si autentificat prin care sa comunice. Acesta se numeste ISAKMP Security Association (SA). "Main Mode" si "Aggressive Mode" se folosesc numai in faza 1.

Faza 2 este cea in care sunt "negociate" SA‑uri pentru servicii ca IPsec sau orice alt serviciu care necesita chei si/sau negociere de parametri. "Quick Mode" realizeaza un schimb de faza 2 si trebuie folosit numai in faza 2.

"New Group Mode" nu este nici cafaza 1 nici ca faza 2. Urmeaza dupa faza 1, dar are ca scop stabilirea unui nou grup care sa fie folosit in negocieri ulterioare. Se foloseste numai dupa faza 1.

ISAKMP SA este bidirectionala, adica, odata stabilita, fiecare parte poate initia schimburi Quick Mode, Informational sau New Group

Prin folosirea fazelor ISAKMP, o implementare poate atinge viteze mare de negociere a cheilor. O singura negociere de faza 1 poate fi folosita pentru mai multe negocieri de faza 2. In pus, o singura negociere de faza 2 poate ere mai multe SA‑uri. Cu aceste optimizari, o implementare poate avea mai putin de un ciclu per SA si la fel de bine mai putin de o exponentiere Diffie‑Hellman per SA. Main Mode pentru faza 1 ofera protejarea identitatii. Atunci cand protectia identitatii nu este necesara, "Aggressive Mode" poate fi folosit pentru a reduce ciclurile si mai mult.

Urmatoarele atribute sunt folosite de IKE si sunt negociate ca parte din ISAKMP SA:

algoritmul de criptare

algoritmul de hash

metoda de autentificare

informatii despre grupul peste care sa se faca Diffie-Hellman

Toate aceste atribute sunt obligatorii si trebuie negociate. In plus, se poate, optional, negocia o functie pseudo‑aleatoare ("prf")

Grupul Diffie‑Hellman trebuie sa fie specificat sau folosind o descriere de grup definita, sau definind toate atributele unui grup. Atributele de grup nu trebuie sa fie oferite in conjunctie cu un grup definit anterior.

Implementarile IKE suporta urmatoarele standarde:

MD5 si SHA

Autentificare prin preshared keys

MODP peste grupul implicit numarul unu.

3DES pentru criptare

RSA - standardul pentru semnaturi digitale

Sunt doua metode principale folosite pentru a stabili un schimb de chei autentificat: Main Mode si Aggresive Mode. Fiecare genereaza material de schimb autentificat dintr‑un schimb Diffie‑Hellman temporar.

Payload‑ul SA trebuie sa preceada toate celelalte payload‑uri intr‑un schimb de faza 1. Exceptand cazurile cand este specificat altfel, nu sunt cerinte pentru payload‑urile ISAKMP din orice mesaj de a fi intr‑o ordine stabilita.

Main Mode este o instantiere a Schimbului Protejat de Identitate (Identity Protect Exchange) ISAKMP: primele doua mesaje negociaza regula; urmatoarele doua schimba valorile publice Diffie‑Hellman si datele ajutatoare, necesare schimbului; ultimele doua mesaje autentifica schimbul Diffie‑Hellman. Metoda de autentificare negociata ca parte din schimbul initial ISAKMP influenteaza construirea payload‑urilor, dar nu si scopul lor. XCHG pentru Main Mode este ISAKMP Identity Protect.

In mod similar, Aggressive Mode este o instantiere a Schimbului Agresiv (Agressive Exchange) ISAKMP. Primele doua mesaje negociaza regula, schimba valori publice Diffie‑Hellman si date auxiliare necesare schimbului si identitati. In plus, al doilea mesaj autentifica partea care a raspuns (responder). Al treilea mesaj autentifica initiatorul si ofera dovada participarii la schimb. CHG pentru Aggressive Mode este ISAKMP Aggressive. Ultimul mesaj poate sa nu mai fie trimis sub protectia ISAKMP SA, permitand fiecarei parti sa amane exponentierea, daca se doreste, pana cand negocierea acestui schimb se termina.

Schimburile in IKE nu sunt infinite si au un numar fixat de mesaje. Primirea unei cereri de certificat nu creste numarul de mesaje transmise sau asteptate.

Negocierea SA‑urilor este limitata in Aggressive Mode. Datorita cerintelor de construire a mesajului, grupul in care schimbul DH are loc nu poate fi negociat. In plus, diferite metode de autentificare pot sa constranga mai mult negocierea atributelor. De exemplu, autentificarea cu criptare tip cheie publica nu poate fi negociata si atunci cand se foloseste metoda revizuita de criptare cu cheie publica pentru autentificare, codul (cipher) si hash‑ul nu pot fi negociate.

Main Mode, Aggressive Mode si Quick Mode realizeaza negocierea SA‑urilor

Ceea ce ofera o SA ia forma unor payload‑uri Transform incapsulate in payload‑uri Proposal, incapsulate in payload‑uri Securitz Association. Daca sunt facute mai multe oferte pentru schimburile de faza 1, trebuie sa ia forma mai multor payload‑uri Transform pentru un singur payload Proposal intr‑o singur payload de SA.

Urmatoarea diagrama (Figura 6), ilustreaza payload‑urile schimbate intre doua parti in primul schimb dus‑intors:

Figura

Primitorul alege si returneaza o propunere de transformare (atributele ISAKMP SA). Al doilea schimb contine urmatoarele payload‑uri (Figura 7).

Figura

Faza 2 din Quick Mode:

Figura

Consideratii de securitate

Am discutat mai sus un protocol hibrid, care combina parti din Oakley si din SKEME cu ISAKMP pentru a negocia si obtine keying material pentru asociatii de securitate, totul intr‑o maniera autentificata.

Confidentialitatea este asigurata prin folosirea unui algoritm de criptare negociat de parti. Autentificarea este asigurata de folosirea unei metode negociate: un algoritm tip semnatura digitala, un algoritm tip cheie publica care suporta criptare, sau o fraza secreta (preshared key). Confidentialitatea si autentificarea acestui schimb sunt la fel de bune cat atributele negociate ca parte din asociatia de securitate ISAKMP.

Re‑keyingul repetat folosind Quick‑Mode poate consuma entropia secretului partajat Diffie‑Hellman. Perfect Forward Secrecy (PFS) al keying material si al identitatilor este posibil cu acest protocol.

2.6. FreeS/WAN - IPsec pentru kernelul 2.4 si 2.6

FreeS/WAN este implementarea Linux a protocoalelor IPsec. Sunt folosite doua protocoale, ESP si IKE, prezentate in capitolele anterioare.

Aceasta implementare are trei parti principale:

  • KLIPS (kernel IPsec) implementeaza ESP si tratarea pachetelor in kernel
  • Pluto (un daeomn IKE) implementeaza IKE, negociind conexiunile cu alte sisteme
  • Diferite scripturi care ofera o interfata de administrare

Pe scurt, FreeS/WAN urmeaza urmatorii pasi la stabilirea unei conexiuni:

  • Faza 1 IKE (Main Mode Exchange), care stabileste un canal de keying (ISAKMP SA) intre cele doua gateway‑uri
  • Faza 2 IKE (Quick Mode Exchange), care stabileste canalele de date (IPsec SA‑uri)
  • IPsec propriu zis, faza in care se schimba date folosind ESP sau AH

Ambele faze IKE sunt repetate periodic pentru a automa renegocierea (re‑keying)

Criptare si autentificare

Criptografia are un trecut lung si fascinant. Cea mai completa relatare atehnica despre acest subiect a facut‑o Kahn in lucrarea "The CodeBreakers". Aceasta carte urmareste criptografia de la utilizarea ei initiala si limitata de catre egipteni acum 4000 de ani, pana in secolul 20 unde a jucat un rol crucial in rezultatul celor doua razboaie mondiale.

Proliferarea computerelor si a sistemelor de comunicatie in 1960 a adus o cerere din sectorul privat pentru metode de protejarea informatiei in format digital si pentru a oferi servicii de securitate. Incepand cu rezultatele lui Feistel la IBM la inceputul anilor 70 si culminand in 1977 cu adoptarea lor ca Standard al Procesarii Informatiilor Federale ale Statelor Unite pentru criptarea informatiilor non‑secrete, DES (Data Encryption Standard) este cel mai bine cunoscut mecanism de criptare cunoscut in istorie.

Cea mai importanta descoperire in istoria criptografiei a venit in 1976 cand Diffie si Hellman a publicat lucrarea "Noi Directii in Criptografie". Aceasta lucrare a introdus conceptul revolutionar de criptografie cu cheie publica si a oferit si o metoda noua si ingenioasa pentru schimbul de chei, a cui securitate e bazata dificultatea rezolvarii problemei logaritmului discret. Cu toate ca autorii nu au avut o realizare practica a schemei de criptare cu cheie publica la momentul acela, ideea era clara si genera un interes deosebit. In 1978 Rivest, Shamir si Adleman au descoperit prima schema practica de criptare cu cheie publica si semnatura, numita acum RSA. Aceasta schema e bazata pe o alta problema matematica grea, dificultatea de rezolvare a factorizarii intregilor mari. Aceasta aplicare a unei   probleme grele de matematica in criptografie a revitalizat eforturile de a gasi noi metode eficiente de factorizare. Anii 80 au adus avansari majore pe aceasta tema, dar nimic care sa dovedeasca RSA ca nesigur.

Una dintre cele mai importante contributii oferite de criptografia cu cheie publica este semnatura digitala. In 1991 a fost adoptat primul standard international pentru semnaturi digitale (ISO/IEC 9796). E bazat pe schema cheie publica a RSA. In 1994 guvernul Statelor Unite a adoptat standardul semnaturii digitale (Digital Signature Standard), un mecanism bazat pe schema cheie publica ElGamal.

Cautarea de noi scheme de cheie publica, imbunatatiri ale mecanismelor de criptare existente si dovezi de securitate continua intr‑un ritm rapid. Diferite standarde si infrastructuri care tin de criptografie sunt adoptate. Produse care ofera securitate sunt dezvoltate pentru a adresa nevoile de securitate ale unei societati informatizate intensiv.

Pentru a introduce criptografia, este necesara o intelegere a problemelor legate de securitatea informatiilor in general, este necesara. Securitate informatiei se manifesta in multe feluri, in functie de situatie si de necesitati. Indiferent de partile implicate, pana la punct, toate partile unei tranzactii trebuie sa aiba incredere ca anumite obiective asociate cu securitatea informatiei au fost indeplinite. (Tabelul 1)

confidentialitate

Pastrarea informatiei secreta pentru toti, exceptand cei autorizati sa o inteleaga

integritatea datelor

Asigurarea ca informatia nu a fost modificata de metode neautorizate sau necunoscute

autentificarea sau identificarea partilor

Confirmarea identitatii unei parti (ex: persoana, computer, carte de credit etc.)

autentificarea mesajului

Confirmarea sursei informatiilor, cunoscut si sub numele de autentificarea originii

semnatura

O metoda de a lega informatia de o entitate

autorizare

Permiterea unei alte parti de a face ceva sau de a fi ceva

validare

O metoda de a oferi oportunitate autorizarii de a folosi sau manipula informatii sau resurse

control acces

restrictionarea accesului resurselor doar pentru entitati privilegiate

certificare

aprobarea de catre o entitate acreditata.

timestamping

inregistrarea timpului crearii sau duratei existentei informatiei

nota primire

instiintarea ca informatia a fost primita

confirmare

instiintarea ca serviciile au fost oferite.

posesiune

o metoda de a oferi unei entitati dreptul de a folosi sau de a transfera o resursa catre ceilalti.

anonimitate

ascunderea identitatii unei parti.

non‑repudiere

prevenirea negarii angajamentelor sau actiunilor precedente

revocare

retragerea certificarii sau autorizarii.

Tabel

3.1. Diferente

Vom alege un exemplu simplu pentru a evidentia diferenta dintre termeni. Fie un server de mail acesibil prin web, aplicatie tipica numita webmail. Pentru a‑si citi mesajele din casuta de mail electronica, un utilizator deschide un browser web si tasteaza adresa serverului sau de mail, de exemplu https://webmail.server.net. In acest moment ii apare o pagina care cere niste date de identificare. Utilizatorul nostru, in schimb, este un pic mai circumspect si vrea sa fie sigur ca nu trimite nume de utilizator si parole oricui. Pentru acesta, el vrea ca serverul sa se autentifice intr‑un fel oarecare, dar sa‑i confere siguranta ca "discuta" cu adevaratul server. Nu vom analiza acum metode prin care serverul poate face acest lucru, important este ca am inteles ce inseamna autentificare.

In acest moment utilizatorul nostru este linistit ca nu a trimis datele de identificare la o terta parte, serverul i s‑a autentificat. Dar nu e suficient! Ar fost fi bine daca s‑ar fi asigurat ca datele trimise catre server au fost impachetate cumva inainte de trimitere, pentru ca, in cazul in care ele sunt interceptate pe parcurs (de exemplu pe un router din cale) sa nu fie intelese. Adica daca datele ar fi fost criptate inainte de transmitere si decriptate la primirea lor pe server. Serverul ar fi trebuit sa fie singurul in masura sa poata decripta acele date. Bineinteles ca nici serverul nu se lasa mai prejos si vrea ca si utilizatorul sa i se autentifice. Apoi, ca totul sa fie riguros, comunicatia dinspre server catre client trebuie sa fie, la randul ei criptata.

Sunt si situatii in care autentificarea se face intr‑un singur sens, mai exact clientul se autentifica serverului, iar criptarea se face in celalalt sens, pentru datele trimise de la client la server. Ca exemplu pentru acest caz sunt formularele online, pentru care trebuie sa se asigure confidentialitate.

In cazul aplicatiilor web cea mai la indemana metoda pentru asigurarea criptarii si autentificarii este protocolul https, sau Secure http, care foloseste, de fapt, tehnologie SSL (Secure Sockets Layer).

3.2. Algoritmi de criptare si autentificare folositi

Algoritmi simetrici: Nou - standardul AES

AES = Advanced Encryption Standard

Acest standard specifica algoritmul Rijndael, un bloc de criptare care poate procesa blocuri de date de 128 biti , folosind chei de criptare de 128, 192 sau 256 biti. Succesul acestui algoritm este in primul rand datorat performantelor mai bune obtinute cu acelasi hardware, referindu‑ne aici la viteza decriptare‑decriptare.

Rijndael a fost conceput sa functioneze si cu alte marimi ale blocuri de date si chei de criptare dar acest standard nu le adopta. In functie de ce lungime a cheii se foloseste, vom denumi: "AES-128", "AES-192" si "AES-256".

Intrarea si iesirea pentru AES constau din secvente de 128 biti. Aceste secvente sunt de multe ori numite blocuri, iar lungimea acestor blocuri semnifica numarul de biti pe care ii contin. Cheia de criptare pentru AES este o secventa de 128, 192 sau 256 biti. Bitii din aceste secvente sunt numerotati incepand de la zero. Sunt folositi, in schimb, in special octetii, conventia fiind ca pentru un bloc de 128 biti - a, care e compus din 16 octeti, primul octet sa fie notat a0 sau a[0] si asa mai departe. Sirurile de octeti sunt reprezentate sub forma:

a0 a1a2. a15

Algoritmi simetrici: Standardul DES

DES, este acronimul de la Data Encryption Standard, si este un algoritm simetric (atat cel care cripteaza, cat si cel care decripteaza, trebuie sa posede aceasi cheie). A fost adoptat de ANSI (American National Standards Institute), ca standard ANSI X3.92 si intitulat DEA. Algoritmul foloseste o cheie de 56 de biti, care o aplica la blocuri din mesaj de 64 de biti, de 16 ori; adica, ia un bloc de 64 de biti, ii aplica cheia de 56 de biti si obtine un bloc de text criptat de 64 de biti; aceasta operatie, este repetata de 16 ori.

Modul de functionare

Prima data este aplicata o functie de permutare blocului de 64 de biti (de exemplu, bitul 58 devine bitul 1, bitul 50 - bitul 2, s.a.m.d.). Rezultatul, este divizat in doua sub-blocuri de cate 32 de biti, L0 si R0, dupa care, de 16 ori, se aplica urmatorii pasi:

Iteratia numarul i (1 <= i < 17):

  1. se obtine cheia transformarii i, care este o permutare, dar dupa care, se elimina 8 biti (deci, raman doar 48 de biti)
  2. fie A = Li si J = cheia transformarii. Se aplica functia f(A,J) (explicata mai jos), pentru a produce un rezultat pe 32 de biti
  3. se aplica un Sau Exclusiv lui Ri si lui f(A,J) (Sau Exclusiv, ia doi biti, iar daca sunt identici, returneaza 0, altfel 1). Rezultatul, este pus in Ri+1
  4. fie Li + 1 = Ri

Acesti pasi, pot fi descrisi prin diagrama de mai jos:

Figura

Functia f, ia 32 de biti din text (A) si cheia pe 48 de biti (J). O functie de expandare ii este aplicata lui A, care schimba cativa biti intre ei, si mai pune inca 16, ceea ce duce la cresterea lui A la 48 de biti. A expandat si J, sunt combinati, folosind un Sau Exclusiv. Cei 48 de biti rezultati, sunt trecuti prin niste 'S-boxes' (explicate mai jos), pentru a produce un rezultat pe 32 de biti. La final, este aplicata o alta permutare.

S-boxes, iau ca date de intrare 6 biti, si returneaza 4 biti. Acest proces, foloseste un tabel (numit S-Box), format din 4 linii si 16 coloane. Un exemplu de astfel de tabel, este dat mai jos:

Tabel

Pentru a se obtine 4 biti, se ia primul si ultimul bit din grupul de 6 pentru a stabili linia, si grupul de 4 biti de la mijloc, pentru a stabili coloana. De exemplu, daca se da grupul de biti 110111 si tabelul de mai sus, se ia primul si ultimul bit, care sunt 11 si reprezinta linia 3, si mijlocul de 4 biti 1011, care reprezinta coloana 11. Deci numarul rezultant, este la intersectia liniei 3 si a coloanei 11, si este 14 (in binar 1110).

Astfel, cei 48 de biti, sunt impartiti in 8 grupe de cate 6 biti si trecute prin 8 S-Boxes diferite, care sunt definite in specificatiile algoritmului. Se obtin tot 8 grupe, dar de cate 4 biti, care puse una langa alta, dau rezultatul final de 32 de biti.

Functia f(), este descrisa prin diagrama de mai jos:

Figura

Atacarea DES-ului

Pentru a ataca algoritmul DES, se folosesc 3 metode:

  1. criptanaliza diferentiala - unde se cauta corelatii intre rezultatele primite de functia f() si cele returnate
  2. criptanaliza liniara - unde se cauta corelatii intre cheie si cipher-ul de intrare si cel de iesire
  3. criptanaliza referitoare la chei - unde se cauta corelatii intre schimbarea de chei si rezultate

Metodele de criptanaliza diferentiala, descoperite in 1990, au scos la iveala faptul ca orice algoritm de criptare in bloc care a fost inventat inainte de 1990, sunt vulnerabili, cu exceptia DES-ului.

Algoritmul de criptare folosit acum ca standard in majoritatea implementarilor, inclusiv

Algoritmi asimetrici

Criptarea cu cheie publica

Bazele criptarii asimetrice, au fost puse in 1976 de Whitfield Diffie si Martin Hellman. Criptarea asimetrica, presupune generarea a doua chei, dintre care una este publica si poate fi data oricui, iar cealalta, este privata, si nu trebuie sa fie cunoscuta decat de cel care o foloseste. Cele doua chei au o proprietate speciala: sunt una inversul celeilalte, si nu pot fi deduse una din cealalta. In mare, principiul este urmatorul: cheia publica = 3, cheia privata = 1/3, iar mesajul= 4. Criptarea, se face astfel: cipher = cheie publica X mesaj = 3X4= 12. Decriptarea: mesaj = cipher X cheie privata = 12 X 1/3 = 4.

Algoritmul RSA

RSA, sunt initialele numelui celor trei inventatori ai algoritmului: Ron Rivest, Adi Shamir si Leonard Adleman. Algoritmul, functioneaza astfel: se genereaza doua numere prime foarte mari (de sute de zecimale) p si q. Cele doua numere se inmultesc, iar rezultatul se pune in n. Se alege un numar e, mai mic decat n, care sa fie relativ prim cu (p-1)(q-1). Se mai alege un numar d, cum ar fi (ed-1), care este divizibil cu (p-1)(q-1). Numarul e, este numit exponentul public, iar numarul d, este numit exponentul privat. Perechile (n,e) si (n,d) sunt cheia pulica, respectiv cheia privata.

Cele doua numere prime p si q, sunt fie tinute secrete, fie sunt distruse, deoarece toata securitatea algoritmului RSA (care este unul dintre cei mai folositi algoritmi cu cheie publica, atat pe plan guvernamental, cat si pe plan comercial), se bazeaza pe dificultatea obtinerii celor doua numere (p si q) din produsul lor (n). Odata cu obtinerea numerelor p si q, se poate afla si numarul d, care reprezinta cheia privata.

Exemplu de criptare RSA: fie mesajul necriptat M, numerele prime p=5 si q=7. Produsul lor, n=5X7=35. Numarul e=3, iar d==16. Criptarea se face astfel: , iar decriptarea .

Deci, fie mesajul M=4

Criptarea: C = 43 mod 35 = 39

Decriptarea: M = 2916 mod 35 = 2,5 x 1023 mod 35 = 4

Semnatura digitala RSA

Semnatura digitala este folosita pentru a identifica autorul unui mesaj. La semnatura digitala, se trimite atat textul criptat, cat si textul decriptat, care este criptat cu cheia privata a persoanei care-l trimite. Persoana care primeste mesajul, il decripteaza cu cheia publica a celui care l-a trimis, si il compara cu mesajul necriptat. Daca cele doua texte coincid, atunci se confirma ca cel care a trimis datele este intr‑adevar cine pretinde ca este.

3.3. Atacuri tip forta bruta

DES nu mai poate fi considerat sigur. Cu toate ca nu sunt cunoscute defecte majore in acest algoritm, este total inadecvat deoarece cheia sa de 56 biti este prea scurta. Este vulnerabil la o cautare prin forta bruta in intregul spatiu de chei, fie prin seturi mari de computere cu scop general, sau chiar mai repede cu hardware specializat. Bineinteles ca acestea se aplica oricarui alt algoritm de criptare cu o cheie de doar 56 biti sau mai putin. Singurul motiv pe care cineva ar putea avea nevoie sa mai foloseasca o cheie de 56 au 64 de biti ar fi pentru a se adapta diferitelor legi menite sa asigure posibilitatea ca un algoritm sa fie spart.

Hardware‑ul dedicat poate sparge DES in cateva zile. Semnul de intrebare asupra securitatii DES‑ului a fost pus definitiv. La inceputul lui 1998, fundatia "Electronic Frontier" a construit o masina de spart DES. Aceasta putea gasi o cheie DES in medie cam in cateva zile. O astfel de masina costa cam de 200000 USD pentru a fi conceputa si construita. Cum computerele devin din ce in ce mai rapide la acelasi pret, in numai 18 luni suma de 20000 USD a   devenit 50000 USD, ceea ce spune totul. Agentii secrete din diferite natiuni se poate sa fi avut de multi ani masini de spart DES‑ul. Este greu de facut majoritatea aplicatiilor de computer sa functioneze bine pe masini paralele, sau sa se conceapa hardware pentru a le face mai rapide. Spargerea de algoritmi de criptare face parte din putinele exceptii insa. Este usor de crescut viteza de spargere doar adaugand hardware. In limite foarte largi, se poate ajunge la o viteza oricat de mare daca exista bugetul necesar.

DES poate fi spart chiar si folosind puterea de calcul distribuita intr‑o retea de computere. O corporatie mai mare, o universitate sau departament guvernamental ar putea sparge DES folosind ciclii masina liberi din retelele lor de calculatoare. Se poate sa le ia saptamani sau chiar luni, dar in cele din urma vor reusi. In ceea ce priveste munca unui singur individ pentru sparge DES, neavand resursele unei organizatii mai mari, viteza de spargere scade considerabil, dar se poate chiar si asa. Cu cateva mii de dolari se pot cumpara suficient de multe calculatoare, care, facute sa comunice ar putea sa sparga DES in cateva luni sau ani. Ba chiar s‑ar putea construi un virus care sa foloseasca putin din puterea de calcul a fiecarei victime, avand in acest fel un sistem de calcul distribuit urias.

Pe scurt, este acum absolut clar ca DES nu este sigur impotriva:

unui atacator cu fonduri pentru a‑si cumpara un hardware suficient de bun

oricarui atacator, chiar si fara resurse, dar care poate avea acces la cateva computere obisnuite.

Implementarea FreeS/WAN dezactiveaza DES din aceste motive prezentate mai sus.

3DES

DES triplu, abreviat ca 3DES, aplica DES de 3 ori, cu 3 chei diferite. DES este conceput foarte bine ca algoritm de criptare; a rezistat mai multor decenii de intensa analiza fara sa‑i fie gasite prea multe hibe. Singura lui problema este cheia scurta care permite succesul atacurilor tip forta bruta. 3DES mareste dimensiunea cheii la 168 biti, facand cautarea prin forta bruta o imposibilitate ridicola. In momentul de fata 3DES este singurul algoritm de criptare bloc implementat in FreeS/WAN. Din pacate viteza sa este de 3 ori mai mica decat a DES‑ului simplu, dar procesoarele moderne se descurca la viteze foarte bune. O analiza a performantelor va fi facuta in subcapitolul 5.9.

Topologii

Dupa cum am anticipat chiar din introducere, exista doua tipuri principale de VPN, din punct de vedere structural:

site la site VPN

acces de la distanta VPN

Cisco are o alta clasificare, in functie de pozitia clientilor care se conecteaza:

Access VPN

Intranet VPN

Extranet VPN

Figura

Singura diferenta intre Intranet si Extranet VPN este ca prin Intranet VPN se conecteaza membrii organizatiei, iar prin Extranet partenerii de afaceri ai organizatei in cauza. Deci din punct de vedere tehnic este acelasi lucru, problema se pune la drepturile de acces care se primesc in fiecare din cazuri. Asadar vom trata in continuare cele doua tipuri, site la site si acces la distanta, urmand ca in subcapitolele 4.5., 5.6. si 5.7. sa vedem cum se poate restrictiona accesul la resursele locale in functie de cine se conecteaza.

4.1. Site la site VPN

In aceasta categorie intra conexiunile intre doua retele aflate in locatii diferite. Sigurul suport de comunicatie intre cele doua este internetul. Deoarece este nevoie ca resurse din una din retele sa fie accesibile din cealalta retea si invers, trebuie construit un tunel intre cele doua locatii care sa permita conexiuni intre IP‑uri nepublice din cele doua retele. Acesta s‑ar putea face simplu prin niste rute statice adaugate pe ambele routere si printr‑o encapsulare IP in IP a pachetelor, formandu‑se un tunel. Dar datele transferate nu trebuie sa fie intelese daca sunt interceptate pe parcurs. Trebuie ca ambele routere gateway ale celor doua retele sa poata cripta si decripta informatiile trimise, respectiv primite de la gateway‑ul cu care comunica. Topologia descrisa in acest scenariu poarta numele de VPN site la site (sau retea la retea). Tunelul stabilit intre locatii este un tunel IPsec criptat si autentificat. Nici unul dintre gateway‑uri nu stabileste tunelul decat cu celalalt gateway.

Caracteristic acestui tip de VPN e faptul ca adresele IP ale celor doua gateway‑uri sunt cunoscute si nu se schimba (IP‑uri statice).

O diagrama exemplificativa pentru acest tip de conexiune este reprezentata in figura urmatoare:

Figura

4.2. Acces la distanta

Aceasta topologie implica un server (gateway) care accepta conexiuni de la utlizatori mobili izolati. In felul acesta se stabileste un tunel criptat si autentificat intre utilizatorul mobil si reteaua din spatele serverului.

Diferenta majora dintre acest tip de VPN si cel site la site este ca utilizatorul mobil, numit in documentatia de specialitate si Road Warrior are aproape intoate cazurile un IP dinamic. Sau altfel privind lucrurile, nu se stie de la ce IP se va conecta data viitoare (indiferent ca s‑a conectat din aceeasi locatie dar i s‑a alocat un alt IP, sau s‑a conectat din alta locatie). Din aceasta cauza trebuie sa avem o metoda buna de autentificare, serverul nostru fiind deschis la conexiuni de la orice IP. Implementarea noastra cu IPsec si clienti mobili cu Windows va folosi ca metoda de autentificare atat certificate digitale cat si o pereche user/password. Certificatele digitale sunt eliberate de o Certification Authority (Autoritate de Certificare), nu neaparat publica si de root, deoarece vom acorda acces la reteaua noastra numai utilizatorilor pe care ii cunoastem si carora putem sa le inmanam certificatul semnat chiar de noi. Vom folosi in acest sens pachetul OpenSSL de pe Linux cu ajutorul caruia ne cream propria noastra CA (Certification Authority). Apoi generam cate un certificat digital pentru fiecare utilizator care dorim sa aiba acces de la distanta, il semnam cu autoritatea noastra si il oferim utilizatorului. In acelasi timp trebuie sa ii cream si o pereche user/parola necesare autentificarii la nivel L2TP. Practic, dupa ce se importa certificatul pe laptopul sau PC‑ul de pe care urmeaza sa se faca conectarea, pentru utilizator va fi transparent faptul ca mai intai autentificarea se face la nivel de masina, prin acest certificat, si abia apoi i se ofera ocazia sa introduca perechea user/parola. Bineinteles ca exista in clientul de Windows optiunea de a tine minte aceasta pereche user/parola, pentru ca utilizatorul sa se conecteze foarte simplu, doar cu un click de mouse.

Daca nu tinem cont de IP‑uri, aceasta topologie poate fi considerata un caz particular al topologiei site la site la site.

Figura

4.3. Server Linux si clienti Windows

Este firesc sa ne punem urmatoarele intrebari cand vedem un astfel de titlu: De ce nu server Linux si clienti tot Linux? Sau server Windows si clienti Windows? De ce trebuie sa avem o mixtura de tehnologii? Ei bine, este o alegere bine studiata si folosita de foarte multa lume. Sistemul de operare Windows este foarte raspandit ca sistem de operare pentru desktop. Aceasta deoarece este foarte intuitiv si usor de invatat si folosit de aproape oricine. Scopul oricarei companii este ca angajatii sa aiba o eficienta cat mai mare si de aceea astazi aproape orice activitate este informatizata. Timpul in care un nou angajat invata sa foloseasca sistemul informatic al companiei care l‑a angajat este foarte important sa fie cat mai mic, daca nu redus chiar la zero. Sistemul de operare Windows are avantajul ca a fost primul pentru utilizatorii de acasa si de aceea este acum cel mai bine cunoscut de utilizatorii obisnuiti. Asadar, managerul unei companii ajunge la concluzia ca banii cheltuiti pe o licenta de sistem de operare Windows pentru statia de lucru sunt justificati. Lucrurile nu stau chiar la fel in cazul variantei server de la Microsoft. Nu vom analiza performantele acestei variante de sistem de operare in comparatie cu altele pentru ca nu acesta e scopul lucrarii si dezbaterile in acest domeniu sunt aprinse. Ne vom referi insa la costul licentelor pentru Windows Server. Daca sistemul de operare pr‑zis poate costa in jur de 1000 dolari pentru un server, ei bine nu e singurul cost care trebuie luat in calcul. Politica de licentiere de la Microsoft este ca trebuie achizitionate licente si pentru fiecare utilizator care foloseste acest server. Deci pentru o retea de 30 de statii de lucru Windows XP Professional si 2 servere cu Windows Server 2003 se vor cumpara licente atat pentru fiecare Win XP Pro, pentru fiecare din cele doua Win Server 2003, dar si cate o licenta de acces client pentru fiecare utilizator din retea. Va dati seama ca intr‑o retea cu sute de statii de lucru cheltuielile pentru licente sunt foarte mari daca se alege prezenta unui sau mai multor servere Windows. Situatia sta la fel si pentru un sistem de operare Windows cu rol de Remote Access Server. Fiecare utilizator mobil care se conecteaza trebuie sa aiba un cont in domeniu si, deci o licenta de acces client.

Datorita celor relatate si nu numai, am ales varianta cu server Linux si clienti Windows. Alte motive ar fi robustetea Linux‑ului, potrivirea foarte buna pentru rolul de router/firewall software si rezistentei la atacuri tip virusi, worms etc.

4.4. Noutate: IPsec si NAT

Network Address Translation, cunoscut si sub numele de mascaradare este o metoda de alocare a adreselor IP in mod dinamic, tipic in situatii in care numarul de calculatoare care vor sa acceseze internetul este mai mare decat numarul de IP‑uri routabile alocate pentru o anumita locatie.

O incercare de a aplica NAT asupra pachetelor IPsec intre doua gateway‑uri securizate creeaza un asa zis conflict de "interese" :

IPsec vrea sa autentifice pachetele si sa asigure ca sunt nemodificate de la sursa la destinatie;

NAT‑ul rescrie headerele pachetelor;

Autentificarea IPsec esueaza daca pachetele sunt rescrise intr‑un punct dintre cele doua gateway‑uri.

Nu de mult insa, s‑a pus la punct un nou standard, numit IPsec NAT Traversal (NAT-T). Acest standard e descris in drafturi ca "Encapsularea pachetelor IPsec in UDP" (draft-ietf-ipsec-udp-encaps-02.txt) si "Negocierea NAT‑Traversal in IKE" (draft‑ietf‑ipsec-nat-t-ike-02-txt). IPsec NAT‑T defineste atat schimbarile din procesul de negociere cat si metodele diferite de trimitere a datelor protejate IPsec.

Gateway‑urile capabile de NAT‑T determina automat in timpul negocierilor IPsec urmatoarele:

daca atat initiatorul (de obicei clientul) cat si partea care raspunde (de obicei serverul) stiu NAT‑T.

daca exista vreun NAT intre ei.

Daca ambele conditii sunt adevarate, cei doi folosesc IPsec NAT‑T pentru a trimite trafic protejat prin NAT. Daca una dintre parti nu suporta NAT‑T atunci nu se poate realiza conexiunea. Daca nu exista nici un nat intre parti atunci se recurge la metoda clasica fara NAT‑T.

Dupa cum spuneam acest standard este foarte nou, Microsoft introducand aceasta tehnologie incepand cu Windows Server 2003, pentru Windows XP si 2000 fiind nevoie de un patch descarcabil de pe Windows Update Catalog in sectiunea Recommended Updates, pentru a suporta NAT‑T.

Instalare si configurare

In implementarile noastre vom folosi pentru Linux FreeS/WAN, iar pentru Windows clientii inclusi implicit in acest sistem de operare. Daca, deci, pe Windows nu este necesara o instalare de soft 3rd party, pentru versiunile de kernel 2.2 si 2.4 trebuie sa instalam FreeS/WAN pentru a avea o arhitectura IPsec. Kernelurile viitoare, incepand cu 2.6 au deja inclus suportul pentru IPsec, nemaifiind necesara instalarea vreunui pachet.

5.1. Compatibilitate Linux - Windows

Sistemul de operare Windows, incepand de la versiunea Windows 2000 are inclus suport pentru IPsec. Este vorba de un suport nativ, nefiind necesara instalarea altor aplicatii separate. Am putea chiar zice ca avem IPsec gratis in Windows 2000/XP, dar nu este adevarat, pretul fiind inclus in licenta pentru sistemul de operare.

La Linux, in schimb, exista pachetul FreeS/WAN, care, cu toate ca nu vine precompilat in toate distributiile de Linux, se poate descarca si folosi in sistem Open Licence. Din acest motiv au aparut numeroase alte variante de implementari IPsec pentru UNIX/Linux, toate bazate pe FreeSwan: SuperFreeSWAN, OpenSwan, StrongSwan etc.

Ca diferenta majore intre cele doua implementari (Windows, Linux), Windows se fereste sa foloseasca IPsec pur cum face FreeSwan atat de bine, si mai adauga un protocol numit L2TP, implementarea Microsoft numindu-se L2TP/IPSec. Motivele pentru care Microsoft face aceasta alegere sunt variate ajungindu-se pana la partea financiara. Ca motive tehnice ar fi: IPsec nu ofera posibilitatea oferirii de IP-uri private virtuale partilor (ex. DHCP), acestea trebuind sa fie setate static. De asemenea, IPsec autentifica la nivel de masina, nu la nivel de utilizator, ceea ce Microsoft considera inacceptabil.

Cu IPsec/L2TP, in schimb, se poate folosi un server DHCP care asigneaza configuratia TCP/IP automat, catre toti clientii.

IPsec este un standard recunoscut si teoretic toate implementarile sale pe sisteme de operare sau hardware dedicat ar trebui sa interopereze. Exista insa mici probleme de care ne lovim la crearea unui tunel intre Windows si Linux.

Printre aceste probleme, principala este metoda de autentificare. Windows suporta certificate X509 si chei secrete. Linux cu FreeSwan suporta par default doar RSA si chei secrete. Cum pe Windows este mai greu sa intervenim, neavand acces la surse, modificarile se fac pe partea Linux, unde se adauga suportul pentru certificate X509.

5.2. Instalare si configurare pe Linux

Pentru a instala pachetul FreeS/WAN trebuie indeplinite urmatoarele conditii:

un Linux cu versiunile de kernel 2.2 sau 2.4

acces de root

alegerea corecta a versiunii de FreeS/WAN, in functie de necesitati

In momentul elaborarii acestui proiect cea mai buna versiune a fost 1.99 cu patch‑uri pentru certificate X509 si NAT‑T aplicate. Nu e suficient ca FreeS/WAN sa aiba patch‑ul de NAT‑T. Si kernelul trebuie sa suporte acest lucru. Este, deci, nevoie de aplicarea unui patch si acestuia, iar apoi recompilare.

Am adoptat varianta de creare de rpm‑uri (folosim Red Hat Linux) pentru build‑urile pe care le facem, de kernel si de FreeS/WAN, pentru a le putea instala usor mai apoi pe alte server fara a mai recompila.

Avand sursele kernelului sub un symbolic link in:

/usr/src/linux

executam urmatoarele comenzi:

# make menuconfig

# make dep

# make bzImage

# make modules

Apoi mergem in directorul unde avem sursele pentru FreeS/WAN si executam:

# make menumod

Aceasta comanda aplica un patch ESP_IN_UDP necesar pentru suportul de NAT‑Traversal in sursele kernelului. Dupa ce alegem optiunile dorite in meniul de configurare executam:

# make minstall

Pentru a avea NAT‑T in kernel ii facem un build:

# make bzImage

Apoi rebootam cu noul kernel. In acest moment avem totul instalat, putem trece la configurarea conexiunilor. Fisierele cele mai importante de configurare pentru FreeS/WAN sunt

/etc/ipsec.conf si /etc/ipsec.secrets

In /etc/ipsec.conf se trec detalii referitoare la capetele tunelurilor ce urmeaza a fi stabilite. Iata un exemplu pentru acest fisier:

# basic configuration

config setup

# %defaultroute is okay for most simple cases.

interfaces=%defaultroute

# Debug-logging controls: 'none' for (almost) none, 'all' for lots.

klipsdebug=none

plutodebug=none

# Use auto= parameters in conn descriptions to control startup actions.

plutoload=%search

plutostart=%search

# Close down old connection when new one using same ID shows up.

uniqueids=yes

nat_traversal=yes

conn %default

keyingtries=0

disablearrivalcheck=no

authby=rsasig

leftrsasigkey=%cert

rightrsasigkey=%cert

compress=yes

conn bit-psro

left=11.22.33.44

leftsubnet=192.168.1.0/24

leftnexthop=11.22.33.1

right=55.66.77.88

rightsubnet=192.168.3.0/23

rightnexthop=55.66.77.1

authby=rsasig

auto=start

In /etc/ipsec.secrets se trec frazele secrete sau fisierele ce contin semnaturile digitale. Acest fisier trebuie sa aiba drept de citire doar pentru super‑user (root).

Pentru tuneluri intre masini Linux putem folosi semnaturi RSA, insa cand vrem sa permitem si conexiuni de la masini Windows trebuie sa avem suport pentru X509.

Tot pe Linux, pentru ca e GPL, instalam si OpenSSL (daca nu e instalat deja) si ne cream propria CA. Apoi generam certificatele pentru toate hosturile pe care le vom configura si le semnam cu aceeasi CA.

5.3. Configurare pe Windows

Procedura importare certificate

In Windows exista o baza de date ce contine certificate autoritatilor (Certificate Authority - CA) radacina. Aici pot fi importate certificate emise de o autoritate proprie unei corporatii catre utilizatori pentru diferite scopuri: autentificarea e-mailurilor, autentificare IPSec etc.

Exista mai multe sectiuni: Computer Account, User Account si Service Account.

Certificatele se distribuie diferitilor utilizatori sau diferitelor masini in mai multe formate, fiind fisiere cu una din extensiile: .cer, .crt, .pfx, .p12 etc.

Prin dublu-click pe un astfel de fisier, certificatele sunt adaugate in contul utilizatorului curent logat pe masina in acel moment. Este cazul certificatelor (Digital IDs) pentru semnarea e-mailurilor. Nu este insa cazul autentificarii IPsec, care Microsoft considera ca trebuie facuta la nivel de masina. Trebuie, deci ca PC-ul de pe care se face o conectare VPN prin IPSec, sa aiba un certificat acceptat de serverul VPN.

Aceasta procedura descrie modul in care se pot importa certificate pentru PC-ul local (Local Computer).

  1. Click Start -> Run, type mmc, apoi click OK
  2. Click File -> Add-Remove Snap-in
  3. Click Add..
  4. Alegeti Certificates si click pe Add
  5. Alegeti Computer Account  si click Next
  6. Click  Finish
  7. Click  Close  in fereastra Add Standalone Snap-in
  8. Click OK in fereastra  Add/Remove Snap-in
  9. Click dreapta pe Personal,  click All Tasks, click Import:

Figura

  1. Click Next
  2. Alegeti fisierul ce contine certificatele cu Browse. si click Next
  3. Introduceti parola care v-a fost furnizata.

Figura

  1. Click Finish.

Acum aveti in baza de date pt. Computer Account un certificat al autoritatii ce a eliberat certificatul (in Trusted Root Certification Authorities -> Certificates  in cazul nostru se cheama Pointersoft CA), cat si o cheie privata in Personal -> Certificates  

Windows XP/2000 are inclus by-default un client de VPN cu suport pentru PPTP si L2TP/IPSec.

Pentru a crea conexiunea catre serverul companiei se urmeaza pasii urmatori (dup ace in prealabil ati instalat certificatul corespunzator - vezi proced_Instalare_Certificate.doc):

  1. Start -> Control Pannel -> Network Connections -> Create a New Connection
  2. Connect to the Network at my workplace.
  3. Create the following Connection: Virtual Private Network;
  4. Alegeti Do Not Dial the initial Connection;
  5. Host Name: vpn.ourdomain.tld;
  6. My Use Only
  7. Finish.
  8. Se completeaza ca ma jos, cu exceptia campurilor User Name si Password;

Figura

  1. Se face click pe Properties   pentru a modifica cateva optiuni:

Figura

Figura

(Nu este necesara aceasta optiune, deoarece criptarea se face la primul nivel - IPSec, si ar fi inutile doua niveluri de criptare)

Figura

  1. Se clickeaza OK si se poate realiza conectarea.

5.4. IPsec pur vs L2TP/IPsec

5.5. Certificate digitale sau fraze secrete?

Trei motive principale ne fac sa alegem certificatele digitale:

cu certificate digitale putem sti cine se conecteaza si putem controla accesul

frazele secrete nu sunt la fel de sigure ca certificatele digitale

daca se fura un certificat digital, il revocam, ceilalti utilizatori neavand de suferit; daca insa se afla fraza secreta (care este unica pentru toti utilizatorii mobili), atunci trebuie sa o schimbam, si trebuie deci sa o distribuim tuturor utilizatorilor.

5.6. Rutare

Serverul VPN este un router de nivel 3 si trebuie configurat corespunzator pentru a face toate locatiile accesibile. Mai exact, un server VPN ar avea nevoie de urmatoarele:

ruta implicita care indica catre un firewall sau un router conectat direct la internet. Aceasta ruta face ca toate locatiile din internet sa fie accesibile.

una sau mai multe rute care insumeaza spatiul de adrese din intranet, ruta care sa indica catre un router intern.

Sunt si situatii particulare in care nu e nevoie de o configuratie speciala suplimentara. De exemplu atunci cand intranetul e format dintr‑un singur subnet (192.168.0.0/255.255.255.0).

Pe de alta parte, asigurarea accesibilitatii clientilor VPN din intranet depinde de cum este configurat serverul VPN sa ofere adrese IP clientilor. Acestea pot fi:

o clasa de adrese din acelasi subnet cu al intranetului

o clasa de adrese diferita de cea a intranetului

In primul caz serverul VPN devine un asa numit "arp proxy", ca si cum interfata lui ethernet ar avea toate adresele MAC ale clientilor VPN conectati la un moment dat la server. Cand un PC din LAN vrea sa comunice cu un PC conectat prin VPN care are un IP din acelasi subnet cu el (se afla sub acelasi mask), trimite un arp request, care este de fapt un broadcast. Serverul VPN recunoaste IP‑ul din acest arp request si trimite la randul lui un arp reply pretinzand ca pachetele pentru IP‑ul cautat trebuie trimise catre MAC‑ul intefetei lui Ethernet. Cand primeste pachetul il redirectioneaza clientului VPN, deoarece are cate o ruta peer‑to‑peer (adica cu mask‑ul 255.255.255.255) pentru fiecare IP al clientilor conectati.

In cel de‑al doilea caz lucrurile sunt mai simple din punct de vedere conceptual, fiind o situatie tipica de rutare: PC‑ul din LAN "vede" ca IP‑ul clientului VPN nu este in acelasi subnet cu el si nu mai trimite arp request, ci il trimite direct routerului default gateway pe care il are configurat. Apoi acest router, fie el chiar serverul VPN dar nu e neaparat sa fie asa, avand configurata ruta pentru aceasta clasa de adrese plaseaza pachetele pe ruta corecta.

Split tunneling

Semnificatia acestui termen este urmatoarea: La nivelul clientului de VPN se pot intampla doua lucruri: se adauga o ruta implicita pentru destinatiile necunoscute (internet) prin tunelul VPN, sau, ca o a doua varianta, nu se modifica ruta implicita, adaugandu‑se doar o ruta pentru clasa de adrese din care face parte IP‑ul alocat clientului. Diferenta dintre cele doua cazuri este semnificativa. Prima varianta este considerata cea mai sigura pentru ca in timpul conexiunii la serverul VPN, nu se mai pot stabili conexiuni cu clientul din internet. Mai mult decat atat, administratorul poate sa aplice politici de acces web, ftp, mail si asupra clientilor VPN. Singurul dezavantaj este ca serverul trebuie sa aiba o latime de banda suficienta pentru a accepta traficul internet al tuturor clientilor VPN. De exemplu, atunci cand utilizatorul conectat fiind la VPN‑ul corporatiei, deschide un browser si doreste sa acceseze o pagina web, tot traficul trece prin serverul VPN, putandu‑se face aici tot felul de filtrari sau contorizari ale accesului. Se poate chiar configura un proxy de http si ftp transparent, nefiind necesara o configuratie pe partea de client pentru acest lucru. In cealalta varianta (split tunnelling) este imperios necesara prezenta firewall‑ului pe partea de client. Daca acest firewall nu este prezent si securitatea sistemului de operare al clientului este compromisa printr‑un atac din internet, atacatorul poate obtine usor acces si asupra resurselor din interiorul corporatiei.

5.7. Chestiuni de firewall si NAT

Standardul IPsec foloseste urmatoarele protocoale IP si porturi:

protocolul UDP (17) portul 500 pentru negocierea parametrilor (IKE)

protocolul ESP (50) pentru traficul criptat propriu zis

protocolul UDP (17) portul 4500 pentru NAT‑T

Mai exact, in cazul scenariului retea la retea, presupunand ca ip‑urile celor doua capete ale tunelului sunt fixe, trebuie permise in firewall protocolul ESP si protocolul UDP portul 500 pe ambele gateway‑uri

Pentru scenariul "acces de la distanta" lucrurile nu mai sunt la fel de simple. Pe partea de server VPN trebuie permise toate cele 3 enumerate mai sus pentru a acoperi ambele cazuri: cand clientul se afla in spatele unui NAT sau are un IP routabil (Dial‑up). Cand utilizatorul se conecteaza prin Dial‑up firewall‑ul personal trebuie sa permita conexiuni pe UDP 500 si ESP atat pe directia inbound cat si outbound. Cand se conecteaza din spatele NAT, atat firewal‑ul personal (daca e prezent), cat si cel al NAT‑ului, trebuie sa permita doar: UDP 500 si UDP 4500 deoarece ESP‑ul este encapsulat in UDP 4500.

Ce este interesant pentru conexiunile VPN prin IPsec din spatele NAT‑ului este ca oricat de multi utilizatori se pot conecta simultan din spatele aceluiasi IP. Acest lucru nu este suportat de PPTP.

L2TP foloseste UDP 1701, dar nu avem de‑a face cu el decat pe interfetele ipsec din Linux si numai daca vrem sa filtram pe ele.

5.8. Considerente practice pentru implementare

Este foarte important sa alegem topologia corecta de VPN pe care urmeaza sa o implementam. In cele mai multe cazuri va fi suficient un tunel retea la retea, care va securiza tot traficul intre oricare doua noduri din cele doua retele. Pot aparea si situatii cand nu vrem sa permitem tuturor membrilor unei retele acces la cealalta retea remote. Aici se poate lucra din firewall cu acces bazat pe ip‑ul sursa. Cand, insa, este nevoie de acces doar de la un singur nod al unei retele catre cealalta retea ar fi inpractic sa construim un tunel intre retele. Aici e bine sa folosim topologia "remote access"

Pentru topologia retea la retea cel mai simplu si recomandat este sa se foloseasca tuneluri IPsec pure cu autentificare masina la masina. Pentru topologia acces de la distanta trebuie sa putem aloca clientilor ip‑uri virtuale, acestia trebuie sa poata initia conexiunea chiar cu drepturi de simplu user si mai trebuie sa existe un feedback din partea conexiunii catre utilizator, adica el trebuie sa stie daca e conectat sau nu. De aceea recomand folosirea L2TP/IPsec pentru acest scenariu. Pe parte de client Windows instalarea nu este necesara deoarece Windows are client de VPN preinstalat, iar configurarea este foarte simpla, setarile putand fi distribuite utilizatorului sub forma unui kitde instalare (Connection Manager Administration Kit).

5.9. Performante ale implementarii FreeS/WAN

Performantele acestei implementari sunt potrivite pentru cele mai multe aplicatii. La operare normala, principalul factor de luat in seama este incarcarea pe procesor pentru criptarea, decriptarea si autentificarea pechetelor IPsec.

Se poate gasi o formula care face legatura intre viteza procesorului si rata de procesare IPsec posibila. Nu este exacta pentru ca ar fi greu de gasit asa ceva, dar este suficient de corecta pentru a putea face niste estimari pentru necesarul hardware pentru un caz aparte. Tabelul urmator contine numarul de cicli utlilizati dintr‑un procesor Pentium II per fiecare octet procesat. Pentru criptare s‑a folosit algoritmul 3DES.

Tabel

IPsec

autentificare

criptare

cicli/byte

fara IPsec

nu

nu

nu

IPsec fara crypto

da

nu

nu

IPsec, doar autentificare

da

SHA-1

nu

IPsec si cu criptare

da

da

da

La 140 de cicli per octet procesat, un procesor la 140 Mhz poate procesa 8 Mbiti/s. Vitezele de procesare pentru alte procesoare sunt proportionale cu aceasta. Trebuie, insa luate in calcul si alte eventuale incarcari pe acelasi procesor. Urmatorul tabel arata o estimare mai practica:

Tabel

Interfata

Viteza procesorului in Mhz

Type

Mbit per
second

Estimate
Mbit*25

PC utilizabil

ca gw

Minimum with other load

(e.g. firewall)

DSL

25 MHz

whatever you have

133, or better if you have it

cable modem

75 MHz

any link, light load

125 MHz

200+, almost any surplus machine

Ethernet

250 MHz

surplus 266 or 300

fast link, moderate load

500 MHz

800+, any current off-the-shelf PC

T3 or E3

1125 MHz

Alte implementari

6.1. Hardware specializat

Folosirea hardware‑ului specializat este recomandata in acele scenarii in care numarul de conexiuni suportate simultan trebuie sa fie foarte mare, si administrarea ulterioara (dupa faza de configurare) sa nu fie foarte complicata. Principalul avantaj al acestor solutii este ca sunt cipuri special concepute pentru a face criptare si deci, performansele sunt pe masura. Dezavantajul lor principal este pretul foarte mare care poate fi prohibitiv pentru unii beneficiari (zeci de mii de dolari). Ar mai fi si dezavantajul limitarii in configurari, dar numai pentru produsele ieftine si mai putin renumite.

6.2. Alte solutii software

Mai exista si alte solutii software prin care se poate realiza un VPN. Respecta mai mult sau mai putin standardul IPsec asa cum este publicat in RFC‑uri, iar unele nu folosesc deloc IPsec ci alte metode non‑standard. Printre solutiile tip IPsec amintim: Kame, McAfee VPN, SSH Sentinel, isakmpd

6.3. Comparatie

Interoperabilitate intre solutii hardware dedicate si solutii software

Atunci cand facem planul unei solutii VPN trebuie sa anticipam incarcarea pe care aceasta solutie o va suporta imediat dupa punerea in functiune, dar si in viitorul apropiat.

Atunci cand nu este nevoie ca VPN-ul sa suporte mai mult de 100-200 conexiuni simultane, o solutie software (program instalat pe una din parti, sau pe amandoua) face fata. Problema se pune atunci cand sunt mai multi utilizatori, si cand un PC obisnuit (P3 - 800Mhz) deja nu mai face fata. Devine mai rentabila, in acest caz o solutie hardware dedicata, adica un VPN concentrator. Solutiile sunt numeroase, la fel si producatorii. Va prezint in tabelul de mai jos cateva din cele mai cunoscute solutii VPN si compatibilitatea dintre acestea:

FreeS/WAN VPN

Road Warrior

OE

PSK

RSA Secret

X.509
(necesita patch)

NAT-Traversal
(necesita patch)

Manual
Keying

Cele mai compatibile

FreeS/WAN  

Da

Da

Da

Da

Da

Da

Da

isakmpd (OpenBSD)  

Da

Da

Da

Nu    

Kame (FreeBSD,
NetBSD, MacOSX)
aka racoon  

Da

Da

Da

Da

Nu

McAfee VPN
was PGPNet  

Da

Da

Da

Da

Nu

Microsoft
Windows 2000/XP  

Da

Da

Da

Nu

SSH Sentinel  

Da

Da

Posibil

Da

Nu

Safenet SoftPK
/SoftRemote  

Da

Da

Da

Nu

Altele

6Wind  

Da

Nu

Alcatel Timestep  

Da

Nu

Apple Macintosh
System 10+  

Posibil

Da

Posibil

Posibil

Nu

AshleyLaurent
VPCom  

Da

Nu

Borderware  

Da

Nu

Nu

Check Point FW-1/VPN-1  

Da

Da

Da

Nu

Cisco with 3DES  

Da

Posibil

Da

Nu

Equinux VPN Tracker
(for Mac OS X)  

Da

Da

Da

Posibil

Nu

F-Secure  

Da

Posibil

Da

Da

Nu

Gauntlet GVPN  

Da

Da

Nu

IBM AIX  

Da

Posibil

Nu

IBM AS/400  

Da

Nu

Intel Shiva
LANRover/Net Structure  

Da

Nu

LanCom (formerly ELSA)  

Da

Nu

Linksys  

Posibil

Nu

Da

Nu

Lucent  

Partial

Nu

Netasq  

Da

Nu

netcelo  

Da

Nu

Netgear fvs318  

Da

Nu

Netscreen 100
or 5xp  

Da

Posibil

Nu

Nortel Contivity  

Partial

Da

Da

Nu

RadGuard  

Da

Nu

Raptor  

Da

Da

Nu

Redcreek Ravlin  

Da/Partial

Nu

SonicWall  

Da

Posibil

Nu

Nu

Sun Solaris  

Da

Da

Da

Nu

Symantec  

Da

Nu

Watchguard
Firebox  

Da

Da

Nu

Xedia Access Point
/QVPN  

Da

Nu

Zyxel Zywall
/Prestige  

Da

Nu

PSK

RSA Secret

X.509
(necesita patch)

NAT-Traversal
(necesita patch)

Manual
Keying

FreeS/WAN VPN

Road Warrior

OE

Tabel

Termenii din tabelul 3 semnifica:

Road Warrior = Utilizator mobil care de obicei are un ip dinamic in internet

Aplicatia practica

Aplicatia practica consta in realizarea unei topologii VPN hibride cu conexiuni atat site‑to‑site cat si acces de la distanta pentru utilizatori mobili. Conexiunile site‑to‑site vor fi realizate intre: doua gateway‑uri cu Linux Red Hat 9 si unul din cele doua si un al treilea cu Windows XP Professional (Figura 25).

In ceea ce priveste accesul de la distanta al utilizatorilor mobili (Figura 26), acestia nu vor nevoiti sa instaleze aplicatii client speciale. Pentru a‑si configura conexiunea ei vor folosi Wizard‑ul "New Connection" din Control Pannel .

Pentru a putea accesa nodurile de acces (RAS) din spatele unui router/firewall cu NAT, trebuie aplicat un patch sistemului de operare Windows XP. Acest patch este datat 21 octombrie 2003, ceea ce evidentiaza noutatea acestei tehnologii VPN. Windows a introdus optiunea NAT‑Traversal abia incepand cu Windows Server 2003, pentru variantele precedente de sistem de operare tip server de la Microsoft neexistand nici macar patch‑uri pentru a suporta NAT‑T.

Componentele software pe partea de Linux sunt:

FreeSWAN 1.99 cu NAT si X509

L2tpd daemon

ppp daemon

iptables

Pentru Windows se foloseste suportul pentru IPsec implementat direct in sistemul de operare, nefiind nevoie de instalarea vreunei aplicatii software 3rd party. Este foarte important sa fie activat Internet Connection Firewall pe conexiunea ininitiala a clientului la internet prin ISP‑ul sau! Pentru conexiunea VPN nu trebuie activat ICF.

Aplicatiile utilizate prin acest VPN sunt:

solutia de groupware de la Microsoft: Exchange 2003 impreuna cu Outlook XP si 2003;

aplicatia de contabilitate si gestiune NeoManager;

conexiuni Remote Desktop pe un server terminal Windows Server 2003 Enterprise;

videoconferinta prin NetMeeting;

nu in ultimul rand administrare servere si statii de lucru Linux si Windows de la distanta.

Resursele folosite pentru crearea VPN‑ului (excluzand statiile de lucru, laptopurile si serverele care au alte scopuri decat gateway‑uri de securitate), sunt:

1 PC Cyrix 100 Mhz cu 64 MB RAM, Red Hat 9

1 PC Pentium 133 Mhz cu 96 MB RAM, RedHat 9

1 PC Celeron 1,2 Ghz cu 128 MB RAM, Windows XP Professional

Fisierul de configurare /etc/ipsec.conf de pe serverele Linux este urmatorul:

# basic configuration

config setup

# THIS SETTING MUST BE CORRECT or almost nothing will work;

# %defaultroute is okay for most simple cases.

interfaces='ipsec0=eth1'

# Debug-logging controls: 'none' for (almost) none, 'all' for lots.

klipsdebug=none

plutodebug=none

# Use auto= parameters in conn descriptions to control startup actions.

plutoload=%search

plutostart=%search

# Close down old connection when new one using same ID shows up.

uniqueids=no

nat_traversal=yes

# defaults for subsequent connection descriptions

# (these defaults will soon go away)

conn %default

keyingtries=0

disablearrivalcheck=no

authby=rsasig

leftrsasigkey=%dnsondemand

rightrsasigkey=%dnsondemand

compress=yes

# connection description for opportunistic encryption

# (requires KEY record in your DNS reverse map; see doc/opportunism.howto)

conn me-to-anyone

left=%defaultroute

right=%opportunistic

keylife=1h

rekey=no

# for initiator only OE, uncomment and uncomment this

# after putting your key in your forward map

#leftid=@myhostname.example.com

# uncomment this next line to enable it

#auto=route

# sample VPN connection

conn sample

# Left security gateway, subnet behind it, next hop toward right.

left=10.0.0.1

leftsubnet=172.16.0.0/24

leftnexthop=10.22.33.44

# Right security gateway, subnet behind it, next hop toward left.

right=10.12.12.1

rightsubnet=192.168.0.0/24

rightnexthop=10.101.102.103

# To authorize this connection, but not actually start it, at startup,

# uncomment this.

#auto=add

conn L2TP-CERT

authby=rsasig

pfs=no

left=213.157.161.143

leftnexthop=213.157.161.1

leftrsasigkey=%cert

leftcert=/etc/ipsec.d/pointersoft.ro.pem

leftprotoport=17/1701

#

#

right=%any

rightrsasigkey=%cert

rightprotoport=17/1701

auto=add

keyingtries=1

conn bit-psro

## include si subnetul depozit (192.168.2.0/24)

left=213.157.161.143

leftsubnet=192.168.1.0/24

leftnexthop=213.157.161.182

#

right=213.157.161.182

rightsubnet=192.168.3.0/23

rightnexthop=213.157.161.143

authby=secret

auto=add

Pe serverul al treilea, Windows XP Professional am configurat parametrii IPsec in mod GUI din Microsoft Management Console, folosind aceiasi parametri ca si pe Linux. Singura observatie este ca trebuie adaugate cate doua reguli pentru fiecare tunel.

Figura

Figura

Ce facem cu pachetele care se potrivesc cu regula pe care am setat‑o? Negociem securitatea. Adica le trimitem criptat. Daca nu putem sa trimitem criptat le face discard.

Figura

Autentificarea se face prin certificate:

Figura

Setarea capetelor tunelului:

Figura

Figura . Exemplificarea topologiei site‑la‑site

Figura . Exemplificarea topologiei mixte de site‑la‑site si acces de la distanta

Anexa A - Definitii

Controlul accesului (en: Access Control)

Este un serviciu de securitate care impiedica utilizarea neautorizata a unei resurse, inclusiv prevenirea folosirii unei resurse in mod neautorizat. In contextul IPsec, resursa pentru care accesul este controlat poate fi:

Pentru un host, cicli masina sau date

Pentru un security gateway, o resea din spatele gateway‑ului sau latimea de banda din acea retea.

Anti‑replay

A se vedea "Integritate" mai jos

Autentificare

Acest termen este folosit informal pentru a se referi la combinatia a doua servicii de securitate distincte: autentificarea originii fatelor si integritate fara controlul conexiunii. A se vedeadefinitiile pentru acestea mai jos

Disponibilitate (en. Availability)

Privit ca un serviciu de securitate, se adreseaza problemelor de securitate generate de atacuri impotriva retelelor care nu permit sau care nu conosc serviciul. De exemplu, in contextul IPsec, folosirea mecanismelor de anti‑reply in AH si ESP suporta disponibilitatea.

Confidentialitate

Confidentialitatea este serviciul de securitate care protejeaza datele de accesari neautorizate. Principala problema a confidentialitatii in cele mai multe cazuri este divulgarea neautorizata a datelor de la nivelul aplicatie, dar dezvaluirea de caracteristici externe ale comunicatiei poate fi, de asemenea, o problema in unele cazuri. Confidentialitatea fluxului de date este serviciul care se adreseaza acestei ultime probleme, ascunzand adresele sursa si destinatie, lungimea mesajului, sau frecventa comunicatiei. In contextul IPsec, folosind ESP in modelul tip tunel, in special la nivelul unui security gateway, poate oferi un oarece nivel de confidentialitatea fluxului de date. (A se vedea, de asemenea, "Analiza traficului" mai jos).

Autentificarea originii datelor (en: Data Origin Authentication)

Autentificarea originii datelor este un serviciu de securitate care verifica identitatea presupusei surse a datelor primite. Acest serviciu este, de obicei, contopit cu serviciul de intergritate fara conexiune.

Criptarea (en: Encryption)

Criptarea este un mecanism de securitate folosit pentru a transforma datele dintr‑o forma inteligibila (plaintext) intr‑o forma neinteligibila (ciphertext), pentru a oferi confidentialitate. Procesul invers de transformare se numeste decriptare (en: decryption). De multe ori termenul de decriptare se refera generic la ambele procese.

Integritate (en: Integrity)

Integritatea este un serviciu de securitate care asigura ca modificarile aduse datelor pe parcursul rutei sunt detectabile. Integritatea se prezinta intr‑o gama variata de variante pentru a se potrivi cerintelor aplicatiei. IPsec suporta doua forme de integritate: fara conexiune, si o forma de integritatea secventelor partiale. Integritatea fara conexiune este un serviciu care detecteaza modificarile unei datagrame IP individuale, indiferent de ordinea datagramei intr‑un stream de trafic. Forma de integritatea secventelor partiale oferita in IPsec este referita ca integritatea anti‑reply, si detecteaza sosirea datagramelor IP duplicate (in cadrul unei ferestre date), Acesta este, spre deosebire de integritatea orientata pe conexiune, care impune cerinte de secventiere mai stricte asupra traficului, de exemplu de a putea detecta pierderea sau rearanjarea pachetelor. Cu toate ca serviciile de autentificare si integritate sunt discutate separat de cele mai multe ori, in practica ele sunt strans legate si aproape mereu oferite impreuna.

Protejat vs neprotejat

"Protejat" se refera la sistemele sau interfetele care sunt in interiorul granitei de protectie IPsec, si "neprotejat" se refera la sistemele sau interfetele care sunt in afara granitei de protectie IPsec. IPsec prevede o granita prin care traficul trece. Exista o nesimetrie a acestei granite care este reflectata in modelul de procesare. Datele care trebuie sa iasa, daca nu sunt ignorate sau lasate sa treaca sunt protejate prin aplicarea AH sau ESP si prin adaugarea headerelor corespunzatoare. Datele care vin spre noi (inbound data), daca nu sunt ignorate sau lasate sa treaca, sunt procesate prin indepartarea headerelor AH sau ESP. Conventia este ca traficul inbound sa fie considerat cel care intra intr‑o implementare IPsec dinspre interfata neprotejata. Traficul outbound intra din partea protejata a granitei, sau este intern generat de catre hostul pe care este implementat IPsec si iese prin interfata neprotejata. O implementare IPsec poate suporta mai mult de o interfata de fiecare parte a granitei. Interfata protejata poate fi interna, de exemplu intr‑o implementare IPsec pe un host care nu e router. Interfata protejata poate fi legata la o interfata socket layer a sistemului de operare.

Security Association (SA)

O conexiune unidirectionala logica, creata pentru securitate. Tot traficul care traverseaza o SA beneficiaza de aceeasi procesare. In IPsec, o SA este o abstractizare a nivelului internet implementat prin folosirea AH sau ESP. Informatiile de stare asociate cu o SA sunt reprezentate in SAD (Security Association Database)

Security Gateway

Un security gatewaz este un sistem intermediar care se comporta ca o interfata de comunicatie intre doua retele. Multimea de noduri si retele de pe partea externa a gateway‑ului de securitate se numeste "neprotejata", iar retelele si nodurile de pe partea interna sunt considerate ca "protejate". Subneturile si nodurile interne care comunica printr‑un SG sunt presupuse a fi de incredere din motivul ca partajeaza o administrare a securitatii comunca si locala. In contextul IPsec, o SG este un punct in care AH sau/si ESP sunt implementate pentru a "servi" o multime de host‑uri interne, oferindu‑le servicii de securitate atunci cand comunica cu host‑uri externe care au la randul lor IPsec implementat.

SPI

Prescurtare pentru Security Parameters Index. SPI este o valoare pe 32 de biti arbitrara folosita de un receptor pentru a identifica SA‑ul cu care trebuie sa se faca corespondenta pentru un pachet care tocmai a sosit. Pentru un SA de tip unicast, SPI poate fi folosit singur pentru a specifica o SA, sau poate fi folosit impreuna cu un tip de protocol IPsec. Informatii de adresa IP suplimentare sunt folosite pentru a identifica SA‑uri multicast. SPI este purtat in protocoalele AH si ESP pentru a permite sistemului destinatie sa aleaga ce SA va fi folosit pentru pachetul care tocmai a sosit. SPI are doar semnificatie locala, ca definit de initiatorul SA (de obicei destinatarul pachetului care poarta SPI‑ul); asadar un SPI este de obicei vazut ca un string de biti opac. Totusi, initiatorul unei SA poate alege sa interpreteze bitii dintr‑un SPI pentru a usura procesarea locala.

Analiza traficului (en: Traffic Analysis)

Analiza fluxului de trafic in retea cu scopul de afla informatie utila unui tert. Exemple de astfel de informatii sunt frecventa transmiterii datelor, identitatile partilor care discuta, marimea pachetelor, identificatori de flux etc.

Perfect Forward Secrecy

Se refera la faptul ca o singura cheie permite accesul la datele protejate de acea cheie. Pentru ca PFS sa existe, cheia folosita pentru a proteja transmisia datelor trebuie sa nu fie folosita pentru a deriva alte chei

ISAKMP

Ofera un cadru de lucru pentru autentificare si schimb de chei, dar nu le defineste. ISAKMP este destinat de a fi independent de schimbul de chei, mai exact, suporta mai multe metode de schimb de chei (key exchanges)

Oakley

Descrie o serie de metode de schimb de chei, numite moduri si detaliaza serviciile oferite de fiecare (de ex. PFS pentru chei, protejarea identitatii si autentificare).

SKEME

Descrie o tehnica versatila de schimb de chei care ofera anonimitate, rejectabilitate si regenerare rapida de chei.

Bibliografie

Ceaparu M. - Comunicatia prin intermediul retelelor de calculatoare. Ed. Tehnica, 1996.

Stephen Northcutt - Inside Network Perimeter Security: The Definitive Guide to Firewalls, Virtual Private Networks (VPNs), Routers, and Intrusion Detection Systems

Oleg Kolesnikov - Building Linux Virtual Private Networks.

CISCO - Cisco - SAFE VPN IPSec Virtual Private Networks in Depth

FreeS/WAN HowTo

RFC‑urile: RFC 2401, RFC 2406



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2985
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved