Documente Academic
Documente Profesional
Documente Cultură
IP Security
Servicii IP Security
Arhitectura IP Security
Managementul cheilor
2
In cazul utilizării IPSec pentru realizarea de reţele private virtuale,
autentificarea se face la nivelul porţilor de acces la reţelele locale sau al
gazdelor pe care este implementat IPSec; staţiile de lucru din reţelele locale
nu se pot autentifica, de asemenea aplicaţiile sau utilizatorii. Problemele
legate de autentificarea staţiilor de lucru şi a utilizatorilor impun pentru
multe aplicaţii utilizarea altor standarde de securizare, eventual suprapuse
implementării IPSec.
Implementarea IPSec nefiind obligatorie pentru IPv4, aplicaţiile
securizate prin IPSec nu sunt portabile, până la generalizarea IPv6, decât pe
maşinile pe care este implementat IPSec. Un alt dezavantaj actual pentru
IPSec în securizarea aplicaţiilor îl reprezintă faptul că majoritatea
implementărilor sunt scrise pentru sisteme de operare Windows.
3
încât să fie compatibilă atât cu varianta actuală IPv4, cât şi cu varianta
viitoare IPv6.
Aplicaţii al IP Security
4
Caracteristici ale utilizării IP Security
Servicii IP Security
5
Tabelul 2.1 Servicii asigurate de IPSec
AH ESP ESP
(criptare) (criptare şi autentif.)
Controlul accesului X X X
Autentificarea originii datelor X - X
Rejectarea pachetelor duplicate X X X
Confidenţialitate - X X
Confidenţialitate limitată asupra traficului - X X
Arhitectura IP Security
6
- Managementul cheilor: protocoalele de autentificare mutuală şi
schimb de chei.
- Domeniul de interpretare: valori care permit corelarea documentelor,
de exemplu: identificatori pentru algoritmii de autentificare şi
criptare care pot fi folosiţi, parametri operaţionali – de
exemplu: durata de viaţă a cheilor.
Asocieri de securitate
Un concept de bază, care apare în mecanismele IP pentru autentificare
şi confidenţialitate, este asocierea de securitate (SA-security association).
SA este o relaţie unidirecţională între o sursă şi o destinaţie care asigură
servicii de securitate traficului efectuat pe baza ei; pentru un schimb
securizat bidirecţional sunt necesare două asocieri de securitate. Serviciile
de securitate pot fi asigurate de o asociere de securitate fie pentru utilizarea
protocolului AH, fie a protocolului ESP, dar nu pentru ambele.
O asociere de securitate este definită în mod unic de trei parametri:
- Indexul parametrilor de securitate (SPI): un şir de biţi asignat
unei SA, cu semnificaţie locală; este inclus în header-ele AH şi
ESP pentru a permite sistemului de destinaţie să selecteze SA
pentru procesarea pachetului recepţionat.
- Adresa de destinaţie IP: nu sunt permise adrese multiple, este
adresa punctului de destinaţie final al SA, care poate fi un
sistem gazdă sau un sistem al reţelei – ruter sau firewall
- Identificatorul protocolului de securitate: indică dacă este o SA
pentru protocolul AH sau pentru protocolul ESP.
Parametrii unei SA
În orice implementare a IPSec trebuie să existe o bază de date a SA,
care defineşte parametrii asociaţi cu fiecare SA. O asociere de securitate
este în mod tipic definită de următorii parametri:
- Sequence Number Counter: un numărător de 32 de biţi pentru
generarea numărului de secvenţă utilizat în header-ul AH sau
ESP .
- Sequence Counter Overflow: un flag care indică dacă a avut loc
depăşirea numărătorului pentru numere de secvenţă şi
împiedică folosirea SA pentru transmiterea de noi pachete.
- Anti-Replay Window: permite detectarea repetării pachetelor.
7
- AH information: algoritmi de autentificare, chei criptografice, timp
de viaţă pentru chei, parametri legaţi de utilizarea AH.
- ESP Information: Algoritmi de criptare şi autentificare, chei
criptografice, valori de iniţializare, parametri legaţi de
utilizarea ESP.
- Lifetime of this Security Association: indică timpul după care SA
trebuie înlocuită cu o nouă SA (şi un nou SPI) sau desfiinţată şi
care din aceste acţiuni trebuie să aibă loc.
- IPSec Protocol Mode: indică modul tunel sau transport.
- Path MTU-Maximum Transmission UNIT: dimensiunea maximă a
pachetului care poate fi transmis fără fragmentare.
Selectori SA
Politica de securitate prin care traficul IP este corelat cu anumite SA
(sau cu nici o SA în cazul traficului care nu este controlat de IPSec) este
implementată prin Security Policy Database (SPD). Fiecare intrare în SPD
este definită printr-un set de valori definite de câmpuri ale formatului IP şi
ale formatului protocolului de nivel superior protocolului IP, numite
selectori şi conţine o SA pentru tipul respectiv de trafic. Exemple de
selectori: adresele IP pentru sursă şi destinaţie, denumirea protocolului de
transport, a protocolului IPSec (AH/ESP), adresele porturilor sursă sau
destinaţie. Aceşti selectori sunt folosiţi pentru a filtra traficul, astfel încât
fiecare pachet să fie procesat de o SA corespunzător politicii de securitate
implementate.
8
Mod transport Mod tunel
AH Autentifică unitatea de date Autentifică întregul pachet
IP şi, selectiv, parţi ale original IP plus, selectiv,
header-ului IP şi extensiile părţi ale noului header şi
header-ului IPv6. extensiile noului header IPv6.
9
- Authentication Data: conţine ICV – Integrity Check Value sau
MAC – Message Authentication Code pentru pachet.
Mecanismul anti-replay
La stabilirea unei noi asocieri de securitate SA, sursa iniţializează un
numărător de pachete cu valoarea zero; acesta va fi incrementat cu fiecare
pachet emis şi valoarea lui va fi scrisă în câmpul Sequence Number din
AH. La atingerea valorii 232– 1 sursa trebuie să termine SA curentă şi să
negocieze o nouă SA, cu o nouă cheie.
10
Deoarece IP asigură un serviciu fără conexiune, IPSec recomandă ca
destinatarul să implementeze o fereastra de recepţie W cu valoarea implicită
W=64. Limita superioară a ferestrei este reprezentată de N numărul de
secvenţă cel mai mare recepţionat pentru un pachet valid, iar limita
inferioară este N – W + 1. Numărul de secvenţă al pachetelor recepţionate
este folosit astfel:
1. Dacă pachetul este nou şi numărul lui de secvenţă este în
cadrul ferestrei, se verifică ICV. Dacă pachetul este
autentificat, poziţia corespunzătoare din fereastră este
marcată.
2. Dacă pachetul este nou şi numărul de secvenţă este mai mare
decât limita superioară a ferestrei, se verifică ICV. Dacă
pachetul este autentificat, se deplasează fereastra la noul
număr de secvenţă şi poziţia corespunzătoare pachetului este
marcată.
3. Dacă pachetul are numărul de secvenţă mai mic decât limita
inferioară a ferestrei sau dacă autentificarea eşuează, pachetul
este eliminat.
11
- header-ul AH cu excepţia câmpului Authentication Data care este
considerat de valoare zero, atât la sursă cât şi la destinaţie.
- unitatea de date a protocolului de nivel superior.
12
Fig 2.3 Formatele AH în mod transport şi în mod tunel
Protocolul ESP
13
- Padding
- Pad Length: indică numărul de octeţi ai câmpului imediat
precedent.
- Next Header: identifică tipul de date conţinute în câmpul Payload
prin indicarea primului header din acest câmp.
- Authentication Data: conţine ICV – Integrity Check Value
calculată asupra pachetului ESP minus câmpul Authentication
Data.
14
La fel ca protocolul AH, protocolul ESP permite utilizarea unui MAC
cu lungimea de 96 biţi iar specificaţiile curente impun compatibilitatea cu:
- HMAC-MD5-96
- HMAC-SHA-1-96
15
Etapele de operare în mod transport sunt următoarele:
- La sursă, blocul format din segmentul nivelului de transport plus
trailer-ul ESP sunt criptate şi textul clar este înlocuit cu textul
criptat pentru a forma pachetul IP de transmis; se adaugă şi
informaţia de autentificare, dacă s-a selectat această opţiune.
- Pachetul este rutat către destinaţie. Fiecare ruter intermediar
examinează şi procesează header-ul IP şi extensiile sale
necriptate, dar nu examinează textul criptat.
- Nodul de destinaţie examinează şi procesează header-ul IP şi
extensiile sale necriptate. Apoi, pe baza SPI – Indexul
Parametrilor de Securitate din header-ul ESP, nodul de
destinaţie decriptează restul pachetului pentru a reconstitui ca
text clar segmentul nivelului de transport.
16
extensiile sale necriptate, dar nu examinează pachetul textul
criptat.
- Firewall-ul de destinaţie examinează şi procesează header-ul IP
exterior şi extensiile sale necriptate. Apoi, pe baza SPI –
Indexul Parametrilor de Securitate din header-ul ESP, nodul de
destinaţie decriptează restul pachetului pentru a reconstitui ca
text clar pachetul IP încapsulat.
- Pachetul IP reconstituit este rutat în reţeaua locală către staţia de
destinaţie.
Managementul cheilor
17
- autentifică entităţile din schimbul Diffie-Hellman
pentru a contracara atacurile „man-in-the-middle”.
18
q = 21024 – 2960 - 1 + 264 x (2894 x + 129093 )
a=2
- Ridicare la putere modulo un număr de 1024 biţi
parametri nedeterminaţi
I >> R: CKYI , OK_KEYX, GRP, gx, EHAO, NIDP, IDI, IDR, NI, SI
cu SI = SKI[ IDI IDR NI GRP gx EHAO ]
R >> I: CKYR, CKYI , OK_KEYX, GRP, gy, EHAS, NIDP, IDR, IDI, NR,
NI,SR
cu SR = SKR[ IDR IDI NR NI GRP gy gx EHAS ]
I >> R: CKYI, CKYR , OK_KEYX, GRP, gx, EHAS, NIDP, IDI, IDR, NI,
NR,SI
cu SR = SKI[ IDI IDR NI NR GRP gx gy EHAS ]
Notaţii:
19
I = entitate care iniţiază schimbul de chei
R = entitatea care răspunde
CKYI, CKYR = cookies pentru I/R
OK_KEYX = mesaj de tip schimb de chei
GRP = numele grupului Diffie-Hellman utilizat pt. acest
schimb
gx, gy = cheia publică pentru I/R; gxy cheia de sesiune
EHAO, EHAS = funcţii de criptare, hash, autentificare
oferite/selectate
NIDP = nu se foloseşte criptarea pentru restul mesajului
IDI, IDR = identificatorul pentru I/R
NI, NR = nonces generate de I/R
SKI [X], SKR[ X] = indică semnătura pentru X cu cheia privata pentru
I/R
20
pe I că mesajul primit este răspunsul la mesajul său şi nu este o copie a unui
mesaj mai vechi.
21
Fig 2.6 Formatele ISAKMP
Toate unităţile de date utile încep cu acelaşi header generic prezentat
în figura de mai jos . Câmpul Next Payload are valoarea 0, dacă este ultima
payload din mesaj, altfel indică tipul următoarei payload.
22
Tip Descriere
CERT Certificate Utilizat pentru a transmite certificate şi informaţii legate de
acestea
CR Certificate Request Utilizat pentru a cere certificate; indică tipul de certificate cerute
şi autorităţile de certificare acceptate
HASH Hash Conţine date generate de o funcţie hash
SIG Signature Conţine date generate de un algoritm de semnătură digitală
NONCE Nonce Conţine o valoare nonce
N Notification Utilizat pentru a transmite notificări, de exemplu, o condiţie de
eroare
D Delete Indică invalidarea unei asocieri de securitate
23
AH sau a protocolul ESP şi alte date necesare. Cele două părţi se autentifică
reciproc folosind metoda cheilor publice; sunt utilizate certificate digitale.
Modul agresiv operează cu mai puţine schimburi de mesaje,
transferând mai multe informaţii în cadrul aceluiaşi schimb. Autentificarea
este mai puţin riguroasă ca în modul principal.
Cele două moduri menţionate au ca rezultat o asociere de securitate
care va fi folosită de protocolul IKE. După realizarea acestei asocieri,
protocolul IKE poate fi utilizat pentru a configura asocierea de securitate
curentă pentru un canal de comunicaţii securizat.
Modul rapid este utilizat pentru negocierea asocierilor de securitate
pentru IPSec. Deoarece între părţi a fost stabilit deja un canal sigur de
comunicaţii în timpul configurării iniţiale, modul rapid poate utiliza pachete
criptate. Rezultatul schimbului de mesaje utilizând modul rapid este
stabilirea a două asocieri de securitate, câte una pentru fiecare direcţie, între
gazdele care negociază canalul. Partea de la capătul de destinaţie al fiecărei
asocieri de securitate unidirecţionale alege un nonce care va fi folosit pentru
indexul asocierii de securitate - SPI şi îl comunică celeilalte părţi.
24
3. SNMP
Concepte de bază
Arhitectura SNMP
25
Securitatea informaţiei în protocolul SNMP
Număr Titlu
RFC 2271 An Architecture for Describing SNMP
Management Frameworks
26
Număr Titlu
RFC 2272 Message Processing and Dispatching for SNMP
RFC 2273 SNMPv3 Applications
RFC 2274 User-Based Security Model for SNMPv3
RFC 2275 View-Based Access Control Model (VACM) for
SNMP
Tabela 3.1
27
implementări ale mecanismelor de securitate, dar nu definesc un nou format
pentru SNMP PDU. Formatele existente, SNMPv1 PDU sau SNMPv2 PDU
sunt folosite în noua arhitectură. O implementare denumită SNMPv3 constă
în mecanismele de securitate şi caracteristici arhitecturale definite de
SNMPv3 şi formatele şi funcţiile PDU definite de documentele SNMPv2.
Concepte de bază
28
informaţiile de management de la agenţi şi pentru a transmite comenzi către
agenţi. Protocolul de management utilizează la rândul lui protocoalele de
comunicaţie aflate pe nivelurile inferioare, de exemplu TCP/IP.
Fiecare agent asigură o bază de date cu informaţii de management –
MIB, care conţine informaţii asupra configuraţiei locale şi a traficului;
aceste informaţii descriu atât starea curentă, cât şi succesiunea stărilor
anterioare. Fiecare staţie manager vor asigura un MIB global, care
centralizează informaţiile de la agenţi.
Specificaţiile SNMPv1 şi SNMPv2 sunt formate dintr-un set de
documente care definesc un protocol de management al reţelelor, o structură
generală pentru MIB, un număr de structuri de date MIB specifice anumitor
scopuri de management. Specificaţiile includ aplicaţii minimale de
management; nu sunt incluse facilităţi pentru interfaţa cu utilizatorul, astfel
încât este necesară implementarea unei aplicaţii de management care să
ruleze deasupra protocolului SNMP.
SNMP este conceput pentru a fi implementat cu un consum minim de
resurse de procesor şi de reţea; permite asigurarea unei structuri pentru
facilităţile de management. În esenţă, protocolul asigură patru funcţii:
Get: utilizat de un manager pentru a obţine o
înregistrare din MIB-ul unui agent
Set: utilizat de un manager pentru a modifica o valoare
în MIB-ul unui agent
Trap: utilizat de un agent pentru a trimite un mesaj de
alarmă unui manager
Inform: utilizat de un manager pentru a trimite un
mesaj de alarmă unui alt manager.
Arhitectura SNMP
29
Arhitectura SNMP, aşa cum este descrisă de RFC 2271, constă dintr-o
mulţime de entităţi SNMP distribuite, care interacţionează. Fiecare entitate
implementează o parte din posibilităţile SNMP şi poate acţiona ca un nod
agent, nod manager sau o combinaţie a celor două tipuri de noduri de reţea.
Fiecare entitate SNMP este formată dintr-o mulţime de module care
interacţionează unele cu altele pentru a asigura servicii. Aceste interacţiuni
pot fi modelate printr-un set abstract de primitive şi parametri.
RFC 2271 impune proiectarea unei arhitecturi modulare care să
îndeplinească următoarele cerinţe:
Să permită implementarea într-o gamă largă de
condiţii de operare, de la condiţii cu necesităţi
funcţionale minimale până la condiţii care să impună
implementarea unor facilităţi adiţionale, necesare
managementului reţelelor mari.
Să permită dezvoltarea unor componente ale arhitecturii
din cadrul standardului, chiar dacă nu există consens
asupra tuturor componentelor.
Să permită utilizarea unor modele de securitate
alternativă.
30
o Specificarea clară a strategiilor de coexistenţă şi
tranziţie.
31
Fig 3.2- Manager SNMP tradiţional
32
Toate tipurile de aplicaţii descrise utilizează serviciile asigurate de
maşina SNMP pentru această entitate:
Acceptarea PDU generate de aplicaţiile SNMP,
procesarea acestora – inclusiv inserarea codurilor de
autentificare şi criptare, încapsularea acestora în mesaje
pentru transmisie.
Acceptarea mesajelor SNMP de la nivelul de transport,
procesarea acestora – inclusiv autentificarea şi
decriptarea, extragerea PDU din mesaje şi pasarea
acestora aplicaţiilor SNMP corespunzătoare.
33
O implementare a subsistemului de securitate poate include mai multe
modele de securitate . RFC 2274 defineşte modelul USM – User-Based
Security Model.
34
35
Fig. 3.3 –Agent SNMP tradiţional
36
Aplicaţie Proxy Forwarder; retransmite mesaje între
entităţi.
37
SnmpEngineID Identificator unic al unei maşini
SNMP şi al entităţii SNMP care
corespunde acestei maşini
38
parametru în toate primitivele
SNMP (Dispacher, Message
Processing, Security, Access
Control)
Tabela 3.2. Terminologia SNMPv3.
39
sendPdu
processResponsePdu
40
pregătit, dispecerul returnează o indicaţie de eroare; în caz de succes,
dispecerul alocă un identificator sendPduHandle pentru PDU din mesaj şi
returnează această valoare către generatorul de comenzi. Generatorul de
comenzi memorează valoarea, astfel încât să poată stabili corespondenţa
dintre cererea iniţială şi răspunsul aferent.
Dispecerul livrează fiecare PDU primit ca răspuns către aplicaţia
generator de comenzi corespunzătoare, folosind primitiva
processResponsePdu.
41
Dacă accesul este permis, aplicaţia execută operaţia de
management şi pregăteşte un response PDU. Dacă
accesul nu este permis, aplicaţia pregăteşte un response
PDU care indică eroarea.
Aplicaţia apelează dispecerul cu primitiva
returnResponsePdu pentru a trimite response PDU.
42
corespunde acestei Report PDU şi retransmite Report
PDU către emiţătorul cererii sau notificării.
43
îndeplinite condiţiile pentru generarea acestuia. Acest
indicator este folosit numai dacă apar erori la citirea
PDU din mesaj (de exemplu la decriptare). Indicatorii
privFlag şi authFlag indică folosirea criptării,
respectiv a metodelor de autentificare; sunt permise
toate combinaţiile cu excepţia criptării fără
autentificare (privFlag=1 şi authFlag=0).
msgSecurityModel: un identificator al modelului de
securitate utilizat de expeditor pentru procesarea
mesajului; este un număr cuprins între 0 şi 231-1.
Valorile rezervate sunt 1 pentru SNMPv1, 2 pentru
SNMPv2, 3 pentru SNMPv3.
44
Modelul de securitate definit de RFC 2274 se numeşte USM - User
Security Model; asigură autenticitatea şi confidenţialitatea serviciilor pentru
protocolul SNMP. Acest model este proiectat pentru a contracara
următoarele tipuri de atacuri:
Modificarea informaţiei: o entitate poate modifica în
timpul tranzitului un mesaj generat de o entitate
autorizată pentru a efectua operaţii de management
neautorizate. Esenţa acestui atac constă în faptul că o
entitate neautorizată ar putea schimba orice parametru
de management, inclusiv pe cei legaţi de configurare,
comenzi, evidenţă.
Modificarea identităţii (masquerade): entităţi care
nu sunt autorizate pentru anumite operaţii pot încerca
să execute aceste operaţii prin asumarea identităţii
unei entităţi care are autorizarea necesară.
Modificarea fluxului de mesaje: SNMP este
proiectat pentru a lucra deasupra unui protocol de
transport fără conexiune; există deci posibilitatea ca
mesajele să fie reordonate, întârziate sau duplicate
pentru a se realiza operaţii de management
neautorizate.
Interceptarea informaţiei: o entitate poate urmări
schimburile de mesaje între un manager şi un agent
pentru a cunoaşte valorile pentru obiectele
administrate şi evenimentele care sunt notificate.
45
In cele mai multe cazuri, interzicerea accesului la
servicii nu poate fi deosebită de defecţiunile din reţea
pe care orice aplicaţie de management viabilă trebuie să
le administreze.
Este probabil ca interzicerea accesului la servicii să
afecteze orice schimb de informaţii prin reţea, nu numai
schimburile necesare unui protocol de management;
contracararea acestui tip de atac este o problemă de
securitate globală a reţelei.
În ceea ce priveşte analiza traficului, este util de
observat că succesiunea mesajelor unui protocol de
management este predictibilă, astfel încât rezultatele
analizei traficului nu sunt în general utile.
46
octeţi sunt folosiţi pentru generarea vectorului de iniţializare IV pentru
CBC. Deoarece DES utilizează o cheie de 56 de biţi, cel mai puţin
semnificativ bit din primii 8 octeţi este ignorat.
47
Desemnarea ca entitate cu autoritate a receptorului mesajelor care
conţin comenzi şi Inform PDU este justificată de efectul acestor mesaje
asupra operaţiilor de management al obiectelor, şi anume citirea sau
modificarea informaţiei din MIB; este normal ca receptorul să poată verifica
corectitudinea temporală pentru aceste mesaje deoarece întârzierea sau
repetarea lor poate avea efecte nedorite. Întârzierea unui mesaj Response
sau trap are efecte mai puţin importante.
48
msgAuthenticationParameters: este nul dacă nu se
foloseşte autentificarea pentru mesajul curent; în caz
contrar, este un parametru de autentificare: HMAC
dacă modelul de securitate este USM.
msgPrivacyParameters: este nul dacă nu se foloseşte
criptarea pentru mesajul curent, în caz contrar este un
parametru de criptare: valoarea destinată calculării
valorii iniţiale (IV) pentru algoritmul DES-CBC, dacă
modelul de securitate este USM.
49
Fig 3.6 – USM - procesarea mesajului
50
Mecanismul de verificare al corectitudinii temporale inclus de
USM asigură protecţia împotriva întârzierii şi a repetării mesajelor. Orice
entitate SNMP, pentru a putea fi entitate cu autoritate trebuie să actualizeze
două valori pentru evidenţa timpului local: snmpEngineBoots şi
snmpEngineTime. La instalarea iniţială a unei entităţi SNMP, aceste două
valori sunt setate la 0; apoi snmpEngineTime este incrementată la fiecare
secundă. Dacă snmpEngineTime atinge valoarea maximă, (231-1), atunci
snmpEngineBoots este incrementată, la fel ca la reiniţializarea sistemului,
iar snmpEngineTime este setată la 0 şi începe să fie incrementată din nou.
Entităţile fără autoritate trebuie să menţină, cu ajutorul unui mecanism de
sincronizare, estimări ale valorilor de timp pentru toate entităţile cu
autoritate cu care comunică. Valorile estimate sunt înscrise în fiecare mesaj
transmis şi permit entităţilor cu autoritate să determine dacă un mesaj a fost
recepţionat la timp.
Mecanismul de sincronizare: Fiecare entitate fără autoritate menţine o
copie locală pentru trei variabile ale fiecărei entităţi cu autoritate cu care
comunică:
snmpEngineBoots: cea mai recentă valoare pentru
entitatea cu autoritate
snmpEngineTime: evaluarea locală a
snmpEngineTime pentru entitatea cu autoritate aflată
la distanţă. Această valoare este sincronizată cu
entitatea de la distanţă prin procesul de sincronizare
descris mai jos. Între momentele de sincronizare,
această valoare este incrementată la fiecare secundă
pentru a menţine o corespondenţă aproximativă cu
entitatea cu autoritate.
latestReceiveEngineTime: cea mai mare valoare
pentru msgAuthoritativeEngineTime care a fost
recepţionat de entitatea locală de la entitatea cu
autoritate aflată la distanţă. Scopul acestei variabile
este de a contracara un atac prin repetarea mesajului,
care împiedică entitatea fără autoritate să incrementeze
valoarea estimată a snmpEngineTime.
51
păstreze sincronizarea, fiecare entitate cu autoritate inserează valorile sale
curente de timp şi valoarea snmpEngineID în fiecare mesaj Trap,
Response sau Report în câmpurile msgAuthoritativeEngineBoots,
msgAuthoritativeEngineTime, msgAuthoritativeEngineId. Dacă mesajul
este autentic şi dacă este recepţionat în fereastra de timp admisă, atunci
entitatea fără autoritate receptoare îşi actualizează variabile locale
(snmpEngineBoots, snmpEngineTime şi latestReceivedEngineTime)
asociate entităţii de la care s-a primit mesajul, conform următoarelor reguli:
1. O actualizare are loc dacă cel puţin una din următoarele două
condiţii este adevărată:
(msgAuthoritativeEngineBoots >
snmpEngineBoots) or
[(msgAuthoritativeEngineBoots =
snmpEngineBoots) and
(msgAuthoritativeEngineTime >
latestReceivedEngineTime)]
52
declarat autentic. Această restricţie este esenţială deoarece domeniul de
autentificare include msgAuthoritativeEngineID,
msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime; se
verifică astfel că aceste valori sunt valide.
SNMPv3 stabileşte că un mesaj trebuie să fie recepţionat într-o
fereastră (interval) de timp rezonabil pentru a se evita întârzierile şi
atacurile prin repetare. Fereastra de timp trebuie aleasă cât mai mică,
ţinându-se seama de acurateţea ceasurilor implicate, de întârzierile datorate
timpilor de propagare şi de intervalele la care sunt sincronizate ceasurile.
Dacă fereastra este prea mică, vor fi rejectate mesaje autentice, dacă
fereastra este mai mare, creşte vulnerabilitatea la atacuri.
Vom considera testarea corectitudinii temporale în cazul unui receptor
cu autoritate; cazul unui receptor fără autoritate este asemănător. Pentru
fiecare mesaj care a fost autentificat şi care are acelaşi
msgAuthoritativeEngineID cu snmpEngineId propriu receptorului,
receptorul compară valorile msgAuthoritativeEngineBoots şi
msgAuthoritativeTime din mesaj cu valorile locale snmpEngineBoots şi
snmpEngineTime. Mesajul primit este considerat în afara ferestrei de timp
dacă oricare din următoarele condiţii este îndeplinită:
snmpEngineBoots = 231-1 sau
msgAuthoritativeEngineBoots snmpEngineBoots
sau
valoarea pentru msgAuthoritativeEngineTime diferă
de valoarea pentru snmpEngineTime cu mai mult de
150s
53
La fel ca pentru sincronizare, testarea corectitudinii temporale se face
numai dacă serviciul de autentificare este utilizat şi dacă mesajul a fost
autentificat, autentificându-se implicit şi header-ul.
54
Această metodă de generare a cheii criptografice are două avantaje:
Creşte în mod semnificativ durata de găsire a cheii în
cazul unui atac cu forţă brută, care presupune generarea
tuturor cheilor posibile.
Separă cheile utilizatorului de sistemul de management al
reţelei (NMS – Network Management System). NMS nu
trebuie să stocheze cheile utilizatorului, aceste vor fi
generate de câte ori este nevoie plecând de la parolă.
55
autorizat să-l administreze. Dacă este compromisă cheia
criptografică pentru un agent, cheile pentru ceilalţi agenţi
să poată fi folosite în continuare.
Funcţiile de management al reţelei să poată fi
executate de utilizator din orice punct al reţelei,
independent de configurarea sistemului de management al
reţelei. Această cerinţă este satisfăcută în cazul SNMP prin
algoritmul de asociere parolă – cheie criptografică descris
anterior.
Un utilizator să nu fie obligat să administreze un
număr mare de chei, care să crească odată cu adăugarea de
noi agenţi administraţi.
Un adversar care descoperă cheia unui agent să nu
fie capabil să se substituie nici unei alte entităţi din reţea,
cu excepţia agentului respectiv.
56
one-way), cu diferite chei localizate pentru diferiţi agenţi. Procedura este
următoarea:
1. Se formează şirul digest2 prin concatenarea şirului:
digest1 (cheia criptografică unică), a cărui formare a fost
descrisă anterior, valoarea snmpEngineID pentru entitatea
autorizată, digest1.
2. Digest2 este folosit ca şir de intrare pentru algoritmul
MD5, dacă se doreşte o cheie de 16 octeţi, sau pentru
SHA-1, dacă se doreşte o cheie de 20 octeţi. Şirul rezultat
este cheia criptografică localizată pentru entitatea având
snmpEnginID utilizat de algoritm şi utilizatorul având
cheia digest1.
57
de acces. De exemplu, un agent poate să ceară autentificarea mesajului
pentru a permite scrierea în MIB, dar să permită citirea informaţiei fără
autentificarea mesajului. În plus, pentru anumite obiecte, agentul poate cere
ca mesajele de cerere şi de răspuns să folosească serviciul de criptare.
Contexte. Un context MIB este un concept legat de controlul
accesului şi reprezintă o submulţime a obiectelor administrate existente la
un agent. Contextele asigură un mod util de a asocia obiectele în mulţimi
cărora le corespunde o politică de acces diferită.
MIB-Views. Acest concept permite limitarea accesului unui anume
grup la anumite obiecte ale unui agent. Obiectele unui agent sunt organizate
în baza de date locală în mod ierarhic, în structuri arborescente. Un MIB-
view este definit ca o familie de structuri arborescente, pentru fiecare arbore
secundar putându-se specifica includerea sau excluderea sa dintr-un MIB-
view. Accesul la un context se realizează cu ajutorul MIB-view.
Politica de acces a modelului VACM permite configurarea anumitor
drepturi de acces pentru o maşină SNMP. Drepturile de acces sunt
determinate de:
Utilizatorul principal care face cererea de acces; modelul
permite ca un agent să permită drepturi de acces diferite
pentru diferiţi utilizatori. De exemplu, un manager de
sistem responsabil cu configurarea reţelei poate avea
dreptul de a modifica toate obiectele din MIB-ul local, în
timp ce un utilizator responsabil cu monitorizarea, poate
avea numai drepturi de citire, eventual numai pentru o
parte din obiectele din MIB-ul agentului. Utilizatorii
principali sunt organizaţi în grupuri, iar politica de acces
este definită cu referire la aceste grupuri.
Nivelul de securitate al mesajului SNMP cu care este
comunicată cererea; în mod normal, un agent va impune
autentificarea pentru mesajele care presupun operaţii de
scriere în MIB.
Modelul de securitate utilizat pentru procesarea
mesajului de cerere; dacă sunt implementate mai multe
modele pentru un agent, agentul poate fi configurat pentru
a asigura drepturi de acces diferite, în funcţie de modelul
de securitate după care a fost procesat mesajul.
Contextul MIB pentru cererea de acces.
58
Obiectul specific pentru care este cerut accesul; anumite
obiecte pot conţine informaţie mai critică pentru sistem
decât alte obiecte de acelaşi fel.
Tipul de acces; sunt definite trei tipuri: citire, scriere,
notificare, şi fiecărui tip i se poate aplica diferite politici de
control al accesului.
59
What: parametrul variableName este un identificator de
obiect; prefixul lui indică un tip de obiect, iar sufixul o
implementare particulară.
Which: Implementarea particulară a obiectului indică ce
informaţie este căutată.
60
4. SSL
Arhitectura SSL
Handshake Protocol
61
Protocolul SSL - Secure Socket Layer a fost iniţiat de Netscape
Communications în anul 1994 pentru asigurarea tranzacţiilor comerciale pe
Web; este inclus în browserele Netscape şi Microsoft Explorer. Protocolul
este compatibil cu peste 30 de algoritmi criptografici, inclusiv algoritmi
recenţi, de exemplu AES – Advanced Encryption Standard. Varianta SSLv3
reprezintă baza pentru protocolul TSL – Transport Layer Security, dezvoltat
ca standard pentru Internet în cadrul IEFT (RFC 2246).
Arhitectura SSLv3
62
SSL Record Protocol asigură servicii de securitate de bază pentru
protocoalele aflate pe nivelul superior, în particular pentru protocolul HTTP
– Hypertext Transfer Protocol, care asigură serviciile pentru comunicarea
client-server în aplicaţiile pentru Web. Trei protocoale de nivel înalt:
Handshake Protocol, Change Cipher Spec Protocol şi Alert Protocol, sunt
definite ca parte a SSL şi sunt folosite pentru managementul schimburilor de
informaţie SSL.
Specificaţia SSL utilizează conceptele de sesiune şi conexiune.
Sesiunea SSL este o asociere dintre un client şi un server; este creată de
Handshake Protocol şi defineşte un set de parametri criptografici care pot fi
partajaţi de mai multe conexiuni asociate aceleiaşi sesiuni. Sesiunile sunt
folosite pentru a evita negocierea parametrilor criptografici pentru fiecare
conexiune. Conexiunea este o legătură logică tranzitorie care asigură servicii
de transport între două entităţi asociate într-o sesiune. Între entităţile
pereche, aplicaţie http client / aplicaţie http server, pot există mai multe
conexiuni simultane.
O sesiune este asociată cu un număr de stări, corespunzătoare stabilirii
legăturii, recepţiei sau transmisiei. Conform specificaţiei SSL, starea unei
sesiuni este definită de următorii parametri:
Identificatorul de sesiune: o secvenţă arbitrară de
octeţi aleasă de server pentru a identifica o stare
activă sau în aşteptare.
Certificatul X509v3. al entităţii pereche;
parametrul poate fi nul
Metoda de compresie: algoritmul utilizat pentru
compresia datelor înainte de criptare.
Specificaţia criptografică: algoritmul de criptare,
algoritmul hash şi lungimea codului de autentificare
a mesajului.
Secretul principal: 48 de octeţi partajaţi de client şi
server.
Indicator: dacă sesiunea poate fi folosită pentru a
iniţia noi conexiuni.
63
Cheia secretă a serverului pentru autentificare
folosită la transmisia datelor de către server.
Cheia secretă a clientului pentru autentificare
folosită la transmisia datelor de către client.
Cheia secretă a serverului: cheia convenţională
folosită pentru criptare de către server şi pentru
decriptare de către client.
Cheia secretă a clientului: cheia convenţională
folosită pentru criptare de către client şi pentru
decriptare de către server.
Vectori de iniţializare folosiţi pentru cifruri bloc în
mod înlănţuit (CBC). Pentru fiecare cheie, există un
vector care este iniţializat de către SSL Handshake
Protocol; apoi blocul final al cifrului pentru fiecare
înregistrare este păstrat şi folosit ca vector de
iniţializare pentru înregistrarea următoare.
Numere de secvenţă. Fiecare entitate păstrează
numere de secvenţă separate pentru mesajele
transmise şi recepţionate în cadrul fiecărei
conexiuni; valoarea maximă admisă este 264-1.
64
Fig 4.2 Etapele protocolului SSL Record
65
hash(MAC_write_secret pad_2 hash(MAC_write_secret pad_1
seq_num
SSL.Compressed.type SSL.Compressed.length
SSL.Compressed.fragment))
unde:
= concatenare
MAC_write_secret = cheie secretă simetrică
hash = algoritm pentru hash: MD% sau
SHA-1
pad_1 = octetul 36H repetat de 48 de ori
pentru MD5 sau de
40 de ori pentru SHA-1
pad2 = octetul 5CH repetat de 48 de ori
pentru MD5 sau de
40 de ori pentru SHA-1
seq_num = numărul de secvenţă al mesajului
SSL.Compressed.type = protocolul de nivel superior care
procesează fragmentul
SSL.Compressed.length = lungimea fragmentului
SSL.Compressed.fragment = fragmentul după compresie (dacă nu
se foloseşte compresia, textul clar)
66
Fig 4.3 SSL Record Format
67
Handshake Protocol
68
Fazele stabilirii unei sesiuni sunt următoarele:
1. Atunci când un client este gata
pentru a stabili o legătură cu un server, clientul trimite un
mesaj iniţial, client_hello, care este folosit pentru a stabili
parametrii de securitate ai sesiunii. Acest mesaj informează
serverul asupra versiunii de protocol, ID-ului de sesiune,
suitei de algoritmi criptografici şi metodelor de compresie
disponibile pentru client. Mesajul conţine de asemenea date
generate aleatoriu de client. Mesajul server_hello conţine
numărul celei mai recente versiuni admisibile pentru server
şi client, un singur algoritm de cifrare selectat de server
dintre cele propuse de client şi date identice cu cele
recepţionate.
2. Opţional, clientul poate cere
autentificarea serverului. În acest scop, clientul utilizează
certificatul serverului. În primul rând, clientul verifică dacă
data de pe certificatul serverului este validă; apoi verifică
dacă autoritatea de certificare se află pe lista sa de CA de
încredere. Al treilea pas al autentificării serverului este
validarea semnăturii digitale a CA cu cheia publică
obţinută din certificatul CA. În acest moment clientul a
stabilit dacă certificatul serverului este valid sau nu.
Ultimul pas, opţional, verifică dacă adresa de reţea a
serverul corespunde cu numele de domeniu specificat în
certificat. Clientul este avertizat dacă autentificarea
serverului eşuează. În finalul acestei faze, serverul
transmite mesajul server_hello_done şi apoi aşteaptă un
răspuns al clientului.
3. Dacă serverul a cerut autentificarea
clientului, clientul trimite propriul certificat şi un set de
date semnate. Serverul execută paşii procesului de
autentificare.
4. Ultima fază, trimiterea de către
client, apoi de către server, a mesajelor change_cipher-
spec şi finished, încheie stabilirea unei conexiuni sigure
69
prin confirmarea parametrilor criptografici negociaţi, ca
parametri criptografici curenţi.
70