PEM – STANDARDUL DE POSTA ELECTRONICA CU FACILITATI DE SECURITATE Scopul proiectului PEM (Privacy Enhanced Mail) il constituie asigurarea securitǎtii transmisiilor intre utilizatorii postei electronice din Internet. Eforturile au inceput in 1985 in cadrul comisiei PSRG (Privacy and Security Research Group), sub auspiciile consiliului IAB (Internet Architecture Board). Rezultatele cercetǎrii s-au concretizat in RFC-urile (Request for Coment) 1421-1424 care constituie propuneri de standarde Internet. Aceste RFC-uri sunt produsul grupului de lucru PEM din interiorul IEFT (Internet Engineering and Task Force), care face parte din IAB. 1.1 Servicii de securitate pentru posta electronica Standardul PEM oferǎ o varietate de servicii de securitate pentru utilizatorii postei electronice: confidentialitatea (secretizarea) mesajelor; autentificarea originii mesajelor; integritatea legǎturii in retea; nerepudierea mesajelor prin dovedirea originii. Aceste servicii, definite si in modelul de referintǎ al securitǎtii OSI, pot fi divizate in douǎ grupe: toate mesajele prelucrate in PEM incorporeazǎ facilitǎtile de autentificare, integritate si nerepudiere; confidentialitatea este un serviciu optional, la alegerea utilizatorului. (a)Confidentialitatea protejeazǎ continutul mesajelor impotriva citirii lor neautorizate, de cǎtre alte persoane decat receptorii specificati de emitǎtor. Obiectivul acestei protectii il constituie fie ascultarea si inregistrarea neautorizatǎ a traficului de pe liniile de comunicatii, fie posibilitatea accesului la cutiile de scrisori, care sunt de fapt niste fisiere disc; impotriva unor astfel de atacuri se preferǎ secretizarea (criptarea) mesajelor. (b)Autentificarea originii mesajelor permite receptorului unui mesaj prin posta electronicǎ sǎ determine in mod sigur identitatea emitǎtorului scrisorii. Este un serviciu de securitatea foarte necesar astǎzi, cand in sistemele de postǎ electronicǎ este relativ usor sǎ fortezi emiterea unor scrisori in numele unor alti utilizatori. Acest lucru creeazǎ mari semne de intrebare asupra credibilitǎtii mesajelor primite pin postǎ. (c)Integritatea legǎturii in retea furnizeazǎ receptorului cǎ mesajul primit este identic cu mesajul emis la origine. Acest serviciu protejeazǎ impotriva unor atacuri care vizeazǎ modificarea mesajelor aflate in tranzit prin retea. Sǎ observǎm cǎ, desi cele douǎ servicii de autentificare si de integritate au fost descrise separat, ele sunt furnizate de obicei in tandem. (d)Impiedicarea nerecunoasterii mesajului de cǎtre expeditor (nerepudierea mesajelor) garanteazǎ integritatea si originea datelor din punctul de vedere expeditorului, nu al destinatarului. Se impiedicǎ astfel ca expeditorul unui mesaj de postǎ electronicǎ sǎ nege transmiterea scrisorii. De asemenea, se permite scrisorilor sǎ fie transmise mai departe la alti destinatari, care sǎ poatǎ verifica identitatea originii (nu numai a intermediarului) mesajului. La receptie, se poate verifica cǎ mesajul nu a fost alterat, inclusiv (ulterior) de cǎtre emitǎtorul sǎu autentic. O utilizare foarte importantǎ a acestui serviciu este in comert, cand trebuie transmise prin e-mail ordine de comandǎ sigure, care sǎ fie apoi confirmate si a cǎror receptie sǎ poatǎ fi doveditǎ. 1.2 Integrarea PEM in sistemele de postǎ electronicǎ Incǎ din proiectare s-a intentionat ca PEM sǎ fie utilizat in conjunctie cu sistemele de postǎ electronicǎ existente la ora actualǎ in Internet. Implementarea serviciilor de securitate in conformitate cu standardul PEM se face peste infrastructura de postǎ electronicǎ existentǎ. Existǎ douǎ variante de integrare: Cu includerea functiilor de securitate in User Agent (UA); avantajul acestei variante constǎ in obtinerea unei interfete mai bune cu utilizatorul. Farǎ modificarea User Agent-ului, prin realizarea unui filtru de securizare a mesajelor in exteriorul UA. Avantajele acestei variante sunt: posibilitatea folosirii filtrului in conjunctie cu o gama largǎ de programe existente de tip UA si excluderea problemelor de integrare. User A User B User Agent Filtru PEM Editor
User Agent
RFC 822 Mail Transfer Agent UserUUUUrrt Filtru PEM
SMTP POP (RFC 821) (RFC 1225) SMTP (RFC 821)
Message Transfer System
Mail Transfer Agent Mail Transfer Agent
Fig 1.1 Integrarea PEM in sistemele de posta actuale 1.3 Algoritmi criptografici folositi in PEM Pentru a se putea folosi serviciile de securitate oferite de PEM, acesta foloseste o varietate de algoritmi criptografici, acestia fiind necesari pentru cifrarea mesajelor, pentru distributia cheilor criptografice folosite in cifrare si descifrare, pentru verificarea integritǎtii mesajelor si pentru autentificarea emitǎtorului si receptorului de mesaj. In cazul sistemelor criptografice simetrice (cu cheie secretǎ) se foloseste aceeasi cheie atat la cifrarea cat si la descifrarea mesajelor. Cheia este secretǎ si folositǎ in comun de cǎtre emitǎtor si receptor. PEM foloseste sisteme simetrice pentru a asigura secretizarea continutului scrisorilor. In sistemele criptografice asimetrice (cu chei publice) se foloseste in procesele de cifrare si de descifrare, o pereche de chei distincte (dar matematic legate una de alta). Una dintre chei este tinutǎ secretǎ si este cunoscutǎ doar de proprietarul ei. In acelasi timp, cealaltǎ cheie (perechea ei) este fǎcutǎ publicǎ, de unde si numele de criptografie cu cheie publicǎ. Sistemele criptografice cu chei publice sunt folosite de PEM in procesul de semnǎturǎ digitalǎ si de distributie sigurǎ a cheilor de cifrare. Standardele PEM nu specificǎ in mod concret algoritmii criptografici care sǎ fie folositi pentru asigurarea serviciilor de securitate. Un standard separat (RFC 1423) identificǎo listǎ de algoritmi care pot fi folositi in PEM, listǎ care poate fi imbogǎtitǎ odatǎ cu definirea altor algoritmi. Algoritmii criptografici, in contextul PEM-ului, sunt folositi in trei scopuri: Criptarea datelor Dacǎ se doreste serviciul de confidentialitate a datelor, atunci reprezentarea ASCII a mesajului este trecutǎ printr-un algoritm de criptare a datelor. Acesta poate fi: DES (in varianta CBC) sau IDEA (in vriantele CBC sau CFB). Parametrii acestui algoritm (fiecare de 8 octeti) sunt: cheia de criptare a datelor (DEK – Data-Encryption Key); vectorul de initializare (IV – Initialization Vector). Integritatea mesajelor Dacǎ se doresc serviciile de securitate, de integritate si de autentificare a expeditorului, atunci reprezentarea ASCII a mesajului interior este trecutǎ printr-un algoritm de dispersie (hash) denumit Message Digest (MD). Algoritmul va realiza un rezumat (digest) al mesajului, numit MIC (Message Integrity Check). In standardul PEM sunt definiti trei algoritmi in acest scop: RSA-MD5 (RFC 1321); RSA-MD2 (RFC 1319); MAC (Message Authentification Code) – calculat folosind varianta CBC a DES. Criptarea cheilor Dupǎ ce au fost generate, cheile de criptare a si MIC-urile sunt trimise la receptor ca parte a mesajului PEM. Este folosit un algoritm special de criptare a cheilor. La momentul actual sunt definiti trei algoritmi in acest scop: DES-ECB (varianta Electronic CodeBook a lui DES); DES-EDE (varianta Encrypt-Decrypt-Encrypt sau Triple Encryption a lui DES); RSA (algoritmul de criptare cu chei publice RSA) In cadrul standardelor PEM se incurajeazǎ folosirea sistemelor cu chei publice in distributia cheilor, datoritǎ usurintei gestionǎrii lor in comunitǎtile de utilizatori numeroase si foarte larg distribuite. Abordarea sistemelor cu chei publice in standardul PEM se face utilizand conceptul de certificat, asa cum a fost el definit in recomandǎrile CCITT X.509. Un certificat de cheie publicǎ reprezintǎ o structurǎ de date folositǎ pentru a se putea asocia in mod sigur o cheie publicǎ la niste atribute de utilizator. Atributele pot fi, de exemplu, informatii de identificare (nume, adresǎ) sau informatii de autorizare (dreptul de a folosi o resursǎ). In structura certificatului sunt urmǎtoarele campuri: ► Versiunea – permite sǎ se facǎ distinctie intre versiuni succesive ale formatelor de certificat; ► Numǎrul serial – identificǎ in mod unic certificatul intre cele emise de aceeasi entitate; ► Algoritmul de semnǎturǎ – identificǎ algoritmul folosit pentru calcularea semnǎturii digitale la acel certificat; ► Emitent – contine numele distinct al entitǎtii (autoritǎtii) care a creat certificatul si garanteazǎ pentru legǎtura corectǎ cheie publicǎ – subiect; este vorba de numele autorului certificatului; ► Subiect – contine numele distinct al entitǎtii care reprezintǎ subiectul certificǎrii si propritarul cheii publice cuprinse in certificat; ► Valabilitate – cuprinde intervalul de timp (data de inceput si cea de sfarsit) in care certificatul este valabil; ► Cheie publicǎ subiect – contine un identificator al algoritmului folosit precum si parametrii ceruti de algoritm, care constituie cheia publicǎ a subiectului – proprietar al certificatului; ► Semnǎtura – contine semnǎtura digitalǎ a certificatului si este adǎugatǎ celorlalte campuri ale acestuia. De exemplu, functia de dispersie poate fi MD5, iar algoritmul cu chei publice, RSA. Semnǎtura se aplicǎ de cǎtre autoritatea Emitentǎ, folosind cheia sa privatǎ si poate fi verificatǎ oriunde, folosind cheia publicǎ a Emitentului. Dupǎ cum se vede, problema obtinerii cheii publice a unui utilizator Subiect constǎ in validarea semnǎturii digitale a certificatului acestuia, care se face cu cheia publicǎ a Emitentului. Obtinerea cheii publice a Emitentului este o problemǎ similarǎ de validare a certificatului acestuia. Ca urmare, procesul de validare a certificatelor este recursiv si se bazeazǎ pe un graf de certificare. 1.4 Prelucrarea unei scrisori PEM De regulǎ, autorul unui mesaj de postǎ electronicǎ securizatǎ este un utilizator obisnuit, nu un specialist in criptografie si, de aceea, se doreste minimizarea implicǎrii sale in tehnologia de securizare a mesajului. Un mesaj PEM este format din header-e (antete), urmate de un corp. Un mesaj de postǎ electronicǎ este format, de fapt, din trei mesaje imbricate: mesajul exterior – mesajul ce este prezentat MTA-ului local. corpul acestui mesaj constǎ dintr-un “mesaj cu securitate sporitǎ”; mesajul cu securitate sporitǎ – contine informatia ce furnizeazǎ serviciile de sporire a securitǎtii. Corpul acestui mesaj este numit “mesajul interior”; mesajul interior – mesajul pe care doreste sǎ il trimitǎ expeditorul (originator) in forma lui de inainte ca serviciile de securitate sǎ fie apelate; el va fi disponibil in mailbox-ul destinatarului (recipient) dupǎ ce aceste servicii de securitate si-au fǎcut treaba, transmitand in conditii sigure mesajul la destinatie. O scrisoare este formatǎ din douǎ zone: antetul mesajului si continutul mesajului. Datele continute in antet vor trece de obicei nemodificate prin prelucrǎrile PEM. Poate face exceptie campul Subiect-scrisoare care, dacǎ este senzitiv, poate fi omis sau inlocuit cu o informatie benignǎ (“Encrypted Message”). In orice caz, este necesar ca identificatorul receptorului sǎ rǎmanǎ in clar, deoarece pe baza lui se controleazǎ procesul de criptare. In posta electronicǎ Internet, antetul este separat de continut printr-o linie de spatii (blancuri). In cazul folosirii PEM, in cadrul continutului mesajului sunt mai multe campuri care constituie antetul-PEM si care sunt despǎrtite prin separatori proprii. Aceste informatii din antetul-PEM sunt folosite de receptor pentru a valida integritatea si autenticitatea mesajului primit si pentru a descifra mesajul. Dupǎ acest antet-PEM, inainte de mesajul propriu-zis, este o linie de spatii. Intreg mesajul PEM (continutul mesajului) este bornat la inceput si la sfarsit de douǎ mesaje separatoare. In standardele PEM se definesc patru tipuri de mesaje PEM care permit realizarea a diferite combinatii de servicii de securitate: 1)MIC-CLEAR – este un tip de mesaj care foloseste un algoritm criptografic pentru verificarea integritǎtii si autenticitǎtii mesajului (MIC); nu se foloseste cifrarea pentru secretizarea mesajului; Utilizator 1 introducere in mesaj in clar Introducere text in clar Algoritm de Calcul MIC(MD5) Editare mesaj Autentificare si criptare Criptarea se aplica Criptare (optional) doar la mesajele de tipul ENCRYPTED Se aplica doar Codificare in forma tiparibila Mesajelor de Printable encoding tipul ENCRYPTED Si MIC-ONLY Canonizare pentru transmiterea prin SMTP Forma transmisibila Host A a mesajului Decanonizare din format transmisibil prin SMTP Decodificare din forma tiparibila Daca este cazul Decriptare Verificare MIC Vizualizare text mesaj in clar folosind un editor oarecare Daca este cazul Host B Utilizator 2 citire mesaj in clar Fig 1.2 Prelucrarea unei scrisori PEM 2)MIC-ONLY – este un tip de mesaj care oferǎ aceleasi servicii de securitate ca MIC-CLEAR, dar la care se adaugǎ o codificare optionalǎ, care asigurǎ trecerea mesajului prin diferite calculatoare gateway fara a se modifica, lucru care i-ar afecta procesul de verificare a integritǎtii; 3)ENCRYPTED – este un tip de mesaj care adaugǎ serviciul de confidentialitate la cele de integritate si autentificare. Se foloseste si codificarea de la MIC-ONLY deoarece altfel iesirea (binarǎ) a procesului de cifrare ar face ca mesajul sǎ nu fie capabil sǎ tranziteze acele sisteme de postǎ electronicǎ care nu permit transferarea de date binare, ci doar text; 4)CERTIFICATE REVOCATION (mesaj de revocare a autorizǎrii) – care spune unui UA cǎ o autoritate de acordare a autorizǎrilor (certificatelor) a revocat una sau mai multe din aceste autorizǎri. Pǎrtile componente ale PEM: • aducerea la forma canonica, numita canonizare, face transformarea mesajului din reprezentarea sa nativa, specifica calculatorului pe care s-a introdus scrisoarea intr-o forma standard, specifica retelei. Tipul de canonizare folosit este specificat in campul Content Domain din antetul-PEM. De exemplu, RFC 822 inseamna folosirea canonizarii specifice protocolului SMTP pentru posta neprotejata. O alta posibilitate poate fi, de exemplu, ASN.1; • calculul valorii e integritate a mesajului (MIC – Message Integrity Code). Singura cerinta impusa de standard de acest pas este ca PEM sa foloseasca un algoritn de calcul MIC foarte puternic, bazat pe o functie de dispersie one-way (greu inversabila). Acest lucru reprezinta o consecinta a nevoii de a se evita situatia de genul urmator: un mesaj creat de utilizatorul A este adresat atat lui B cat si lui C insa atunci cand ajunge la B, el este modificat de acesta si trimis mai departe la utilizatorul C fara ca acesta sa-si dea seama ca a primit un mesaj fals. Valoarea MIC este calculata asupra versiunii canonizate a mesajului, pentru a putea fi verificate de rettele eterogene din punctul de vedere al resurselor de calcul. Algoritmul specificat folosit pentru calculul MIC este specificat in antetul PEM, in campul MIC-Info. Pentru a se asigura si autentifica emitatorului, precum si nerepudierea mesajului prin dovedirea originii, MIC trebuie protejat in asa fel incat sa fie specific emitatorului autentic. Pentru aceasta, MIC este semnat printr-un cifru cu chei publice (RSA), folosind cheia privata a emitatorului scrisorii. Aceasta semnatura poate fi verificata de catre orice utilizator cu ajutorul cheii publice a emitatorului. Campul MIC-Info contine valoarea MIC semnata. Pentu ca receptiasa se poata stabili in mod sigur, legatura dintre MIC si emitatorul mesajului, antetul PEM contine un camp care permite identificarea originii mesajului. Acest camp contine certificatul de cheie publica al emitatorului mesajului care va fi folosit de receptor pentru verificarea integritatii lui MIC. In mesajul PEM pot exista mai multe campuri Issuer-Certificate care contin alte certificate din ierarhia de emitere a lor, necesare pentru validarea lui MIC. Pentru mai multa siguranta in fata unor atacatori profesionisti, in cazul in care mesajul este cifrat pentru confidentialitate, se va cifra cu aceeasi cheie si acelasi algoritm simetric si valoarea MIC semnata din caampul MIC-Info; • cifrarea reprezinta al treilea pas (optional) in prelucrarea PEM a mesajului. In acest cay apare in antetul PEM, in caampul Proc-Type, valoarea ENCRYPTD. Pentru a se aplica algoritmul de cifrare se genereaza la emitator o cheie de cifrare care va fi folosita penmtru protectia unui singur mesaj. Algoritmul cere in plus fata de cheie, o valoare aleatoare de 8 octeti de initializare , numita initialization vector. Aceasta este inclusa ca parametru in campul DEK-Info din antetul PEM. Mesajul este cifrat o singura data, indiferent de numarul de destinatari carora le este adresata. Un lucru foarte important il constituie transmiterea sigura a cheii de cifrare a mesajului la receptori. Acest lucru se realizeaza folosind cheia publica a destinatarului, cu ajutorul careia se cifreaza cheia mesajului, proces nuit anvelopare. Dupa cum s-a vazut la prezentarea proprietatilor criptosistemelor cu chei publice, numai destinatarul autentic care contine cheia privata pereche, va putea descifra in clar cheia de mesaj; apoi, cu aceasta va face descifrarea mesajului confidential. In cazul in care sunt mai muti destinatari, cheia unica de mesaj va fi cifrata cu fiecare cheie a fiecarui destinatar, toate acestea fiind pastrate in campuri Key-Info din antetul PEM. Aici se precizeaza algoritmul folosit pntru cifrarea cu cheie publica. Fiecare camp Key-Info este precedat de un camp Recipient-ID-Asymmetric, care identifica destinatarul sub forma numelui distinct a emitentului certificatului sau si prin numarul serial al certificatului sau, conform recomandarilor X.509; • codificarea in vederea transmisiei are rolul de a converti mesajele de tip MIC ONLY si ENCRYPTED PEM in siruri de carcatere care pot fi transmise in sistemele de transport al mesajelor. Codificarea se face intr-un alfabet de 6 biti sau 7 biti ASCII, cu anumite restrictii de lungime a bitilor, ceea ce asigura o compatibilitatea cu protocolul SMTP, recunoscut de toate sistemele de posta din Internet. La receptie, software-ul PEM parcurge mai intai mesajul, apoi analizeaza antetul PEM pentru a identifica tipul mesajului si versiunea PEM. In functie de aceste informatii se parcurg mai multi pasi de prelucrare: decodificarea, descifrarea, verificarea integritatii mesajului.