Securitatea comunicatiilor
Autor : Mirel Muresan
In prezent, una din problemele comunicatiei datelor o reprezinta securitatea
transmisiei si receptiei lor.
Securitatea reprezinta un proces - un mod de a gandi legat de sisteme,
retele, utilizatori si aplicatii care imbratiseaza un set de tehnologii.
Setul minim de cerinte pe care trebuie sa le respecte o aplicatie ce utilizeaza
sistemele bazate pe securitate sunt:
Confidentialitatea: mentinerea caracterului privat al informatiei
Integritatea: dovada ca respectiva informatie nu a fost modificata
Autenticitatea: dovada identitatii celui ce transmite mesajul
Non-repudierea: siguranta ca cel ce genereaza mesajul nu poate sa-l denigreze
mai tarziu
Toate aceste proprietati pot fi indeplinite prin utilizarea de chei publice
criptografice. Criptografia este considerata a fi o arta sau stiinta de
mentinere a mesajelor secrete, asigurand confidentialitatea prin criptarea
unui mesaj utilizand chei asociate cu un algoritm. Cheia utilizata trebuie
sa fie secreta ambelor parti, problema reprezentand-o managementul cheilor
si mentinerea lor secreta. Criptografia are la baza codificarea mesajelor,
un bloc fiind substituit prin altul, respectand anumite reguli. Codificarea
se poate realiza in mai multe moduri acestea avand urmatoarele proprietati
comune:
atat intrarile cat si iesirile sunt reprezentate ca stream-uri de octeti
criptarea unei date se realizeaza cu ajutorul unei chei
decriptarea datei se realizeaza tot cu o cheie
Criptarea se poate realiza cu chei simetrice sau asimetrice. Prima se
realizeaza cu aceeasi cheie la criptare si la decriptare, iar cealalta
cu chei diferite.
Criptarea asimetrica are avantajul ca una din chei (cea de criptare)
poate fi facuta publica. Aceasta cheie de criptare poate fi transmisa
oricui, in timp ce cheia de decriptare este detinuta de cel ce a criptat,
fiind denumita cheie privata. Un alt avantaj al cheilor asimetrice este
ca asigura identitatea. Daca o persoana X cripteaza un mesaj cu I cheie
privata si transmitandu-l unei persoane Y, aceasta il poate decripta cu
o cheia publica putem spune ca Y are certitudinea ca mesajul vine de la
X. Aceasta idee are la baza semnaturile digitale.
Criptarea simetrica are avantajul vitezei, fiind foarte utila la criptarea
fisierelor locale.
Combinand avantajele celor doua tipuri de algoritmi au aparut protocoalele
hibride care functioneaza astfel :
Protocol 1.a. Criptarea mesajului
(1) Generarea cheii simetrice K
(2) Criptarea mesajului M cu cheia simetrica si obtinand mesajul M*
(3) Preluarea cheii publice
(4) Criptarea cheii simetrice cu cheia publica si obtinerea lui K*
(5) Transmiterea perechii {K*,M*}
Protocol 1.b. Decriptarea mesajului
(1) Receptionarea mesajului {K*,M*} si separarea celor doua campuri
(2) Decriptarea lui K* cu ajutorul cheii private proprii pentru obtinerea
lui K
(3) Decriptarea lui M* cu K pentru obtinerea lui M
In acest caz se genereaza cate o cheie separata pentru fiecare sesiune
de mesaje cunoscuta sub numele de cheie sesiune . Criptarea mesajelor
ofera confidentialitate, dar acest lucru nu este suficient. In cazul unei
transmisii sau receptii trebuie sa existe certitudinea ca cel ce a generat
mesajul este o persoana autorizata, motiv care a dus la adaugarea de noi
proprietati cum ar fi integritatea si autentificarea, acestea fiind asigurate
cu ajutorul semnaturii digitale.
Pentru a intelege modul de functionare este nevoie de cunoasterea unui
al treilea algoritm si anume functiile de hashing. Acestea, spre deosebire
de algoritmii de criptare si decriptare realizeaza doar functia de criptare
iar mesajul original nu va fi recuperat niciodata. In principiu, un mesaj
are intotdeauna aceeasi valoare dupa aplicarea functiei si este imposibil
ca doua mesaje oarecare sa genereze aceeasi valoare. Prin utilizarea unei
astfel de functii se poate obtine o autentificare fara a cripta intreg
mesajul cu acea cheie privata astfel:
Protocol 2.a. Semnarea unui mesaj
(1) Efectuarea de hashing asupra mesajului M si obtinerea valorii H
(2) Criptarea lui H cu cheia privata (a celui ce transmite) si obtinerea
semnaturii S
(3) Transmiterea perechii {M,S}
Protocolul 2.b. Verificarea unui mesaj semnat
(1) Receptia {M,S} si separarea lor
(2) Efectuarea de hashing asupra lui M si obtinerea valorii H'
(3) Preluarea cheii publice apartinand celui ce a transmis
(4) Decriptarea lui S cu cheia publica si obtinerea lui H''
(5) Compararea lui H' cu H''
Daca H' si H'' sunt identice, mesajul a fost verificat corect, iar daca
nu, exista o eroare.
Pentru a putea construi cheia ce se utilizeaza in timpul transmisiei
se apeleaza la "o treia parte" de incredere denumita Autoritate
Certificatoare (CA - Certification Authority). Ea genereaza un Certificat
Digital ce genereaza o cheie publica. Cheia nu trebuie sa contina ambiguitati,
ingloband datele personale care apoi sunt impachetate si semnate.
Un Certificat Digital este un document ce contine patru componente mari:
o cheie publica
informatia ce leaga cheia publica de detinatorul ei
informatia de validitate a certificatului
semnatura digitala
Certificatele sunt clasificate ca: certificate self-signed si certificate
CA-signed. Primul este semnat de detinatorul cheii iar al doilea de o
alta persoana cu autoritate. Ele functioneaza ca si containere de chei
publice iar informatia tipica include:
numele detinatorului,
e-mail-ul acestuia,
numele companiei,
telefonul,
informatii legate de certificat,
un numar serial,
un indicator de nivel de incredere,
data a generarii,
data a expirarii.
Informatia colectata si detinuta de proprietar este referita de nume distincte
(sau Dname). Un certificat contine doua Dname: al detinatorului si al
celui ce l-a generat.
Non-repudierea este o alta proprietate a securitatii oferind certitudinea
ca cel ce transmite mesajul nu poate sa nege mai tarziu ce a transmis.
Din cele prezentate putem sa observam ca: integritatea, confidentialitatea
si non - repudierea sunt asigurate prin criptografia cheilor publice.
Pentru aceasta trebuie insa sa se stie: cine genereaza certificatul, unde
este stocata cheia si unde se gasesc certificatele? Un certificat digital
bazat pe infrastructura cheilor publice (PKI - Public Key Infrastructure
) asigura rezolvarea tuturor problemelor.
Componentele PKI sunt :
Autoritatea Certificatoare (CA): responsabila cu generarea si revocarea
certificatelor
Autoritatea Registratoare (RA): responsabila cu verificarea constructiei
generate de cheile publice si identitatea detinatorilor.
Detinatorii de Certificate (subiectii) : Oameni, masini sau agenti software
care detin certificate si le pot utiliza la semnarea documentelor.
Clientii: ei valideaza semnatura digitala si certificarea de la un CA.
Depozitele: stocheaza si fac accesibile certificatele si Listele de Revocare
a Certificatelor (CRLs -Certificate Revocation Lists)
Politicile de securitate : definesc procesele si principiile de utilizare
a criptografiei.
Dintre functiile realizate cu ajutorul PKI putem mentiona:
Inregistrarea : este un proces in care cel ce doreste sa obtina un certificat
de la CA isi prezinta atributele sale. Acestea sunt verificate iar apoi
se elibereaza certificatul .
Certificarea: este procesul in care CA elibereaza certificatul ce contine
cheia publica subiectului apoi il depune intr-un depozit public.
Generarea Cheilor: in multe cazuri subiectul genereaza o pereche de chei
in mediul sau, inainte de a transmite cheia publica la CA pentru certificare.
Daca CA raspunde pentru generarea cheilor, acestea sunt oferite subiectului
ca un fisier criptat sau token fizic asemeni unui smartcard.
Recuperarea Cheilor: in unele implementari PKI necesita ca toate cheile
schimbate si/sau criptate sa fie depuse intr-un depozit securizat. Ele
sunt recuperabile daca subiectul pierde cheia, acest lucru revenind lui
CA sau sistemului de recuperare.
Actualizarea Cheilor: toate cheile perechi si certificatele lor asociate
trebuiesc actualizate la un interval regulat. In acest sens exista doua
situatii care necesita acest lucru:
Data care este specificata in certificat ca data de expirare este depasita
si se actualizeaza.
Cheia privata a uneia din entitati din PKI este compromisa. In acest caz
PKI trebuie sa anunte ca vechiul certificat nu mai este valid si urmeaza
sa-l inlocuiasca. Una din cai este de pre-generare si stocare securizata
a perechilor de chei pentru astfel de situatii. Actiune ce duce la informarea
fiecarui utilizator de acest lucru. Alta cale este metoda "out-of-band"
unde cu ajutorul telefonului, faxului, scrisorii se transmite acea cheie.
Certificarea incrucisata: permite utilizatorilor dintr-un domeniu administrativ
sa utilizeze certificate generate de un CA operational in alt domeniu.
Procesul implica un CA (CA_1) ce ofera o certificare pentru alt CA(CA_2).
Acest certificat contine cheia publica CA asociata cu cea privata pe care
CA_1 o utilizeaza, lucru ce permite subiectilor certificati prin CA_2
sa accepte certificatele generate de CA_1 sau orice CA subordonat.
Revocarea: apare in momentul expirarii perioadei de validitate care poate
aparea cand: subiectul isi schimba numele, angajatul paraseste compania,
cheia privata este compromisa. In cadrul standardului X.509, pentru a
revoca un certificat se utilizeaza Lista Revocarilor Certificatelor (CRL
- Certificate Revocation List). Aceasta lista identifica certificate si
sunt semnate de CA.
Criptarea prin chei publice si implementarea lor in certificate digitale
bazate pe sisteme de securitate se face pe baza unor retele standardizate
si protocoale cum ar fi:
SSL (Secure Sockets Layer) - este un protocol non-proprietar deschis,
dezvoltat de Netscape si care asigura securitate in comunicatii. Este
acceptat de standardul WEB pentru autentificare si criptare client-server
utilizand ca protocol de transport TCP/IP si poate rula pe protocoale
ca HTTP, Telnet. El utilizeaza chei publice criptografiate.
Principiul de functionare este urmatorul:
(1) Clientul se conecteaza la un server SSL
(2) Clientul cere sa initieze o sesiune securizata
(3) Serverul intoarce: pot / nu pot suporta SSL
(4) Clientul si serverul comunica informatia securizata pas cunoscut
sub denumirea de "handshaking" .
(5) Clientul specifica ID-ul sesiunii, algoritmii de criptare si metodele
de compresie.
(6) Serverul poate face selectia utilizand aceasta informatie si schimba
daca este nevoie certificatele
(7) Serverul specifica o cheie a sesiunii apropiata de algoritmii de
criptare alesi la "handshaking".
(8) Clientul si serverul comunica in securitate.
O sesiune SSL implica doua protocoale separate : SSL Record Protocol
si SSL Handshake Protocol. Primul controleaza transmisia datelor in cadrul
sesiunii iar celalalt schimbul de mesaje intre client si server cand stabilesc
prima data conexiunea. Tehnica criptarii genereaza multe pachete, incetinind
transmisia.
SSL 3.0 este cel mai utilizat si suportat de majoritatea WEB si serverelor
Internet .
TLS (Transport Layer Security) - este ultima versiune SSL.
S/MIME (Secure Multi-Purpose Internet Mail Extensions) - este un standard
utilizat in transmiterea de e-mail in securitate. Permite criptarea informatiei
si include certificatul digital ca o componenta in mesaj. El asigura functiile:
Confidentialitate, doar cel ce receptioneaza poate citi posta
transmisia nu poate fi alterata
clientul poate semna si include semnatura care garanteaza receptia
utilizeaza etichete pentru controlul accesului la mesajele securizate.
permite mesajelor criptate sa fie transmise prin agenti intermediari care
le pot cripta si transmite la recipientele dorite.
S/MIME ofera integritate si autentificare oricarui pachet e-mail si in
prezent a este implementat la nivel industrial.
WTLC - este o versiune wireless al standardului TLS transformarea fiind
bazata pe necesitatea suportarii datagramelor in mediile de banda larga.
Pentru aceasta el utilizeaza un handshake optimizat prin refresh al cheilor
dinamice. Acesta permite cheilor criptate sa fie actualizate regulat intr-o
sesiune.
OCSP (On line Certificate Status Protocol) - specifica o sintaxa mesaj
cerere-raspuns intre aplicatia client care solicita revocarea certificatului
si aplicatia server care cunoaste starea certificatului revocat. OCSP
server poate asigura informatii aditionale accesibile prin CRL.
Principiul functionarii este urmatorul :
(1) Aplicatia transmite cererea de a cunoaste starea certificatului la
serverul OCSP, acesta transmite o semnatura digitala care reprezinta "bun",
"revocat" sau "necunoscut"
(2) Cel identificat ca "bun" indica la minim ca certificatul
nu a fost revocat la momentul cererii, ulterior el putand aparea ca revocat
(3) "revocat" indica ca respectivul certificat a fost revocat
(4) "unknown" indica ca nu cunoaste respectivul certificat.
Din cele prezentate se observa ca in cazul dezvoltarii de aplicatii ce
utilizeaza Internetul sau Intranetul, cerintele unei bune securitati sunt
confidentialitatea, integritatea, autentificarea si non-repudierea. Toate
acestea se realizeaza prin utilizarea cheilor publice criptografiate in
Certificate Digitale si care utilizeaza protocoale ca SSL sau S/MIME
Muresan Mirel este informatician in cadrul BCD ROMEXTERRA SA Sucursala
Alba, e-mail: m.muresan@mailcity.com
Acest articol a aparut in revista NET Report Nr 100 / Ianuarie 2001 webmaster@pcreport.ro
Nota
Dreptul de autor pentru acest articol apartine in totalitate si in mod exclusiv autorului acestuia .
|