Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme



Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
» SECURITATE - Prezentarea tehnicilor de securitate, Algoritmi criptografici


SECURITATE - Prezentarea tehnicilor de securitate, Algoritmi criptografici




SECURITATE

1 Introducere

2 Prezentarea tehnicilor de securitate

3 Algoritmi criptografici

3 Semnaturi digitale




4 Practiciti criptografice

5 Studii de caz : Needham – Schroeder, Kerberos, SSL&Millicent

Exista o permanenta nevoie de masuri pentru a garanta intimitatea, integritatea si valabilitatea resurselor in sistemele distribuite. Atacurile de securitate iau forme care consta in interceptari, deghizari, falsificari si servicii de respingere. Designerii sistemelor distribuite securizat trebuie sa se descurce cu interfete de serviciu expuse si retele nesecurizate intr-un mediu unde atacatorii par sa cunoasca algoritmi folositi si sa desfasoare resurse de calcul.

Cripografia ofera bazele autentificarii mesajelor precum secretul si integritatea; este nevoie de o exploatare a protocoalelor de securitate atent concepute. Selectia algoritmilor criptografici si managamentul cheilor este critica pentru eficienta, performanta si pentru utilizarea mecanismelor de securitate. Cheia publica de criptografie face mai usoara distributia de chei criptografice, dar performanta ei este inadecvata pentru criptarea masei de date. Criptografia cu cheie secreta este cea mai indicata pentru sarcini de criptare a masei de date. Protocoale hibride precum SSL (Secure Sokets Layer) stabilesc un canal sigur folosind criptografia cu cheie publica iar apoi folosesc canalul pentru a face schimb chei secrete pentru folosirea lor in urmatoarele schimburi de date.

Informatia digitala poate fi semnata, producand certificate digitale. Certificatele stabilesc increderea intre utilizatori si organizatii.

1 Introducere

Masurile de securitate trebuie sa fie incorporate in sisteme de calculatoare oricand ele sunt potentiale tinte de atacuri rautacioase sau vatamatoare. Aceasta este in special valabil pentru sisteme care se ocupa de tranzactii financiare sau confidentiale, clasificate sau alte informatii a carei secret si integritate sunt critice. In figura 1.7, este sumarizata evolutia nevoilor securitatii in sisteme de calculatoare de cand ele s-au dezvoltat odata cu aparitia datelor partajate in sisteme timesharing multi-user ai anilor 1960-70. Astazi aparitia sistemelor de arie larga si sistemele distribuite deschise au generat un mare sir de probleme de securitate.

Fig 1

Nevoia de a proteja integritatea si intimitatea informatiei si alte posesii de resurse individuale si ale organizatiilor este imprastiata in ambele lumi fizica si digitala. Aceasta problema se ridica din dorinta de a partaja resurse resurse. In lumea fizica, organizatiile adopta politicile de securitate care intretin partajarea resurselor fara limite specificate. De exemplu, o companie poate permite accesul in cladirile sale pentru angajati si vizitatori acreditati. O politica de securitate a documentelor poate specifica ce grupuri de angajati pot avea acces la clase de documente sau poate fi definita pentru documente individuale si utilizatori.

Politicile de securitate sunt imputernicite cu ajutorul mecanismelor de securitate. De exemplu, accesul la o cladire poate fi controlat de un receptioner, care emite insigne pentru vizitatorii acreditati, si intarita cu un paznic sau o usa electronica. Accesul la documente de hartie este de deobicei controlat prin depozitarea lor intr-un loc secret si o distribuire restrictiva.

In lumea electronica, distinctia dintre politicile de securitate si mecanismele de securitate ramane importanta; fara ea, ar fi dificil de determinat daca un sistem particular a fost securizat. Politicile de securitate sunt independente de tehnologia folosita, asa cum prezenta unui lacat pe o usa nu asigura securitatea a unei cladiri decat daca este o politica pentru folosirea lui. (de exemplu , daca acea usa va fi inchisa oricand nu este pazita de nimeni la intrare). Mecanismele de securitate care le vom descrie nu asigura ele insasi securitatea unui sistem. In sectiunea 1.2 vom sublinia cerintele pentru securitate in scenarii de comert electronic simple de diverse tipuri, ilustrand nevoia de politici in acest sens. De exemplu consideram securitatea unui fisier de server al retelei a carui interfata este accesibila clientilor. Pentru a asigura ca acel control de acces la fisiere este mentinut, este nevoie de o politica in care toate cererile trebuie sa includa o identitate a unui utilizator autentica.

Anticiparea mecanismelor pentru protectia informatiei si a altor resurse bazate pe computer si securizarea tranzactiilor de retea vor fi prezentate in acest capitol. Vom descrie mecanismele care permit politicilor de securitate sa fie intarite in sistemele distribuite. Mecanismele pe care le vom descrie sunt destul de puternice pentru a rezista la majoritatea atacurilor.

Distinctia dintre politcile de securitate si mecanismele de securitate sunt folositoare in conceperea sistemelor securizate, dar de obicei este dificil pentru a fi siguri ca un set dat de sisteme de securitate implementeaza in total politicile de securitate dorite. In sectiunea 2.3.3, am introdus un model de securitate care este conceput sa ajute in analiza potentialelor amenintari la securitate in sistemele distribuite. Putem sumariza modelul de securitate al capitolului 2 astfel:

procesele incapsuleaza resurse (cum ar fi programarea obiectelor de limbaj si alte resurse definite desistem) si permit utilizatorilor sa le acceseze prin interfatele lor. Protagonistii(utilizatori sau alte procese) pot fi explicit autorizate pentru a opera resurse. Resursele trebuie protejate impotriva accesului neautorizat.

Procesele interactioneaza printr-o retea care este partajata de multi utilizatori. Inamicii (atacatorii) pot accesa reteaua. Ei pot copia sau incerca sa citeasca mesaje transmise prin retea si pot injecta mesaje arbitrare, adresate oricarei destinatii si sa lase de inteles ca ar veni de la oricare sursa, din retea.

Acel model de securitate identifica acele trasaturi ale sistemelor distribuite care le expun atacurilor. In acest capitol, vom detalia aceste atacuri si tehnicile de securitate care sunt disponibile pentru a ne apara.

Urgenta criptografiei in domeniul public <>. Criptografia ofera bazele pentru majoritatea mecanismelor de securitate ale calculatoarelor. Criptografia are o lunga si fascinanta istorie. Cum armata avea nevoie de informatie securizata, dar corespondenta putea fi interceptata de un inamic si decriptata , a aparut necesitatea criptarii corespondentei. Acest lucru a adus la investirea multor eforturi intelectuale din partea celor mai bune minti matematiciene a acelui timp.

De curand criptografia a iesit la iveala din locurile in care a fost ascunsa de politica si armata, iar acum subiectul este deschis cercetarii libere de o comunitate larga si activa, cu rezultatele publicate in multe carti, jurnale si conferinte. Cartea lui Schneider Criptografia aplicata [1996] a fost piatra de temelie in deschiderea cunostintei in acest domeniu. A fost prima carte care a publicat multi algoritmi importanti cu cod sursa – un pas curajos, deoarece, cand prima editie a aparut in 1994 situatia legala a acestei publicatii era neclara. Schneier ramane referinta definitiva in majoritatea aspectelor criptografiei moderne. Menezes si altii ofera de asemenea carti practice cu o baza teoretica buna.

Noua deschidere este un rezultat clar al cresterii intereselui in aplicatiile non-militare ale criptografiei si necesitatile de securitate a sistemelor distribuite. Aceasta a rezultat in existenta pentru prima data a unei auto-sustinute cumunitati de cercetatori in domeniul criptografiei in afara de domeniul militar.

Ironic, deschiderea criptografiei la accesul public si folosirea ei a dus la o imbunatatire semnificativa a tehnicilor de criptografie, ambele in taria de a rezista atacurilor. Criptografia cu cheie publica este una din ideile acestei deschideri. Ca un alt exemplu, algoritmul criptografiei standard DES a fost initial un secret militar. Eforturile incoronate cu success de al sparge a dus la dezvoltarea a unor algoritmi de criptare cu chei secrete mult mai puternici.

Un alt produs dezvoltat a fost folosirea numelor familiare. Un exemplu este adoptarea unui set de nume familiare intr-o scrisoare pentru protagonisti (principali) implicati in tranzactii securizate. Folosirea numelor familiare pentru protagonisti si atacatori ajuta la clarificarea si aducerea la viata a descrierilor protocoalelor de securitate si a potentialelor atacuri asupra lor, care este un important pas inainte spre identificarea vulnerabilitatilor lor. Numele aratate in Figura 2 sunt folosite extensiv in literatura securitatii si le vom folosi liber aici. Nu am putut descoperi originea lor; cazul cel mai recent de care suntem constienti este in documentul original al criptografiei cu cheie publica RSA .

Fig 2

1.1 Atacurile si amenintarile

Cateva ameninteri sunt elocvente – de exemplu, in majoritatea tipurilor de retele locale este usor de construit si a rula un program la un calculator conectat care sa obtina copii ale mesajelor transmise intre alte calculatoare. Alte amenintari sunt mai subtile - daca clientii nu reusesc sa se autentifice la servere, un program s-ar putea instala in locul unui server fisier autentic si, prin aceasta, obtine copii ale informatiei confidentiale pe care clientii, fara sa doreasca, le trimit in acea zona pentru a le stoca.

In completarea pericolului pierderii sau avarierii informatiei sau resurselor prin violari directe, pretinderi frauduloase pot fi facute impotriva proprietarului sistemului care nu este bine securizat. Pentru evitarea acestor pretinderi, proprietarul trebuie sa fie in pozitia de a dovedi netemeinicia acelei pretinderi prin aratarea ca sistemul este securizat impotriva acestor violari sau prin producerea unui jurnal al tuturor tranzactiilor pentru perioada ceruta. O instanta comuna este problema retragerii fantomei in distribuitoarele de cash (casa de socotit). Cel mai bun raspuns pe care o banca poate sa-l ofere pentru o asemenea cerinta este sa ofere o inregistrare a tranzactiei care este digital semnata de detinatorul contului intr-o maniera care nu poate fi falsificata de o parte terta.

Scopul principal al securitatii este sa restrictioneze accesul la informatie si resurse doar la acei principali care sunt autorizati sa aiba acces. Amenintarile la securitate se disting in 3 categorii:

Scurgerea – achizitia informatiei de receptori neautorizati

Falsificarea – alterarea neautorizata a informatiei

Vandalismul – interferenta cu operatia corecta a sistemului fara voia autorului

Atacurile in sistemele distribuite depind de obtinerea accesului la canalele de comunicatie existente sau stabilirea unor noi canale care sa se deghizese in canale autentice.

Metodele de atac pot fi clasificate in felul in care un canal este abuzat:

Trasul cu urechea – obtinerea de copii ale mesajelor fara autorizatie.

Deghizarea – trimiterea sau receptionarea mesajelor folosind identitatea unui principal fara autorizatia lui.

Falsificarea mesajelor – interceptarea mesajelor si alterarea continuturilor lor inainte ca ele sa fie trimise destinatarului de drept. Omul in mijlocul atacului este o forma de falsificare a mesajului in care un atacator intercepteaza primul mesaj intr-un schimb de chei de criptare pentru a stabili un canal securizat. Atacatorul substituie cheile compromise, lucru ce ii va permite sa decripteze mesajele urmatoare inainte de recriptarea lor in cheile corecte si trimiterea lor.

Replicarea – pastrarea mesajelor interceptate si trimiterea lor la o data mai tarzie. Acest atac poate fi eficace chiar cu mesaje autentice si criptate.

Serviciul de respingere – inundarea unui canal sau a altei resurse cu mesaje pentru a respinge accesul altora.

Acestea sunt pericolele in teorie, dar cum atacurile sunt realizate in practica? Atacurile de success depind de descoperirea gaurilor-bucla in securitatea sistemelor. Din pacate, aceastea sunt destul de comune in sistemele actuale si ele nu sunt neaparat necunoscute. Cheswick si Bellovin [1994] identifica 42 slabiciuni care sunt considerate ca fiind riscuri serioase in sistemele si componentele de internet larg folosite. Ele variaza de la ghicirea parolelor la atacuri de programe care efectueaza protocoale de timp in retea sau manipuleaza transmisia de mail-uri. Cateva dintre acestea au dus la atacuri de succes, iar majoritatea lor au fost exploatate pentru scopuri criminale si rautacioase.

Cand internetul si sistemele care sunt conectate la el care au fost proiectate, securitatea nu a fost o problema. Creatorii probabil nu aveau conceptii de scara la care internetul va creste, iar proiectarea initiala a sistemelor ca UNIX nu erau pregatite pentru retelele de calculatoare aparute ulterior. Dupa cum se poate vedea, incorporarea masurilor de securitate trebuie sa fie atent gandite la stagiul de proiectare initial; materialul din acest capitol ofera bazele pentru aceasta gandire.

Am centralizat atentia asupra amenintarilor la sistemele distribuite ce apar din expunerea canalelor lor de comunicare si interfetelor lor. Pentru multe sisteme, ele reprezinta singurele amenintari ce trebuie luate in considerare (altele decat cele care apar din eroarea umana – mecanismele de securitate nu pot fi aparate impotriva unei parole prost alese sau una care este divulgata fara grija). Dar pentru sisteme care includ programe mobile si steme a caror securitate este sensibila la scurgerea de informatie, ele sunt amenintari suplimentare.

Amenintari din codul mobil <> Unele limbaje de programare recent dezvoltate au fost proiectate pentru a permite programelor sa fie incarcate intr-un process de la un server aflat la distanta si executate local. In acest caz interfetele interne si obiectele din procesul aflat in executie pot fi expuse atacului prin codul mobil.

Java este cel mai larg folosit limbaj de aces tip, si producatorii au acordat oatentie considerabila atat proiectarii si constructiei limbajului cat si mecanismelor de incarcare de la distanta intr-un efort de a restrictiona expunerea lui(modelul cutiei de nisip pentru protectia impotriva codului mobil).

Masinaria Virtuala Java (JVM) este proiectata cu cod mobil. Codul mobil da fiecarei aplicatii mediul propriu in care sa ruleze. Fiecare mediu are un manager de securitate care determina ce resurse sunt disponibile aplicatiei. De exemplu, managerul de securitate poate opri o aplicatie care citeste/scrie fisiere sau sa-i dea acces limitat la conexiunile de retea. Odata ce un manager de securitate a fost setat, nu mai poate fi reinlocuit. Cand un utilizator ruleaza un program cum ar fi un browser care downloadeaza codul mobil pentru a fi rulat local in folosul lui, el nu are un motiv intemeiat sa creada ca acel cod se va comporta intr-o maniera buna. De fapt exista pericolulul downloadarii si rularii codului raufacator care sterge fisiere sau acceseaza informatii private. Pentru a proteja utilizatorii de cod nesigur, majoritatea browserilor specifica ca appleturile nu pot accesa fisierele locale, imprimantesau soket-uri de retea. Unele aplicatii ale codului mobil sunt in stare sa atribuie nivele variate de incredere in codul downloadat. In acest caz, managerii de securitate sunt configurati sa ofere mai mult acces la resursele locale.

JVM ia 2 masuri importante pentru protejarea mediului local:

clasele downloadate sunt stocate separat de clasele locale, prevenindu-le de reinlocuirea claselor locale cu versiuni falsificate;

codurile byte sunt verificate pentu validitate. Bytecodul Java valid este compus din instructiunile masinii virtuale Java. Instructiile sunt, de asemenea, verificate pentru a se asigura ca ele nu vor produce anumite erori cand programul ruleaza, cum ar fi accesarea de adrese ilegale de memorie.

Securitatea Java a fost subiectul unor investigatii ulterioare, in cursul carea a devenit clar ca mecanismele originale adoptate nu au fost eliberate de gaurile-bucla. Gaurile-bucla identificate au fost corectate si protectia sistemului Java a fost rafinata sa permita codului mobil sa acceseze resurse locale atunci cand este autorizat sa o faca.

In ciuda includerii mecanismelor de verificare a tiparirii si de validare a codului, mecanismele de securitate incorporate in sistemele de codul mobil inca nu produc acelasi nivel de siguranta ca cele folosite sa protejeze comunicarea canalelor si interfatelor. Acest lucru exista deoarece constructia unui mediu pentru executia programelor ofera multe oportunitati la erori, si este dificil sa se asigure ca toate au fost evitate.

Scurgerea de informatii<> Daca transmisia unui mesaj intre 2 procese poate fi observata, multe informatii pot fi culese usor. Sunt mai multe forme subtile de scurgeri de informatii, unele rautacioase iar altele aparand din erorile de neatentie. Potentialul pentru scurgeri creste oricand rezultatele unui calculul pot fi observate. Munca a fost facuta in prevenirea acestui tip de amenintare la securitate din anul 1970. Aceasta abordare a fost luata pentru a atribui nivele de securitate informatiei si canalelor si pentru a analiza scurgerea informatiei prin canale cu ajutorul asigurarii ca informatia de nivel inalt nu poate curge prin canale de nivel scazut. O metoda pentru controlul securizat a scurgerii informatiei a fost, pentru prima data, descrisa de Bell si LaPadula [1975]. Extensia acestei abordari la sistemele distribuite cu neincredere reciproca intre componente este subiectul a cercetarii recente.

1.2 Securizarea tranzactiilor electronice

Multe utilizari ale internetului in industrie, comert si in alte parti implica

tranzactii care depind crucial de securitate. Ca de exemplu:

Email: Desi sistemele email nu includ support pentru securitate, exista multe folosiri ale email-ului in care continuturile mesajelor trebuie sa fie tinute secret (de exemplu, cand se trimite un numar de carte de credit), sau cand continutul si expeditorul unui mesaj trebuie sa fie autentificate (de exemplu la trimiterea unei oferte de licitatie prin email). Securitatea criptografica bazata pe tehnicile decrise in acest capitol este acum folosita de multi clienti de mail.

Achizitionarea de bunuri si servicii: Tranzactii ca acestea sunt acum un lucru

obisnuit. Cumparatorii aleg bunuri si platesc flosind Web-ul si le primesc printr-un mechanism specific de furnizare. Produse software si alte produse digitale (ca inregistrari si filme) pot fi furnizate prin downloadarea prin internet. Bunuri palpabile ca CD-uri, carti si aproape orice tip de produs sunt, de asemenea, vandute de vanzatori pe internet; acestea sunt furnizate printr-un servicu de distribuire.

Tranzactii bancare: Bancile electronice ofera acum utilizatorilor virtual toate

facilitatile oferite de bancile conventionale. Ei pot sa-si verifice situatia contului, sa transfere bani intre conturi, sa stabileasca plati automate si asa mai departe.

Micro tranzactii: Internetul imprumuta mici cantitati de informatie si alte

servicii multor clienti. De exemplu, majoritatea paginilor web nu sunt taxabile, dar dezvoltarea web-ului ca un mediu de pubilcitate de inalta calitate depinde sigur de extinderea cu care furnizorii de informatie pot obtine plati de clienti pentru informatie. Utilizarea internetului pentru voce si videoconferinta ofera un alt exemplu de serviciu care este deobicei furnizat numai atunci cand este platit de utilizatorii finali. Pretul unor astfel de servicii este foarte mic si, de asemenea, cheltuielile de regie trebuie sa fie mici. In general, schemele bazate pe implicarea unei banci sau a unui server de carte de credit pentru fiecare tranzactie nu pot realiza aceast lucru.

Tranzactii ca acestea pot fi efectuate sigur numai atunci cand sunt protejate de

politicile de securitate adecvate si de mecanismele securitatii. Un comparator trebuie sa fie protejat impotriva dezvaluirii codurilor de credit (numere de card) in timpul transmisiei si impotriva unui vanzator fraudulos care optine plata fara intentia de a furniza bunurile. Vanzatorii trebuie sa obtina plata inainte de a trimite bunurile iar pentru produsele downloadate ei trebuie sa se asigure ca numai realul clientul obtine bunurile (intr-o forma utilizabila). Protectia necesara trebuie realizata la un cost care este rezonabil in comparatie cu valoarea tranzactiei.

Politicile sensibile de securitate pentru vanzatorii de pe internet si cumparatori duc la urmatoarele cerinte pentru securizarea cumparaturilor pe web:

autentificarea vanzatorului de cumparator, astfel incat cumparatorul poate fi increzator ca el este in contact cu un server operat de vanzator cu care intentioneaza sa faca afacerea.

pastrarea numarului cartii de credit ale cumparatorului si a altor detalii de plata la distanta de caderea in mainile unei parti terte si asigurarea ca ele sunt transmise nealterat de la cumparator la vanzator.

daca bunurile sunt intr-o forma potrivita pentru downloadat, sa se asigure daca continutul lor este trimis la comparator fara alterare si fara a fi falsificate de terte parti.

Identitatea cumparatorului nu este normal ceruta de vanzator ( exceptie face distribuirea bunurilor in cazul in care ele nu sunt downloadate). Vanzatorul poate sa vrea sa verifice daca cumparatorul are suficiente fonduri pentru a plati bunurile, dar acest lucru este, de obicei, facut la cererea platii de catre banca cumparatorului, inaintea livrarii bunurilor.

Nevoile securitatii tranzactiilor bancare folosind o retea deschisa sunt similare cu cele prezentate mai sus. O alta nevoie a securitatii tranzactiilor bancare in care cumparatorul este detinatorul contului iar banca vanzatorul este:

autentificarea identitatii detinatorului contului la banca inainte de a i se da acces la contul lor.

De notat ca in aceasta situatie este important pentru banca sa se asigure ca detinatorul contului nu poate nega ca ei au participat intr-o tranzactie. Non-repudierea ete numele dat acestei cerinte.

In completarea acestor cerinte, care sunt dictate de politicile de securitate, exista unele cerinte de sistem. Acestea apar datorita scalei farte mari de utilizare a internetului, care le fac impracticabile de a cere cumparatorilor sa intre in relatii speciale cu vanzatorii (prin inregistrarea cheilor de criptare pentru o utilizare tarzie, etc). Ar trebui sa fie posibil pentru un cumparator sa completeze o tranzactie sigura cu un vanzator chiar daca nu a existat inainte nici un contact intre cumparator si vanzator si fara implicarea unei terte parti. Tehnici cum ar fi folosirea de ‚cookies’- inregistrari ale tranzactiilor precedente stocate pe hostul clientului –au evidente slabiciuni de securitate; desktop-ul si hosturile mobile sunt adesea localizate in medii nesecurizate fizic.

Datorita importantei securitatiii pentru comertul pe internet si cresterea rapida a

comertului pe internet, am ales sa ilustram folosirea tehnicilor criptografice prin descrierea, in sectiunea 6, a protocolului standard de securitate de facto folosit in comertul electronic - Secure Sockets Layer (SSL) -si Milicent, un protocol specific creat pentru microtranzactii.

Comertul electronic este o aplicatie importanta a tehnicilor de securitate dar cu siguranta nu este singura. Ea este necesara oricand computerele sunt folosite de indivizi sau organizatii pentru a stoca si comunica informatii importante. Utilizarea mail-ului criptat pentru comunicatia privata intre indivizi este un caz larg dezbatut in politica securizarii. Aceasta dezbatere este prezentata in sectiunea 5.2.

1.3 Proiectarea sistemelor securizate

Pasi imensi au fost facuti in anii recenti in dezvoltarea tehnicilor criptografice si aplicarea lor, si inca proiectarea sistemelor securizate ramane, in mod inerent, o sarcina dificila. In miezul dilemei este faptul ca proiectantii tintesc sa excluda toate atacurile posibile si gaurile-bucla. Situatia este asemanatoare cu cea a programatorului a carui tinta este sa excluda toate greselile din program. In nici un caz nu este o metoda concreta de a te asigura de golurile din timpul proiectarii. Unele proiecte aflate la cele mai bune standarde disponibile aplica analiza informala. Odata ce un proiect este complet, validarea formala devine o optiune. Munca la validarea formala a protocoalelor de securitate a produs cateva rezultate importante. O descriere a unuia dintre primi pasi in aceasta directie poate fi gasita pe www.cdk3.net/security.

Securitatea are rolul de a evita dezastrele si a minimiza ghinioanele. Cand se proiecteaza o securitate este necesar sa se gandeasca la ce este mai rau.

Pentru a demonstra validitatea mecanismelor de securitate angajate intr-un sistem, proiectantii sistemului trebuie sa construiasca mai intai o lista cu amenintari - metode prin care politicile de securitate ar putea fi violate - si sa arate ca fiecare dintre ele este prevenita de mecanismele implicate. Aceasta demonstratie poate lua forma unui argument informal, sau mai bine, poate lua forma unei marturii logice.

Nici o lista de amenintari nu pare a fi completa, de aceea metodele de control trebuie, de asemenea, folosite in aplicatii de securitate pentru a detecta violarile. Acestea sunt simplu de implementat daca o logare sigura a actiunilor sistemului securizat este intotdeauna inregistrata cu detaliile actiunilor indeplinte de utilizatori si autoritatea lor.

O logare sigura va contine o secventa de inregistrari timestamp ale actiunilor utilizatorilor. Inregistrarile vor include identitatea utilizatorului, operatia efectuata (ex fisierul sters), identitatea obiectului operat si un timestamp. Unde sunt suspectate violari, inregistrarile pot fi extinse pentru a include utilizarea resurselor fizice (banda de retea, periferice), sau procesul de logare poate fi orientat pe operatii pe obiecte particulare. Analizele urmatoare pot fi statistice sau bazate pe cercetari. Chiar si atunci cand nu este suspectata nici o violare, statisticile pot fi comparate in timp pentru a ajuta la descoperirea oricaror directii neobisnuite sau evenimente.

Proiectarea sistemelor securizate este un exercitiu in balansul costurilor impotriva amenintarilor. Plaja tehnicilor care pot fi desfasurate pentru protejarea proceselor si securizarea intre procese este indeajuns de puternica sa faca fata aproape oricarui atac, dar aceste masuri atrage costuri si inconveniente.

un cost (in efortul computational si in folosirea retelei) este creat pentru utilizarea lor. Costurile trebuie sa fie echilibrate impotriva amenintarilor.

masuri specifice de securitate inadegvate pot exclude utilizatorii legitimi de la efectuarea actiunilor necesare.

Asemenea schimburi sunt greu de identificat fara a compromite securitatea si par a nu fi in concordanta cu recomandarea din primul paragraf al acestei sectiuni, dar puterea tehnicilor de securitate poate fi determinata cantitativ si selectata pe baza costurilor estimate ale atacurilor asupra lor. Costul scazut al tehnicilor angajate in protocolul Millicent pentru tranzactii comerciale mici sunt descrise in 6.4 este un exemplu in acest sens.

Presupuneri de cel mai rau caz si ghiduri de proiectare

Interfetele sunt expuse: sistemele distribuite sunt compuse din procese care ofera servicii sau informatii partajate. Interfetele de comunicare sunt necesare deschise (sa permita clientilor noi sa le acceseze) - un atacator poate trimite un mesaj la oricare interfata.

Retelele sunt nesigure: de exemplu sursele de mesaj pot fi falsificate - mesajele pot fi facute astfel incat sa provina de la Alice cand de fapt ele au fost trimise de Mallory. Adresele gazda pot fi ‚inselate’- Mallory poate sa se conecteze cu aceeasi adresa ca a lui Alice si sa primeasca copii ale mesajelor menite pentru ea.

Limitarea timpului de viata si scopul fiecarui secret: cand o cheie secreta este generata noi putem fi increzatori ca nu a fost compromisa. Cu cat lungimea ei este mai mica si cu cat este mai mult conoscuta, cu atat mai mare este riscul dezvaluirii ei. Folosirea secretelor cum ar fi parole si chei secrete partajate ar trebui limitate in timp iar partajarea ar trebui restrictionata.

Algoritmii si codul program sunt disponibile pentru atacatori: Cu cat secretul este cunoscut de mai multe persoane, cu atat mai mare e riscul de a fi dezvaluit. Algoritmii de criptare secreti sunt total inadegvati pentru mediile retelelor largi din zilele noastre. Cea mai buna practica este sa se publice algoritmi folositi pentru criptare si autentificare, bazandu-se doar pe secretizarea cheii de criptare. Aceasta ajuta la asigurarea ca algoritmii sunt intariti prin lasarea lor la indemana oricui.

Atacatorii pot avea acces la resurse mari: costul puterii de calcul este in scadere rapida. Trebuie tinut cont de faptul ca atacatorii au acces la cele mai puternice calculatoare ce le permit sa faca descoperiri spectaculoase.

Minimizarea bazei de incredere: portiunile unui sistem care sunt responsabile de implementarea securitatii, si toate componentele hardware si software pe care se bazeaza trebuie sa fie de incredere - aceasta este deobicei referita ca o baza de calcul sigura. Orice defect sau eroare de programare in aceasta baza de incredere poate produce slabiciune in securitate, deci noi trebuie sa tintim minimizarea marimii sale. De exemplu, programele aplicatie nu ar trebui sa fie de incredere in protejarea datelor utilizatorilor lor.

2 Privirea de ansamblu a tehnicilor de securitate

Scopul acestei sectiuni este de a introduce cititorului mai multe tehnici si mecanisme pentru securizarea sistemelor distribuite si a aplicatiilor. Aici le vom descrie informal, rezervand descrierile detaliate pentru sectiunile 3 si 4..Vom folosi nume familiare pentru principali(protagonisti) introdusi in figura 2 si notatii pentru lucrurile semnate si criptate aratate in figura 3.

Fig 3

2.1 Criptografia

Criptarea este procesul de codare a mesajului intr-o maniera in care sa ascunda continutul sau. Criptografia moderna include cativa algoritmi de securizare pentru criptarea si decriptarea mesajelor. Sunt bazate pe folosirea unor secrete numite chei. O cheie criptografica este un parametru utilizat intr-un algoritm de criptare astfel incat criptarea nu poate fi realizata fara o cunoastere a cheii.





Sunt 2 clase principale de algoritmi de criptare in general folositi. Prima clasa de algoritmi au folosit chei secrete partajate - expeditorul si destinatarul trebuie sa imparta cheia fara ca nimeni altcineva sa stie. A doua clasa de algoritmi de criptare foloseste perechi de chei publice/private – expeditorul unui mesaj foloseste o cheie publica – una care deja a fost publicata de destinatar – de a cripta mesajul. Destinatarul foloseste cheia corespunzatoare privata pentru a decripta mesajul. Desi multi protagonisti pot examina cheia publica, doar destinatarul poate decripta mesajul deoarece el are cheia privata corespunzatoare.

Ambele clase de algoritmi de criptare sunt extrem de folositori si sunt utilizati pe larg in construirea sistemelor distribuite sigure. Algoritmii de criptare cu cheie publica, deobicei necesita de la 100 pana la 1000 de ori mai mult timp decat algoritmii cu cheie secreta, dar sunt situatii unde convenienta lor depaseste acest dezavantaj.

2.2 Folosirea criptografiei

Criptografia joaca 3 roluri majore in implementarea sistemelor securizate pe care le vom introduce in continuare. In toate scenariile de mai jos vom presupune ca Alice, Bob si orice alt participant au implementati algoritmii de criptare pe care doresc sa ii utilizeze. Presupunem, de asemenea, ca orice cheie secreta pe care ei o detin poate fi stocata securizat pentru a preveni atacurile asupra lor.

Secretizarea si integritatea <> Criptografia este folosita pentru a mentine secreta si intreaga informatia oricand ea este expusa unor potentiale atacuri, de exemplu in timpul transmisiei prin retea cand mesajele sunt vulnerabile la ascultat si modificat. Ea se bazeaza pe faptul ca un mesaj care este criptat cu o cheie particulara de criptare poate fi decriptat doar de destinatarul care are cheia corespunzatoare. Astfel ea mentine secretul mesajului criptat at timp cat cheia de decriptare nu este compromisa (dezvaluita nonparticipantilor in comunicare) si asigura ca algoritmul de criptare este suficient de puternic pentru a se apara impotriva oricarui attentat de al sparge. Criptarea, de asemenea, mentine integritatea informatiei criptate asigurand ca acele informatii redundante cum ar fi checksum sunt incluse si verificate.

Scenariul 1. Comunicarea secreta cu o cheie partajata: Alice vrea sa trimita unele informatii in mod secret catre Bob. Alice si Bob partajeaza o cheie secreta Kab.

1. Alice utilizeaza Kab si accepta functia de criptare E(Kab, M) pentru a cripta si trimite orice numar de mesaje Kab lui Bob. (Alice poate folosi Kab atat timp cat ea nu a fost compromisa).

2. Bob citeste mesajele criptate folosind functia de decriptare corespunzatoare D(Kab, M).

Bob poate acum citi mesajul original M. Daca mesajul are sens cand este decriptat de Bob, sau, mai mult, daca el include anumite valori acceptate atat de Bob cat si de Alice, cum ar fi checksum-ul mesajului, atunci Bob stie ca mesajul este de la Alice si ca nu a fost alterat. Dar mai sunt inca alte probleme de rezolvat:

Problema 1 Cum poate alice trimite o cheie partajata Kab catre Bob securizat?

Problema 2 Cum poate Bob sti ca orice nu este o copie a nunui mesaj criptat mai devreme si trimis de Alice dar capturat de Mallory si retrimis lui Bob cu intarziere? Mallory nu a avut nevoie de cheia Kab pentru a realiza acest atac – el poate copia pur si simplu mesajul si il trimite mai tarziu destinatarului. De ex daca mesajul este o cerere de plata catre cineva – Mallory poate sa il pacaleasca pe Bob sa plateasca de 2 ori.

Vom arata in acest capitol cum aceste probleme pot fi rezolvate.

Autentificarea <> Criptografia este folosita in suportul mecanismelor de autentificare a comunicatiei intre perechi de protagonisti. Un protagonist care decripteaza un mesaj cu succes folosind o cheie particulara poate asigura ca mesajul este autentic daca el contine un checksum corect (daca modul block-chaining, descris in cap 3 este folosit) sau alte valori asteptate. El poate presupune ca expeditorul mesajului detine cheia de criptare corespunzatoare si de aici deduce identitatea expeditorului daca cheia este cunoscuta doar de 2 parti. Astfel, daca cheile sunt tinute in secret, o decriptare cu succes autentifica mesajul decriptat ca venind de la un particular expeditor.

Scenariul 2. Comunicatia autentificata cu un server: Alice vrea sa acceseze fisierele detinute de Bob, un server de fisiere pe o retea locala a organizatiei unde ea lucreaza. Sara este un server de autentificare care este administrat securizat. Sara emite utilizatori cu parole si tine cheile secrete curente a tuturor participantilor in sistemul pe care il deserveste (generate prin apicarea unor transformari la parola utilizatorului). De exemplu, serverul stie cheia KA a lui Alice si cheia KB a lui Bob . in scenariul nostru ne referim ca tichete. Un ticket este un obiect criptat emis de un server de autentificare, care contine identitatea protagonistului si o cheie partajata care a fost generata pentru sesiunea de comunicare curenta. Un tichet este emis de server pentru fiecare utilizator in parte.

1. Alice trimite un mesaj necriptat lui Sara spunandu-si identitatea si cerand un tichet pentru a-l accesa pe Bob

2. Sara trimite un raspuns lui Alice criptat cu KA constand dintr-un tichet (spre a fi trimis lui Bob cu fiecare cerere de acces la fisiere) criptat cu KB si o cheie noua secreta KAB pentru utilizarea ei in comunicarea cu Bob. Deci raspunsul pe care Alice in primeste arata astfel: KB , KAB } KA

3. Alice decripteaza raspunsul folosind KA (pe ea i-l genereaza din parola ei folosind aceeasi transformare: parola nu este transmisa prin retea si o foloseste doar odata folosita, parola este stearsa din memoria locala pentru a evita compromiterea ei). Daca Alice are cheia corect derivata din parola KA ea obtine un tichet valid pentru utilizarea serviciului lui Bob si o cheie noua de criptare pentru utilizarea in comunicarea cu Bob. Alice nu poate decripta decripta sau falsifica tichetul, deoarece este criptat cu KB. Daca receptorul nu este Alice, atunci oricine altcineva care va receptiona mesajul nu va sti parola lui Alice si astfel,el nu va fi capabili sa decripteze mesajul.

4. Alice trimite tichetul lui Bob impreuna cu identitatea ei si o cerere R sa acceseze un fisier KB Alice, R.

5. tichetul, original creat de Sara, este : KAB ,Alice , KB, Bob decripteaza tichetul folosind cheia lui KB, deci Bob primeste identitatea autentificata a lui Alice (bazata pe faptul ca Alice si Sara, cunosc parola lui Alice) si o cheie noua secreta partajata KAB pentru utilizare cand intercationeaza cu Alice. Aceasta este denumita o cheie sesiune deoarece ea poate fi utilizata in siguranta de Alice si Bob pentru o secventa a intercatiunilor).

Acest scenariu este o versiune simplificata a protocolului original de autentificare dezvoltat de Roger Needham si Michael Schroeder [1978] si ulterior folosit in sistemul Kerberos dezvoltat di utilizat de MIT, care este descris in Sectiunea 6.2. in descrierea noastra simplificata a protocolului nu este nici o protectie impotriva retrimiterii mesajelor de notificare vechi. Aceasta sau alte slabiciuni sunt prezentate sunt tratate in descrierea noastra despre protocolul Needham-Schroeder, prezentat in Sectiunea 6.1

Protocolul de autentificare descris, depinde de cunostintele anterioare ale serverului de autentificare Sara in legatura cu cheile lui Bob KB si a lui Alice KA. Aceasta este realizabila intr-o organizatie singura unde Sara ruleaza pe un computer securizat fizic si este administrat de un protagonist de incredere, care genereaza valori initiale ale cheilor si le transmite la utilizator printr-un canal separat securizat. Dar aceasta metoda nu este potrivita pentru comertul electronic sau alte aplicatii de gama larga unde utilizarea unui canal separat este foarte inconvenabil si necesitatea unei parti terte de incredere este nearealista. Criptografia cu cheie publica ne salveaza de aceasta de la aceasta dilema. In schimb, a fost introdus conceptul de provocare criptografica. Acest concept poate fi vazut in pasul 2 din scenariul de deasupra, unde serverul Sara, emite un tichel lui Alice criptat cu cheia secreta a lui Alice. Aceasta constituie o provocare deoarece Alice nu poate face uz de tichet daca nu-l poate decripta; ea i-l poate decripta doar daca determina cheia KA care este derivata din parola sa. Un impostor care se pretinde a fi Alice ar fi invins la acest punct.

Scenariul 3. comunicatia autentificata cu chei publice: asigurand ca Bob a generat o pereche de cheie publica privata, urmatorul dialog permite lui Bob si Alice sa-si stabileasca o cheie partajata KAB:

Alice acceseaza un serviciu de distribuire a cheii pentru a obtine un certificatul de cheie publica care-i da lui Alice cheia publica a lui Bob. Acesta se numeste un certificat deoarece el este semnat de o autoritate de inbcredere - persoana sau organizatie bine cunoscuta a fi de nadejde. Dupa verificarea semnaturii, Alice citeste cheia publica lui Bob KBpub din certificat.(utilizarea certificatelor si constructia lor sunt discutate in sectiunea 2.3)

Alice creaza o noua cheie partajata KAB si o cripteaza folosind KBpub cu un algoritm de cheie publica. Ea trimite rezultatul lui Bob impreuna cu un nume care identifica unic o pereche de chei publice private (deoarece Bob poate avea mai multe perechi de chei publice private). Deci Alice trimite key-name lui KBpub lui Bob.

Bob selecteaza cheia privata corespunzatoare KBpriv din depozitul de chei private din depozitul lui de chei private si o foloseste pentru a decripta KAB. De notat ca mesajul lui Alice catre Bob poate sa fi fost corupt sau falsificat in tranzit. Consecinta ar fi simpla daca Bob si Alice nu impart aceeasi cheie KAB. Daca aceasta problema poate fi dejucata prin adaugarea si adaugarea unei valori agreata sau unui sir mesajului, cum ar fi numele sau adresele de mail a lui Bob si Alice, pe care Bob poate sa o verifice dupa decriptare.

Scenariul de deasupra ilustreaza utilizarea criptografiei cu cheie publica de a distribui o cheie secreta partajata. Aceasta tehnica este cunoscuta ca un protocol criptografic hibrid si este foarte larg utilizat, deoarece el exploateaza caracteristicile folositoare ale algoritmilor de criptare cu cheie publica si cheie privata. Rezultatul rezumatului criptat serveste ca o semnatura care insoteste mesajul. Criptografia cu cheie publica este in general folosita in urmatorul scop: autorul genereaza o semnatura cu cheia lui privata; semnatura poate fi decriptata de catre orice receptor care foloseste cheia publica corespunzatoare. Exista o cerinta suplimentara: verificatorul ar trebui sa fie sigur ca cheia publica reala este a celui protagonist care pretinde a fi semnatar – aceasta cheie publica este distribuita odata cu certificatul de heie publica descris in 2.3

Scenariul 4. semnaturi digitale cu o functie rezumat securizata: Alice vrea sa semneze un document M astfel incat oricare destinatar poate verifica daca ea este autorul documentului. Astfel cand Bob acceseaza mai tarziu documentul semnat, dupa receptionarea lui, prin orice ruta si de la orice sursa ( de exemplu, documentul poate fi trimis intr-un mesaj sau poate fi recuperat dintr-o baza de date )el poate verifica ca Alice este autorul.

Alice calculeaza un rezumat de lungime fixa a documentului numit Digest(M).

Alice cripteaza rezumatul in cheia sa privata, si-l aplica lui M si rezulta M,KApriv valabil utilizatorilor planuiti.

Bob obtine documentul semnat, extrage M si calculeaza Digest (M).

Bob decripteaza KApriv folosind cheia publica a lui Alice KApub si compara rezultatul cu Digest (M) calculat de ea. Daca ei se potrivesc semnatura este valida,

2.3 Certificate un certificat digital este un document care contine o declaratie (deobicei mica) semnata de un responsabil. Vom ilustra conceptul cu scenariul.

Scenariul 5. solosirea certificatelor: Bob este o banca. Cand clientii lui stabilesc un contact cu el, ei au nevoie sa fie siguri ca vorbesc cu Bob (banca), chiar daca ei nu l-au mai contactat pe el inainte. Bob are nevoie sa autentifice clientii lui inainte de a le da acces la conturile lor.

De exemplu, Alice poate considera aceasta idee folositoare in obtinerea unui certificat de la banca ei declarand numarul ei de cont. (Figura 4). Alice poate utiliza acest certificat pentru a se certifica ca ea are un cont la banca Bob. Certificatul este semnat cu cheia privata lui Bob KBpriv .Un vanzator Carol poate accepta un astfel de certificat pentru plata obiectelor din contul lui Alice. Ea poate valida senatura in campul 5.

Pentru a face acest lucru Carol trebuie sa aiba cheia publica a lui Bob si Alice trebuie sa fie sigura ca, aceasta o poate apara impotriva posibilitatii ca , ar poate semna un certificat fals care asociind numele ei cu contul unei alte persoane. Pentru a duce la sfarsit acest atac, Alice ar genera o noua pereche de chei KB’pub, KB’pub si sa le foloseasca pentru a genea un certificat fals creand impresia ca provine de la banca Bob.

Carol are nevoie de un certificat cu cheie publica a lui Bob semnat de o autoritate de incredere bine cunoscuta. Lasa-ne sa afirmam ca Fred reprezinta federatia Bancherilor, una a carei rol este de a certifica cheile publice ale bancilor. Atunci Fred ar emite un certificat de cheie publica pentru Bob (figura 5).

Desigur acest certificat depinde de autenticitatea cheii publice a lui Fred KFPUB , deci avem o problema de autenticitate recursiva – Carol poate sa se bazeze numai pe acest certificat daca ea poate fi sigura ca cunoaste cheia publica autentificata a lui Fred KFPUB .

Noi putem intrerupe aceasta recursivitate prin asigurarea ca, Carol obtine cheia KFPUB prin cineva,in care ea are incredere – ea poate manevra cheia printr-o reprezentanta a lui Fred sau ea poate receptiona o copie semnata a ei de la cineva pe care ea i-l cunoaste si in care are incredere si care i-i transmite ca acea copie vine direct de la Fred. Exemplul nostru ilustreaza un lant de certificare, unul cu 2 legaturi in acest caz.

Noi am facut deja aluzie la una din problemele ridicate impreuna cu certificatele – dificultatea alegerii unei autoritati de incredere, de la care un lant de autentificari poate porni. Increderea este rareori absoluta, deci alegerea unei autoritati trebuie sa depinda de scopul pentru care certificatele sunt realizate. Alte probleme se ridica asupra riscului ca cheile private pot fi compromise si asupra lungimii permise a lantului de certificare – cu cat mai lung este lantul cu atat mai mare este riscul unei legaturi slabe.   

16 of 58

Problema: acest schimb de cheie este vulnerabil la atacurile de tip om in mijlocul atacului. Mallory poate intercepta cererea initiala a lui Alice la erviciul de distributie a cheii, pentru certificatul de cheie publica a lui Bob si trimite un raspuns ce contine cheia publica al lui. Mallory poate apoi intercepta toate mesajele urmatoare. In descrierea deasupra noi ne aparam impotriva acestui tip de atac cerand ca certificatul lui Bob sa fie semnat de o autoritate bine cunoscuta. Pentru a se apara impotriva acestui atac, Alice trebuie sa se asigure ca certificatul de chie publica a lui Bob este semnat cu o cheie publica (cum am descris dedesubt) pe care ea l-a receptionat intr-o maniera sigura.

Semnaturile Digitale Criptografia este utilizata pentru a implementa un mecanism cunoscut ca semnatura digitala. Aceasta rivalizeaza cu rolul semnaturilor conventionale, fiind verificata de o parte terta; o parte terta verifica daca mesajul sau documentul este o copie nealterata a unuia produs de semnatar.

Tehnicile de semnatura digitala sunt bazate pe o legatura ireversibila cu mesajul sau documentul unui secret cunoscut doar de semnatar. Aceasta legatura poate fi obtinuta prin criptarea mesasjului – sau mai mult, o forma compresata a mesajului numit un rezumat, folosind o cheie care este cunoscuta doar de semnatar.un rezumat este o valoare de lungime fixa calculat prin aplicarea unei functii rezumat securizata. O functie rezumat securizata este similara cu o functie de checksum, dar checksum-ul este mai putin probabil sa produca o valoare de rezumat similar pentru 2 mesaje diferite

Utilitatea provocarilor: un aspet important al progresului Roger Needham si Michael Schroeder a fost realizarea ca o parola a unui utilizator nu e nevoie sa fie transmisa unui serviciu de autentificare ( si de aici expus in retea) de fiecare data cand el este autentificat

3 Algoritmi de criptografie

Un mesaj este incriptat de un expeditor aplicand regula sa transforme un text la un ciphertext ( o alta secventa de biti). Destinatarul trebuie sa stie inverse regula pt transformarea ciphertextului in text original. Transformarea ecriptarii este definite cu 2 parti, o functie E si o cheie K. rezultatul mesajului criptat este scris k

E(K,M) = k

Functia E de criptare define un algoritm care transforma obiecte de date in text plan in data criptata prin combinarea lor cu cheia si transportarea intr-o maniera care este dependent de valoarea cheii. Decriptarea este purtata folosind o functie inverse D, care ia o cheie ca parametru. Pentru criptarea cheii secrete, cheia folosita la decriptare este la fel ca cea folosita pentru criptare

D(K,E(K,M)) = M 22 of 58

Din cauza folosintei simetriei cheiilor, criptografia cheilor secrete este deseori referita ca o criptografie simetrica, in care criptografia cu cheie publica este referita ca asimetrica deoarece cheile folosite in criptare si decriptare sunt diferite, cum vom vedea. In sectiunea urmatoare, vom descrie mai larg functiile de criptare al ambelor tipuri.

Algoritmi simetrici <> daca noi scoatem parametrul cheii din consideratie prin definirea Fk([M]) = E (K,M) atunci cand este o proprietate de functii de criptare puternice in Fk ([M]) este relative usor de com[utat, unde inversul Fk -1([M])este asa de greu incat calcularea nu prea este fezabila. Functii ca acestea sunt functii de o singura cale. Efectivitatea oricarei metode de criptare depinde de folosirea unei functii de criptare Fk care are o prorietate de o singura cale. Este cea care protejeaza impotriva atacurilor menite sa descopere M dat k.

Pentru algoritmii bine proiectati simetric ca acestea descries in sectiunea urmatoare, puterea lor impotriva incercarilor de a descoperi K date, un text plan M si ciphertextul k depind de marimea lui K. Aceasta este din cauza ca multe forme de atac sunt cele mai crude, stiute ca atac de forta bruta. Atacurile de forta bruta au rolul de a executa print ate valorile posibile ale lui K calculand E pana cand rezultatele se potrivesc valorii lui k care este deja stiuta. Daca K are N biti atunci un astfel de atac necesita 2N-1 iteratii in medie, si un maxim de 2N iteratii, pentru a gasi K.

De aici timpul de spargere K este exponential in numarul de biti in K.

Algoritmii asimetrici <> cand o cheie publica/private este folosita, functiile de o singura cale sunt exploatate intr-o alta cale. Fezabilitatea cheii publice a fost propusa intai de Diffie si Hellman [1976] ca o metoda criptografica care elimina nevoia de increde intre partile comunicatoare. Baza pentru toate schemele de chei publice este existenta functiilor usii capcane. O dunctie usa capcana este o functie de sens unic cu o iesire secreta este usoara de calculate intr-o directie dar este infezabila de calculate inversul decat daca un secret este cunoscut. A fost posibilitatea de gasire a acestor functii si folosirea lor in criptografia practica care au fost sugerate de Diffie si Hellman. De atunci mai multe scheme de chei publice au fost propuse si dezvoltate. Toate depend de folosirea functiile de numere largi ca functiile usa capcana.

Perechea de chei necesara pentru algoritmii asimetrici este derivate din radacina comuna. Pentru algoritmul RSA, descries in sectia 7,3.2, radacina este o pereche de numere prime arbitrar aleasa. Derivarea perechilor de chei din radacina este o functie de un singur sens. In cazul algoritmului RSA, numerele primele sunt multiplicate impreuna o computatie care ia doar cateva secunde, chiar si pentru folosirea numerelor prime mari. Produsul rezultat , N, este desigur mai mare decat inmultitorii. Folosirea multiplicarii este o functie de sens unic in sensul ca este nefezabil de derivat multiplicantii din produs care este de factorizat produsul

Una din perechile de chei sunt folosite in criptare. Pentru RSA, functia criptarii obscureaza textul prin tratarea fiecarui bloc de biti ca un numar binary si ridicandu-l la puterea cheii, modulo N. numarul rezultat este corespunzatorul blocului ciphertext.

Dimensiunea lui N si cel putin o pereche de chei este mult mai mare decat dimensiunea cheii de siguranta pentru cheile simetrice ca sa asigure ca N este infactoriabil. Pentru acest motiv, potentialul pentru atacurile de forta bruta de pe RSA este scazut; rezistenta sa depinde de infezabilitatea de factorizare N. vom discuta marimile de siguranta pentru N in sectiunea 3.2

Codurile lock <> Majoritatea algoritmilor de criptare opereaza pe blocuri de marime fixa de date ; 64 biti este o dimensiune populara pentru blocuri. Un mesaj este subdivizat in blocuri, si ultimul bloc este captusit la lungimea standardizata daca este necesar si fiecare bloc este criptat independent. Primul bloc este disponibil de transmisie la fel de repede cat a fost criptat.

Pentru fiecare cod simplu, valoarea fiecarui bloc de codtext (ciphertext) nu depinde de blocurile precedate. Aceasta constituie o slabiciune, de cand atacatorul poate recunoaste modelul repetat si deduce implicarea lor in relatie cu textul plan. Nici integritatea mesajelor este garantata numai daca un control sau un mecanism de digerare secura este folosire. Majoritatea algoritmilor de cod bloc folosesc inlantuiri de coduri bloc pentru a preintampina aceste slabicuni.

Inlantuirea de cod bloc: In modul de inlantuirea de cod bloc, fiecare bloc de text este combinat cu blocul cod precedent folosind sau exclusive (XOR) inainte de criptare (figura 6). la decriptare, blocul este decriptat si apoi blocul precedent criptat (care ar fi trebuit sa fie stocat pentru scopul acesta) este XOR-at cu el sa obtina blocul de text plan. Aceasta da rezultate deoarece XOR este ambipotent sa ruleze 2 aplicatii simultan de ale sale care produce valoarea originala.

CBC este intentionata sa previna portii identice de text plan cripandu-le in bucati identice de text cod. Dar este o slbiciune la inceputul fiecarei secvente de bloc – daca deschidem conecxiunile criptate la 2 destinatii si trimitem acelasi mesaj secventele criptate ale blocurilor vor fi la fel, si ascultarea poate sa obtina ceva informatie folositoare de aici. Pentru a preveni, avem nevoie sa inseram o alta bucata de textplan in fata fiecarui mesaj. Acest text este numit vector de initializare. Stampila de timp face o buna initializare a vectorului, fortand fiecare mesaj sa porneasca cu un bloc de text plan diferit. Aceasta combinata cu operatia CBC, va rezulta in texte cod diferite, eventual 2 texte plane identice.

Folosirea CBC este restrictionata la criptarea datei care este transferata prin conexiune. Decriptarea va esua daca unele blocuri ale codului text sunt pierdute, decand procesul va fi inapt sa decripteze alte blocuri. Este deci necorespunzator pentru folosirea lui in aplicatii ca cele descries in capitolul 15, in care cateva pierderi de date sunt tolerate. Un suvoi de cod ar trebui folosit in aceste circumstante.

Suvoi de coduri <> Pentru unele aplicatii, ca, criptarea conversatiei telefonice, criptarea in blocuri este improprie deoarece suvoiul de date sunt produse in timp real in bucati mici. Monstrele de date pot fi chiar si de 8 biti sau chiar si de 1 bit, si ar fi fost de prisos sa fie captusite fiecare dintre ele in 64 de biti inainte de criptare si transmiterea lor. Suvoaiele de cod sunt algoritmi de criptare care fac criptarea incrementar, convertizand in cate un bit de text plan in acelasi timp.

Suna dificil de obtinut, dar de fapt este foarte simplu. Smecheria este construirea uni generator de cheie suvoi. Cheie suvoi este o secvente de lungime arbitrara de biti care pot fi folositi sa intunece continutul suvoiului de date prin XOR-area cheii suvoi cu suvoiul de date (figura 7). daca cheia suvoi este secura, asa este si rezultatul.

Idea este analoaga la o tehnica folosta intr-o comunitate de spionaj pentru a impiedica interceptorii unde un zgomot alb este pus sa ascunda conversatia intr-o incapere in timp ce se inregistreaza conversatia. Daca sunetul galagios din camera si zgomotul alb sunt inregistrate separate, conversatia poate fi redata fara zgomot prin scaderea inregistrarii zgomotoului alb din camera galagioasa.

Un generator de cheie poate fi construit prin iterarea unei functii matematicii asupra unei plaje de valori de intrare care sa produca suvoi cintuu de valori de intrare. Isirea sunt apoi concatenate sa produca blocuri de text plan, blocurile sunt criptate folosind o cheie impartasita de emitator si receptor.

Astfel in principiu, suvoaiele de date in timp real pot fi criptate.

Proiectia algoritmilor criptografici <> Sunt mai multi algoritmi criptografici bine proiectati ca E (K,M) = k ascunde valoarea lui M si o face practice imposibil sa receptioneze K mai repede decat forta bruta. Toti algoritmii de criptare se bazeaza pe manipulari de prezervarea informatiei ai lui M folosind principii bazate pe teoria informatii [Shannon 1949]. Schneier [1996] descrie principiile de confuzie si difuzie Shannon sa ascunda continutul blocului cod text M. combinand-o cu o cheie K de o marime suficienta pentru a rasplati dovada impotriva atacurilor de forta bruta.

Confuzie: operatii nondestructive ca XOR si deplasarea circulara sunt folosite pentru a combina blocuri de texteplan cu cheia, producand o structura noua de biti care intuneca relatia intre blocurile in M si k . Daca blocurile sunt mai mari decat caracterele aceasta va apara analiza bazata pe cunostinta frecventei caracterelor. (Masina Enigma al WWII Germana) folosea blocuri inlantuite de litera singura, si putea fi aparata de anazliza statica.)

Difuzie: Este o repetitiesi o redundata obisnuita in textul plan, difuzia disipa tiparele regulare care rezulta din transpunearea portiunilor a fiecarui bloc de text plan. Daca CBC este folosit, redundanta este distribuita deasemenea prin tot textul lung. Suvoiul de Cod text nu poate folosi difuzie doar pana cand nu mai sunt blocuri.

In sectiunile 2 urmatoare vom descrie proiectia algoritmilor importanti si practice. Toate au fost proiectate in lumina principiilor a caror subiect al analizelor riguroase au fost considerate ca fiind secure impotriva a tuturor atacurilor cu marja de siguranta. Cu exceptiile algoritmului TEA care este descries pentru scopurile illustrate, algoritmii descris aici sunt printer ce mai larg folositi in aplicatii unde este necesara securitate puternica. In unele roman mici slabiciuni sau zone de facut griji. Vom sumariza si descrie securitatea si performantele algoritmilor in sectiunea 5.1.

Cititorii care nu necesita o intelegere a operatiei algoritmilor criptografici pot omite sectiunile 3.1. si 3.2.

Functia de criptare TEA

26 of 58

3.1 algoritmii (simetrici) de cheie secreta

Multi algoritmi publicati si dezvoltati in anii recenti. Schneier [1996] descriu mai mult de 25 de algoritmi simetrici. Vom discuta algoritmii DES si IDEA in detaliu mai putin. DES a fost un standard American pentru multi ani, dar dar acum este un interes istoric deoarece cheile sale de 56 biti s prea mici pentru a rezista atacurilor de forta brutacu hardware modern. IDEA foloseste 128 biti si probabil cel mai efectiv algoritm de bloc simetric si bun la toate alegerile pentru criptarea in volum.

In 1997, Anstitul American de Standarde si Tehnologie (NIST) a invitat o invitatie pentru propunerile unui algoritm pentru adoptare ca un nou Standard de Criptare Avansat (AES). Vom sa cateva somformatii mai jos.

TEA <> Principiile de proiectare pentru algoritmii simetrici subliniati sunt ilustrati bine in algoritmul mic de criptare dezvoltat la universitatea Cambridge [Wheeler si Needham 1994]. Functia criptarii, programata in C, este data in intreagul sau in Figura 8

Figura 9 Functia de decriptare TEA

26 of 58

Figura 9 TEA in uz

27 of 58

Algoritmul TEA foloseste runde de adunare intregi, XOR (operatorul ^) si deplasarea manierei bitilor logice (<<si>>) pentru a obtine difuzie si confuzie a tesaturii bitilor in text plan. Textul plan este un bloc de 64 de biti reprezentati ca intregi de 32 de biti in textul vector[]. Cheia e de 128, reprezentata ca intregi de 32 de biti.

La fiecare 32 runde, cele 2 jumatati ale textului sunt repetat combinate cu portiunile deplasate ale cheii si fiecare in linia 5 si 6. folosirea XOR si portiunile deplasate ale textului ofera confuzie, si deplasarea si inversarea celor 2 portiuni de text ofera difuzie. Cosntanta delta nonrepetitiva este combinata cu fiecare portiune a textului pe fiecare ciclu pentru a ascunde cheia in cazul in care ea ar putea dezvaluita de o sectiune a textului care nu variaza. Functia decriptarii este inversul celei pentru criptare si este dat in Figura 9.

Acest program scurt ofera criptare secura rezonabila si cheie secreta rapida. Porformanta sa a fost masurata de aproximativ de 3 ori fata de algoritmul DES, si concisetea programului duce de sine la optimizare si implementare hardware. Cheia de 128 biti este secura impotriva atacurilor de forta bruta.

In figura 10 este prezentata o procedura simpla cu TEA in criptare si decriptare

DES<> Standardul Criptarii de Date [Biroul National de Standarde 1977] a fost dezvoltat de IBM si subsecvential adoptat ca un standard US American pentru govern si aplicatii business. In acest standard , hartile functiilor de criptare, o intrare de text plan de 64 de biti intr-o iesire de 64 de biti criptata folosind o cheie de 56 biti. Algoritmul are 16 stagii dependente numite runde, in care data de criptare este bit rotate de un numar de biti determinati de cheia si 3 transpozitii independente de chei.

Algoritumul a consumat mult timp pentru a fi executat in softaware-ul de pe calculatoarelor din nii 70-80, dar a fost implementat in hardware-ul rapid VLSI si astfel putand fi usor incorporate in interfata de retea si alte chip-uri de comunicatie.

In iunie 1997, a fost spart intr-un larg mediatizat atac prin forta bruta.

Atacul a fost efectuat in contextul unei competitiipentru a demonstra lipsa criptarii de securitate cu chei mai scurte de 128 biti. [www.rsasecurity.com]. un consortiu de utilizatori de internet au rulat o aplicatie client pe un numar de calculatoare si statii de lucru, care au crestut de la 1000 pana la 14000 [Curtin and Dolske 1998].

Programul client a fost folosit in spargerea cheii particulare folosita intr-o mostra de textplan/textcod si apoi folosit pentru a decripta un mesaj secret. Clientii interactionau cu un singur server, care coordona munca lor, emitand fiecarui client o serie de valori ale cheii pentru verificarea si a receptionarea progreselor lor. Calculatorul client tipic a rulat programul client odata numai ca o activitate de fundal si a avut o performanta de aproximativ egala cu a unui processor Pentium de 200Mhz. cheia a fost Sparta in aproximativ 12 saptamani, ulterior aproximativ 25% din posibilul de 256 sau 6X 1016 valori au fost parcurse. In 1998 o masina a fost dezvoltata de Electronic Frontier Foundation [EFF 1998] care poate sparge cu success cheile DES in aproape 3 zile.

Desi este utilizata in multe aplicatii comerciale si alte aplicatii, DES in forma sa de baza ar trebui considerata invechita pentru protectia tuturor inafara de informatia de valoare scazuta. O solutie care este frecvent utilizata este cunoscuta ca DES triplu (3DES) [ANSI 1985, Schneier 1996]. Aceasta implica aplicarea DES de 3 ori cu 2 chei K1 si K2: [1985, Schneier 1996]

Aceasta da o putere impotriva atacurilor de forta bruta echivalente cu o cheie de lungime de 112 biti, oferind putere adecvata pentru viitorul apropiabil, dar are dezavantajul unei performante scazuta rezultata din tripla aplicare a unui algoritm care este deja incetinit de standardele moderne.

IDEA<> International Data Encryption Algorithm a fost devoltat la inceputul anilor 90 ca un successor la DES. La fel ca TEA, foloseste o cheie pe 128 biti pentru criptarea blocurilor de 64 bit. Algoritmul sau este bazat pe algebra grupurilor si are 8 parti de XOR, suma modulo 216 si inmultire. Pentru ambele DES si IDEA, aceeasi functie este folosita in criptare si decriptare: o proprietate folositoare pentru algoritmi sta sa fie implementata fizic.

Puterea IDEA a fost intensive analizata, si nu au fost gasite slabiciuni semnificative. Ea efectuea criptare si decriptare in aproximativ de ori mai repede decat DES.

AES<> In 1997 NIST a emis propuneri pentru un algoritm de securitate si efficient spre a fi adoptat ca un nou standard (AES) [NIST 1999]. Evaluarea va continua pana in mai 200, cand un standard preliminar va fi ales, si standardul final va fi publicat in 2001.

15 algoritmi au fost trimisi de comunitatea de cercetare criptografica in raspuns invitatiei AES. Urmarind recapitulare intensive tehnica, 5 din ele au fost selectate pentru a le inainta la o faza a doua a evaluarii. Toti candidatii sprijina marimi de chei de 128, 192 si 256 biti, ultimii 5 sunt pentru performanta inalta.



Odata anuntat, AES pare a deveni aproape cel mai lar utilizat algoritm simetric de criptare.

Algoritmii de criptare cu cheie publica (asimetrica)

Numai o parte din chemele practice cu cheie publica au fost adoptate pana la data stabilita. Ei depend de folosirea functiilor usa capcana a numerelor largi de a produce cheile. Cheile Ke si Kd sunt o pereche de numere foarte mari, si functia de criptarea efectuea o operatie, ca exponentialitatea pe M, folosind una dintre ele. Decriptarea este o functie similar ace foloseste cealalta cheie. Daca exponentialitatea foloseste aritmetica modulara, ea poate fi aratata ca rezultatul si este asemenea valorii originalule M; care este:

O dorinta principala de a participa in comunicatia sigura cu altii face ca pereche de pereche de chei Ke si Kd si tine decriptarea cheii Kd un secret. Criptarea cheii Ke poate fi publica pentru utilizare pentru oricine vrea sa comunice. Criptarea Ke poate fi vazuta ca o parte a functiei de criptare de un singur sens E, si decriptarea cheii Kd este piesa cunoasterii secrete care permite principalul p pentru inverse criptarea. Oricare detinator al Ke care este disponibil poate cripta mesajele Ke, dar numai cel care are cheia secreta Ke poate decripta mesajul.

Utilizarea functiilor numerelor largi duce la costuri mari de procesare in calcularea functiilor D si E. Vom vedea mai tarziu ca aceasta este o problema ca trebuie sa fie adresata de utilizarea cheilor publice numai in stadiile initiale a sesiunilor de comunicatii sigure. Algoritmul RSA este cu siguranta cel mai cunoscut algoritm cu chei publice si noi i-l descriem in detaliu aici. O alta clasa a algoritmilor este bazapa pe functii derivate din comportamentcurbelor eliptice dintr-un plan. Acesti algoritmi ofera posibilitatea functiilor de criptare si decriptare la un cost cost mic, la acelasi nivel de securitate, dar aplicatia lor practica este mai putin avansata si le vom trata scurt.

RSA<> Proiectul The Rivest, Shamir si Adelman (RSA) pentru un cod cheie publica este bazat pe utilizarea produsului a doua numere prime foarte mari ( mai mari de 10100 ), bazandu-se pe faptul ca determinarea factorilor primi a acestor numere mari este asa de dificil de calculate aproape imposibil.

In ciuda investigatiilor intensive, nici un defect nu a fost gasit in el si este acum larg utilizat. O schita a metodei este prezentata. Pt gasirea unei pereche de chei e, d:

  1. allege 2 numere prime mari, P si Q ( fiecare mai mari de 10100), cu forma de

N=PxQ

Z=(P-1)x(Q-1)

2.Pentru d alege orice numar care este relativ prim cu Z (adica nu are nici un factor comun cu Z).

Noi ilustram calculele imlicate folosind valori intregi mici pentu P si Q:

P = 13, Q = 17 → N = 221, Z = 192

d = 5

3. Pentru a-l gasi pe e rezolva ecuatia:

e x d = 1 mod Z,

unde e x d este cel mai mic element divizibil cu d in seriile Z + 1, 2Z + 1, 3Z + 1, . .

e x d = l mod 192 = l, 193, 385, . .

385 este divizibil cu d

e = 385/5 = 77

Pentru a cripta un text folosind metoda RSA textul inteligibil este divizat in 2 blocuri egale de lungime k biti unde 2k< N (deci valoarea numerica a unui bloc este intotdeauna mai mica decat N; in aplicatiile practice k este cuprins intre 512 si 1024).

k = 7 cand 27 = 128

Functia pentru criptarea unui singur bloc de text inteligibil M este:

E’(e,N,M) = Me mod N,

pentru un mesaj M, textul cifrat este M77 mod 221

Functia pentru decriptarea unui bloc de text criptat c pentru a obtine blocul de text decriptat original este:

D’(d,N,c) = Cd mod N

RSA a demonstrat ca E’ si D’ sunt mutual inverse ( asta inseamna ca E’(D’(x)) = D’(E’(x)) = x) pentru toate valorile lui P cuprinse intre 0≤ P ≤ N.

Cei 2 parametri e si N pot fi priviti ca o cheie pentru functia de criptare si, similar, d si N reprezintand o cheie pentru functia de decriptare. Deci noi putem scrie Ke =<e,N> si Kd =<e,N> primim functiile de criptare E(k..,M) = k (notatia indica faptul ca mesajul criptat poate fi decriptat numai de detinatorul cheii private kd) si

D(Kd, k ) = M.

Nu conteaza ca are o potentiala slabiciune pentru toti algoritmii cu chei publice deoarece cheia publica este disponibila pentru atacatori, ei pot usor genera mesaje criptate. Astfel ei pot incerca sa decripteze un mesaj necunoscut criptand complet secventele de biti arbitrare pana cand se realizeaza o potrivire cu mesajul tinta. Acest atac, cunoscut ca atacul textului inteligibil ales, este invins prin asigurarea ca toate mesajele sunt mai mari decat lungimea cheii, deci aceasta forma de atac este mai putin realizabila decat atacul direct asupra cheii.

Un presupus destinatar a informatiei secrete trebuie sa publice sau sa distribuie perechea (e,N) in timp ce d este pastrata secret. Publicarea perechii (e,N) nu compromite secretul d deoarece orice incercare de a determina d cere cunoasterea numerelor prime originale P si Q , iar acestea pot fi obtinute doar prin factorizarea lui N.

Factorizarea numerelor mari (reamintim ca P si Q sunt alese a fi >10100, deci N >10200) consuma foarte mult timp chiar si pe calculatoare foarte peformante. In 1978 Rivest si altii au concluzionat ca facturizarea unui numar mai mare ca 10200 ar lua mai mult decat 4 miliarde de ani cu cel mai cunoscut algoritm pe un computer ce realizeaza un milion de instructiuni pe secunda.

Calculatoare mult mai rapide si metode de factorizare din ce in ce mai bune au fost dezvoltate inca din 1978, sustine Rivest si altii. RSA a emis o serie de modificari pentru a efectua factorizari de numere mai mari de 100 decimale. Numere pana la 155 decimale in lungime au fost, cu succes, factorizate de utilizatorii unui consortiu distribuit pe internet ce au lucrat intr-o maniera similara cu eforturile de spargere ale DES descrise in sectiunea precedenta. In acel timp, situatia era ca acele numere de 155 digiti ( sau, echivalent 500 binary digiti) ce au fost cu succes factorizate au dat nastere de dubii referitor la securitatea cheilor de 512 biti. Efortul de procesare necesar pentru factorizarea a unui numar de155 digiti nu a fost publicat, dar un numar de 140 digiti a fost necesar 2000 de MIPS-ani in februarie 1999. Un an MIPS reprezinta efortul de procesare generat de un procesor cu o viteza de un milion de instructiuni pe secunda ruland un an. Cipurile cu un singur procesor de astazi au viteze de ordinul a 200 MIPS permitandu-le sa efectueze aceste sarcini in aproximativ 10 ani, dar aplicatiile de factorizare distribuita si procesoarele paralele pot reduce timpul la 2 zile. Corporatia RSA ( detinatorul patentului de algoritm RSA) recomanda o cheie de lungime de cel putin 768 de biti, sau aproximativ 230 digiti decimali pentru un termen lung (aprox 20 ani) de securitate. Chei de 2048 biti sunt utilizate in unele aplicatii.

Toate calculele puternice de mai sus duc la concluzia ca algoritmii de factorizare recent cunoscuti sunt cei mai accesibili. RSA cat si alte forme de criptografie asimetrica care folosesc inmultire cu numere prime ca singura functie ar fi vulnerabile atunci cand un algoritm de factorizare mai rapid ar fi descoperit.

Algoritmi in curbe eliptice.

O metoda pentru generarea de perechii de chei publice/private a fost bazata pe dezvoltarile si testele pe proprietatile curbelor eliptice. Detalii complete pot fi gasite in cartea lui Menezes dedicata acestui subiect. Cheile deriva din ramuri diferite ale matematicii, iar spre deosebire de RSA securitatea lor nu depinde de dificultatea factorizarii numerelor mari. Cheile mai scurte sunt securizate iar cerintele procesarii criptarii si decriptarii sunt mai mici decat cele pentru RSA. Algoritmii de criptare in curbe eliptive sunt adegvate pentru a fi adoptate mai mult in viitor, in special in sisteme cum ar fi acele dispozitive mobile incorporate care au resure de procesare limitate. Matematicile relevante implica unele proprietati destul de complexe ale curbelor eliptice care depaseste scopul acestei carti.

Protocoalele criptografice hibride

Criptografia cu chei publice este avantajoasa comertului electronic deoarece    nu avem nevoie de un mecanism de distributie a cheii securizate. (Este nevoie de autentificare cheile publice dar este mai putin greoi, cerand certificatul si cheia publica). Dar costurile procesarii criptografiei cu chei publice sunt prea mari chiar si pentru mesaje de marime medie normal intalnite in comertul electronic. Solutia adoptata in cele mai multe sisteme distribuite la scara larga este de a folosi o schema de criptare hibrida in care criptografia cu chei este folosita pentru a autentifica partile si a cripta un schimb de chei private, care sunt folosite pentru toate comunicatiile urmatoare. Noi descriem implementarea protocoului hibrid in cazul SSL in sectiunea 6.3.

Semnaturile digitale

Semnaturile digitale puternice sunt niste cerinte esentiale pentru securitatea sistemului. Ele sunt necesare pentru a certifica bucati de informatie, ca de exemplu sa furnizeze formulare veridice legand identitatile utilizatorilor de cheile lor publice sau legand cateva drepturi de acces sau roluli de identitatile utilizatorilor.

Nevoia de semnaturi in multe feluri de afaceri si tranzactii personale este dincolo de disputa. Semnaturile de mana au fost utilizate ca intelesuri de verificare documentelor atat timp cat documentele inca exista. Semnaturile de mana sunt utilizate pentru a satisface nevoile destinatarilor documentelor pentru a verifica daca acest document este:

Autentic: el convinge destinatarul ca este semnatorul deliberat ce a semnat documentul si nu a fost alterat de nimeni altul.

Nefalsificabil: acesta furnizeaza dovada ca cel care semneaza si nimeni altcineva, a semnat deliberat documentul. Semnatura nu poate fi copiata si plasata pe alt document

Nerepudiabil: cel care semneaza nu poate nega semnatura lor.

In realitate, nici una din proprietatile semnaturilor dorite nu sunt obtinute in totalitate de semnaturile conventionale falsificarile si copierile sunt greu de detectat, documentele pot fi alterate dupa semnatura si semnatarii sunt cateodata amagiti in semnarea documentului involuntar sau neintentionat dar noi suntem doritori de a trai cu imperfectiunea lor datorita dificultatii trisarii si a riscului detectiei. Ca si semnaturile de mana semnaturile digitale depind de legatura cu un atribut unic si secret a semnatarului unui document. In cazul semnaturilor de mana, secretul este tiparul semnaturii de mana a semnatarului.

Proprietatile documentelor digitale sunt depozitate in fisiere sau mesaje complet diferite de documentele de hartie. Documentele digitale sunt deobicei usor de generat, copiat si transformat. Simpla adaugarea identitatea creatorului, indiferent ca este un sir de text, fotografie sau o imagine scris de mana, nu are nici o valoare pentru verificare.

Este nevoie de o legatura irevocabila a identitatii semnatarului la intreaga secventa de biti care sa reprezinte un document.

Aceasta trebuie sa satisfaca prima cerinta deasupra, pentru autenticitate. Ca si semnaturile de mana, data unui document nu poate fi garantata de o semnatura. Destinatarul documentului semnat stie doar ca documentul a fost semnat inainte de a-l primi.

Privind non-repudierea, aici este o problema datorita faptului ca nu ridica semnaturi de mana. Ce s-ar intampla daca semnatarul ar scoate la iveala cheia lui privata si ulterior sa respinga ca a semnat, spunand ca altii ar fi semnat in locul sau, deoarece cheia nu a fost secreta? Unele protocoale au fost dezvoltate pentru a adresa aceasta problema sub titlul de semnaturi digitale nenegate, dar ele adauga considerabil la complexitate.

Un document cu semnatura digitala poate fi considerat mult mai rezistent la falsificare decat unul de mana. Dar cuvantul original are inteles mic cu referinta la documente digitale. In masura ce vom vedea in discutia noastra despre necesitatile comertului electronic, semnaturile digitale singure nu pot de exemplu sa previna dubla cheltuiala a cash-ului electronic- alte masuri sunt necesare sunt necesare oentru prevnirea acestui lucru. Vom descrie acum 2 tehnici de semnatura digitala a documentelor, legand

Figura 11 Semnaturile digitale cu chei publice

principiul identitatii la document. Ambele depind de utilizarea criptografiei.

Semnatura digitala <> un document electronic sau un mesaj M poate fi semnat de un principal A prin criptarea unei copie a M cu cheia KA atasandu-l la o copie de text necifrat a lui M si identificatorul lui A. Documentul semnat consta din M,A [M] KA . semnatura poate fi verificata de un responsabil care ulterior primeste documentul la verificare daca a fost creat A si de continutul sau M, nu a fost ulterior alterat.

Daca o cheie secreta este folosita la criptarea documentului, numai responsabilii care impart secretul pot verifica semnatura. Dar daca criptografia cu cheie publica este folosita atunci semnatarul foloseste cheia lui privata si oricine are cheia publica corespondenta poate verifica semnatura. Aceasta este cea mai buna analogie pentru semnaturi conventionale si satisface mai multe nevoi ale utilizatorilor.

Functii rezumat<> Functii rezumat se mai numesc functii de hash de securitate si se noteaza H(M). Ele trebuie proiectate cu atentie pentru a asigura ca H(M) este diferit fata de H(M’) pentru toate perechile de mesaje M si M’. Daca exista cateva perechi de mesaje M si M; astfel incat H(M)=H(M’), atunci un responsabil duplicitar poate trimite o copie semnata a lui M, dar cand este confruntat cu el

Semnaturi digitale cu chei publice

Criptografia cu chei publice este, in particular, bine adoptata de generatia de semnaturi digitale deoarece este relativ simpla si nu cere nici o comunicatie intre destinatarul unui singur document si semnatar sau orice terta parte.

Metoda pentru A de a semna un mesaj M, si B de a verifica mesajul este prezentata in continuare ( si este ilustrata in figura 11):

  1. A genereaza o pereche de chei    Kpubsi Kpriv si publica cheia publica Kpub prin plasarea ei intr-o locatie bine cunoscuta.
  2. A calculeaza rezumatul lui M    notat H(M) folosind si acceptand functia hash de securitate H si il cripteaza folosind chia privata Kpriv pentru a produce semnatura S = k . .
  3. A trimite mesajul semnat [M]k = M,S lui B.
  4. B decripteaza semnalul S folosind Kpub si calculeaza rezumatul lui M, H(M).

Algoritmul RSA chiar indicat pentru folosire in realizarea semnaturilor digitale. De notat ca cheia privata a semnatarului este folosita pentru a cripta semnatura, spre deosebire de utilizarea cheii publice a destinatarului pentru criptare acolo unde tinta este transmiterea informatiei in secret.

Explicatia pentru aceasta diferenta este urmatoarea – o semnatura trebuie creata folosind un secret cunoscut numai de semnatar si trebuie sa fie accesibila pentru toti pentru verificare.

Semnaturi digitale cu chei secrete MACs

Nu exista nici un motiv tehnic pentru ca un algoritm de criptare cu cheie secreta sa nu fie folosit pentru a cripta o semnatura digitala, dar pentru a verifica asemenea semnaturi cheia trebuie dezvaluita si aceasta poate cauza unele probleme cum ar fi:

  • Semnatarul trebuie sa aranjeze pentru verificator sa receptioneze cheia secreta folosind pentru semnarea sigura
  • Poate fi necesar sa se verifice semnatura in unele contexte si la timpi diferiti – pe timpul semnaturii semnatarul poate sa nu cunoasca identitatea verificatorilor. Pentru a rezolva aceasta problema, verificarea poate fi delegata de o persoana terta de incredere care detine cheile secrete a tuturor semnatarilor, dar aceasta adauga complexitate modelului de securitate si cere comunicatie sigura cu partea terta de incredere.
  • Divulgarea unei chei secrete folosita la semnare este nedorita deoarece slabeste securitatea semnaturilorfacuta cu acea cheie – o semnatura poate fi falsificata de un detinator a cheii care nu este proprietarul ei.

Pentru toate aceste motive, metoda cheii publice pentru generarea si verificarea semnatturilor ofera cea mai convenabila solutie in majoritate a situatilor.

O exceptie este atunci cand un canal de securitate este folosit pentru a transmite mesaje necriptate dar este o nevoie de a verifica autenticitatea mesajelor. De cand un canal sigur ofera comunicatie sigura intre 2 parti a unui proces subliniat in sectiunea 3.3 si folosit sa produca semnaturi la cost redus. Aceste semnaturi sunt denumite coduri mesaj de autentificare (MAC) menite sa reflecte scopul lor mai limitat – ele autentifica comunicarea intre perechi de responsabili bazati pe un secret impartasit

O tehnica de semnatura de cost scazut bazata pe chei secrete impartasite care au securitate adegvata pentru multe scopuri este ilustrata in figura 12 si explicata mai jos. Metoda depinde de existenta unui canal sigur prin care cheia secreta impartasita poate fi distribuita:

1. A genereaza o cheie aleatoare K pentru semnare si o distribuie folosing canale sigure catre unu sau mai multi responsabili care vor avea nevoe de mesaje autentificate receptionate de la A.responsabilii nu sunt de incredere sa destainui cheia partajata.

2. pentru orice document M care A doreste sa semneze, A concateneaza M cu K calculand rezumatul rezultatului” h = H (M+K) si trimite documentul semnat [M]k catre oricine doreste sa revendice semnatura. (Rezumatul este un MAC). K nu va utea fi compromis de divulgarea lui h, atat timp cat functia hash i-si are valoara in totalitate ascunsa.

3. destinatarul, B, concateneaza cheia secreta K cu documentul receptionat M si calculeaza rezumatul h’ = H(M+K). Semnatura este verificata daca h = h’.

Desi metoda sufera de dezavantajele listate mai sus, ea are un avantaj performanta deoarece nu implica criptare. Protocolul canalului securizat SSL descris in sectiunea 6.3 suport folosirea unei varietati mari de MAC-uri incluzand schema descrisa aici. Aceasta metoda este deasemenea utilizata in protocoul de cash electronic Millicent descris in sectiunea 6.4, care este important pentru a tine costul de procesare cat mai scazut pentru tranzactii de valori scazute.

4.3 functii rezumat securizate

Exista multe cai de a produce un tipar cu lungime fixa de bit care caracterizeaza un mesaj de marime arbtrara sau un document. Probabil ca cel mai simplu de folosit operatia XOR repetat pentru a combina piese de lungime fixa a documentului sursa. O astfel de functie este utilizata deobicei in protocoale de comunicatie pentru a produce un hash scurt de lungime fixa pentru a caracterixa un mesaj in scopurilor detectiei erorilor, dar este inadegvat ca bazele schemei semnaturii digitale. O functie de rezumat h securizata h= H(M) ar trebui sa aiba urmatoarele proprietati:

cu un M dat este usor de calculat h

cu un h dat este usor de calculat M

cu un M dat este greu de gasit in alt mesaj M’, astfel incat H(M)=H(M’).

Asemenea functii sunt deasemenea numite functii hash de un singur sens. Motivul pentru acest nume este evident bazat pe primele 2 proprietati. Proprietatea 3 cere o insusire aditionala: chiar daca stim ca rezultatul functiei hash, nu poate fi unic ( deoarece rzeumatul este o informatie redusa prin transformare), avem nevoie sa fim siguri ca un atacator, dat fiind un mesaj M care produce un hash h, nu poate descoperi un alt mesaj M’ care deasemenea produce h. Daca un atacator poate face acest lucru atunci ei pot falsifica un document semnat M’ fara a cunoaste scheia de semnatura ci doar copiand semnatura de la documentul semnat M si atasarea sa la M’.

Evident, setul de mesaje pe care hashul pe aceeasi valoare .. este restictionata si atacatorul ar avea dificultatea sa produca falsificare semnificative, dar cu rabdare ar putea reusi, deasemenea ar trebui sa fie pazita. Fezabilitatea este considerabil imbunatatita in cazul unui atac surpriza.

Alice prepara 2 versiuni M si M’ a unu contract pentru Bob. M este favorabil lui Bob si M’ nu.

alice face mai multe versiuni subtile pentru ambele M si M’ care sunt vizual imperceptibile de la oricare din ei prn metode ca adaugarea de spatii la sfarsiturile liniilor. Ea compara hashurile pentru toate M-urile daca ea gaseste 2 care sunt la fel, ea poate trece la urmatorul pas; daca nu ea se duce la producerea versiunilor vizual imperceptibile ale celor 2 documente pana cand ea gaseste o potrivire.

cand are o pereche de documente M si M’ unde hashul are aceeasi valoarea, ea va da un document favorabil M lui Bob sa-l semneze cu o semnatura digitala folosing cheia lui privata. Cand el i-l returneaza, ea va substitui versiunea potrivita M’ nefavorabila, pastrand semnatura de la M.

Daca valorile noastre de hash au lungime de 64 de biti noi cerem numai 232 versiuni pentru M si M’ in medie. Aceasta este prea mica pentru usurinta. Avem nevoie sa facem valorile noastre lui h de cel putin 128 biti pentru a le apara de atacuri.

Atacul cosnta intr-un paradox statistic cunoscut ca un paradox surpriza – probabilitatea gasirii perechii potrivite intr-un set dat este de departe cea mai mare decat gasirea potrivirii intr-o pereche individuala data. Stallings [1999] da derivatia statistica pentru probabilitatea ca vor fi 2 oameni cu aceeasi zi de nastere intr-un set de n oameni. Rezultatul este ca pentru un set de numai 23 de oameni sansele sunt egale, unde avem nevoie de un set de 253 de oameni pentru o sansa in care va si unul cu o zi de nastere intr-o zi data.

Pentru a satisface proprietatile afisate deasupra, o functie securizata rezumat necesita sa fie proiectata cu atentie. Operatii la nivelul bitilor folosite si secventionarea lor sunt similare cu cele gasite in criptografia simetrica, dar in acest caz operatiile nu necesita sa fie stocate, pana cand functia este definitiv intentionata sa fie reversiva, deci o functie rezumat securizata poate sa sa se foloseasca de o serie intreaga de operatii aritmeice si logice binare. Lungimea textului sursa este deobicei inclus in data rezumat.

Doua functii rezumat larg utilizate pentru aplicatii practice sunt algoritmul MD5 (numit asa deoarece este al cincilea dintr-o secventa a algoritmilor de mesaje rezumat dezvoltat de Ron Rivest) si SHA (Secure Hash Algoritm) adoptat pentru standardizare de catre US National Institute for Standards and Technology (NIST). Ambele au fost testate cu atentie si analizate si pot fi considerate secure adegvat pentru viitorul apropiat, in timp ce implementarile lor sunt rezonabil de eficiente. Noi le descriem scurt inainte Schneier [1996] si Mitchel et al. [1992] cercetare a tehnicilor de semnatura digitala si functii de mesaj rezumat in profunzime.

MD5 <> algoritmul MD5 [Rivest 1992] foloseste 4 runde, fiecare aplicand una din 4 functii nonlineare petru fiecare 16 segmente de 32 de biti a unui bloc de 512 biti a textului sursa. Rezultatul este un rezumat de 128 biti. MD5 este unul dintre cei mai eficienti algoritmi existenti.

SHA <> SHA este un algoritm care produce un rezumat de 160 biti. Este bazat pe algoritmul MD4 (care este similar cu MD5) cu unele operatii adaugate. Este substantial mai lent decat MD5, dar rezumatul de 160 de biti ofera o securitate mai puternica impotrova atacurilor surpriza.

Folosirea unui algoritm in creearea unu rezumat <> este posibila folosirea unui algoritm ca cele detaliate in sectiunea 3.1 care produce un rezumat securizat. In acest caz, cheia ar trebui publicata astfel incat algoritmul rezumat poate fi aplicat de catre oricine care doreste sa verifice semnatura digitala. Algoritmul de criptare este folosit in modul CBC, iar rezumatul este rezultatul unei combinari a valorii penultime a CBC-ului cu blocul final criptat.

4.4 standarde de certificate si autoritati de certificare

X.509 este cel mai larg utilizat format standard pentru certificate [CCITT 1988b]. Cu toate ca formatul certificatului X.509 este o parte a standardului X.500 pentru construirea directoriloarelor globale a numelor si atributelor [CCITT 1988a]. Este deobicei folosit in criptografie ca o definitie format pentru certificate liber folosite. Descriem standardul X500 in capitolul 9.

Structura si continutul unui certificat X.509 este ilustrat in Figura 13. dupa cum se poate vedea, el leaga o cheie publica de o entitate numita subiect. Lagura este in semnatura, care este emisa de o alta entitate numita emitator. Certificatul are o perioada de valabilitate care este definita de o pereche de dati. Intrarile <Nume Distins> sunt planuite a fi un nume a unei persoane, organizatie sau alta entitate impreuna cu informatia contextuala suficienta pentru a o livra unica. Intr-o implmentare X.500 completa aceasta informatie contextuala poate fi desemnata dintr-o ierarhie de directoare in care apare entitatea denumita, dar in absenta implementarilor X.500 globale ea poate fi doar un sir descriptiv.

Acest format este inclus in protocolul SSl pentru comertul electronic si este largh utilizat in practia pentru autentificarea cheilor publice, a serviciilor si a clientilor lor. Cateva companii si organizatii bine cunoscute si-au stabilit sa actioneze ca fiind autoritati de certificare (exemplu Verisign, CREN si altele, iar persoanele pot obtine certificatele de cheie publica X 509 de la ei prin sustinerea evidentei si identitatii lor. Aceasta duce la o procedura de verificare in 2 pasi pentri oricare certificat X.509:

sa obtina certificatul de cheie publica de la un emitator ( o autoritate de certificare) de la o sursa de incredere.

validarea semnaturii

Abordarea SPKI.

Abordarea X.509 este bazata pe unicitatea globala de nume distincte. A fost indicat ca fiind o tinta impracticabila ce nu poate reflecta realitatea legii actuale practica comerciala in care identitatea persoanelor nu este presupusa a fi unica dar este facuta unica de referinta catre alte persoane si organizatii. Aceasta poate fi vazuta in folosirea permisului de conducere sau intr-o scrisoare de la o banca ce autentifica numele unei persoane si adresa ( un nume singur este putin probabil a fi unic printre populatia lumii). Aceasta duce la un lant lung de verificare deoarece exista multi posibili emitenti de certificate de chei publice, iar semnatura lor trebuie validata prin intermediul unui lant de verificare care duce inapoi catre cineva cunoscut si de incredere fata de un responsabilul care efectueaza verificarea. Dar verificarea rezultata este in mare parte mai convingatoare, si multi din pasii acestui lant pot fi ascunsi la un proces prescurtat in ocazii viitoare.

Argumentele prezentate mai sus sunt baza dezvoltarilor recente ale protocoalelor SPKI (Simple Public-Key Infrastructure). Aceasta este o schema pentru creatie si management a seturilor de certificate publice. Ea permite lantului de certificate sa fie procesat folosind deductia logica de a produce certificate dobandite. De exemplu „Bob crede ca cheia publica a lui Alice este KApub” si „Carol are incredere in Bob ca cheia e a lui Alice” implica „Carol crede ca cheia publica a lui Alice este KApub”.

Practicile criptografiei

In sectiunea 5.1 comparam performanta criptarii cu algoritmii hash-ului securizat descrise mai sus. Consideram ca algoritmii de criptare sunt alaturi de functiile hash-ului securizat deoarece criptarea poate fi uneori folosita ca o metoda pentru semnatura digitala.

In sectiunea 5.2 vom discuta unele probleme non-tehnice inconjurate de folosirea criptografiei. Nu este loc pentru a face dreptate intr-o vasta cantitate a discutiei politice care a avut loc pe acest subiect de cand algoritmii puternici de criptografie au aparut pentru prima data pe domeniul public, nici dezbaterile nu au atins inca multe concluzii definitive. Tinta noastra este de a aduce la cunostinta cititorului asupra acestor neintrerupte dezbateri.

5.1 Performanta algoritmilor criptografici

Figura 16 arata ca marimea cheii (sau marimea rezultatului pentru functiile rezumatului securizat) si viteza algoritmilor de criptare si a functiilor rezumat securizat pe care le-am discutat in acest capitol. Unde se permite , noi acordam doua masuri de viteza; cele din columna etichetata „extinderea vitezii” sunt bazate pe cifrele lui Schenier (cu exceptia lui TEA care este bazata pe Wheeler and Needhman 1994). In columna etichetata „PRB obtimizat” noi dam cifre bazate pe acelea publicate in Preneel 1998. In ambele cazuri noi am ajustat figurile de a lua socoteala imbunatatirilor in performanta procesorului intre acea data si sfarsitul lui 1999; cifrele pot fi luate ca estimari brute a performantei algoritmilor pe un procesor Pentium 2 la 330 Mhz. Lungimile fiecarei chei da o indicatie bruta a puterii algoritmilor – in realitate cheia da numai o indicatie a costului de calcul unui atac asupra cheii; adevarata putere a algoritmului criptografic este mult mai greu de evaluat si continua sa fie pe motivul succesului algoritmului in ascunderea sa in textului necifrat . Diferenta dintre 2 coloane de performanta este descris de faptul ca cifrele lui Schneiersunt bazate pe codul sursa C publicat in 1996 , fara nici o incercare in a optimiza codul, cifrele PRB rezultatele unui efort de cercetare substantial patentat, neimplementand optimizarea algoritmilor intr-un limbaj de asamblare. Preneel si altii [1998] au oferit o discutie folositoare asupra puterii si performanta algoritmilor principali simetrici.

Noi am oferit numai cifrele de performanta a software-ului. Eforturile considerabile sunt capabile sa produca performanta inalta si implementari ieftine hardware (pe un singur chip) si acestea sunt asteptate sa ofere o performanta mai mare.

6 Studii de caz: Needham-Schroeder, Kerberos, SSL&Millicent

Protocoalele de autentificare publicate de Needham si Schroeder[1978] sunt miezul multor tehnici de securitate. Le vom relata in sectiunea 6.1. una dintre cele mai importante aplicatii a protocolului de autentificare cu cheie secreta este sistem Kerberos, care este subiectul cazului de studiu secundar (Sectiunea 6.2). Kerberos a fost proiectat pentru a furniza autentificare intre clienti si servere in retele care formeaza un domeiu de managment singular (intraneturi).

Noi deasemenea avem 2 studii de caz ce descriu protocoalele de securitate la nivel de aplicatie care sunt importante pentru comertul electronic. Primul studiu de caz pe nivel aplicatie trateaza protocolul SSL. Aceasta a fost proiectat specific pentru a intimpina nevoia de tranzactii electronice securizate. El este sustinut de majoritatea browserilor web si servere si este angajat in majoritatea tranzactiilor comerciale care au ajut loc pe web. Studiul de caz secundar descrie protocolul Millicent, care a fost proiectat, in special pentru a intampina nevoia pentru o metoda de plata pentru microtranzactii.

6.1 protocolul de autentificare Needham-Schroeder

Protocoalele descrise in continuare au fost dezvoltate in respuns la necesitatea de a managerea cheile (si parolele) intr-un mod securizat. In acel timp lucrarea lui [Needham-Schroeder 1978] a fost publicata, serviciile de retea tocmai aparuse si era o necesitate urgenta pentru cai mai bune de a administra securitatea in retelele locale.

In retele care sunt integrate pentru scopuri de administrare, aceasta nevoie poate fi intampinata de un serviciu cu cheie care emite chei de sesiune in forma de provocari (sectiunea 2.2). Acesta este scopul protocolului cu cheie dezvoltat de Needham-Schroeder au stabilit un protocol bazat pe folosirea cheilor publice si distributia cheii care nu depinde de existenta serverelor cu cheie si este si pe viitor mai potrivite in folosirea lor in retele cu multe domenii de management independente, Internetul. Nu descriem versiunea cheie publica in acest curs, dat protocolul SST descris in sectunea 6.3 este o variatie a lui.

Needham-Schroeder au propus o solutie de autentificare si distribuirea de cheie bazata pe un server de autentificare care furnizeaza chei secrete catre clienti. Functia serverului de autentificare este de a furniza o cale sigura pentru procese pereche de a obtine chei partajate. Pentru a face acest lucru serverul trebuie sa comunice cu clientii lui folosind mesajele criptate.

Needham-Schroeder cu chei secrete<> In modelul lor, desfasurarea unui proces din partea unui responsabil A care doreste sa initieze o comunicatie sigura cu un alt proces actionand in numele unui responsabil B care poate obtine o cheie pentru acel scop. Protocoul este descris pentru 2 procese arbitrare A si B, dar in sistemele client server, A este mai mult a fi un client initiand o secventa de cereri catre un oarecare server B. Cheia este furnizata catre A in 2 forme, una , aceea ca A poate sa o foloseasca pentru a cripta mesajele care le trimite catre B, iar cealalta varianta este aceea ca cheia poate fi transmisa securizat catre B. (ultima varianta este criptata intr-o cheie care este cunoscuta de B si nu de A, de aceea B poate sa o decripteze si astfel nu este compromisa in timpul transmisiei).



Serverul de autentificare S pastreaza un tabel continand un nume si o cheie secreta pentru fiecare responsabil cunoscut sistemului. Cheia secreta este folosita numai pentru autentificarea proceselor client de catre serverul de autentificare si de a transmite mesaje securizat intre procese client si serverul de autentificare.Cheia nu este niciodata dezvaluita catre o parte terta si este transmisa prin retea cel putin odata, cand este generata. (Ideal, o cheie ar trebui intotdeauna sa fie transmisa prin alte mijloace, ca hartie, mesaj oral, evitand orice expunere in retea). O cheie secreta este echivalentul unei parole utilizata pentru a autentifica utilizatori in sisteme centralizate. Pentru responsabili umani, numele este memorat in rubrica ’user name’ si ’password’. Amandoua sunt furnizate de utilizator la raspunsul proceselor client actionand in numele utlizatorului.

Protocolul este bazat pe generarea si transmiterea tichetelor de serverul de autentificare. Un tichet este un mesaj criptat continand o cheie secreta intr-o comunicare intre A si B. Noi aranjam mesajele intr-un protocol de Needham-Schroeder. Serverul de autentificare este S.

NA si NB sunt nonce-uri. Un nonce este o valoare intreaga care este adaugata unui mesaj pentru a demonstra prospetimea sa. Nonces-uri sunt folosite doar odata si sunt generate la cerere. De exemplu, nonces-urile pot fi generate ca o secventa de valori intregi sau prin citirea ceasului la masina de trimis.

Daca protocolul este cu succes complet, A si B pot fi sigure ca nici un mesaj

criptat in KAB receptioneaza mesaje venite de la alte persoane, si ca orice mesaj criptat in KAB pe care ei i-l trimit pot di intelesi numai de altii sau de S (si S este asumat demn de incredere). Aceasta este deoarece singurele mesaje care au fost trimise continand continand KAB au fost criptate in cheia secreta lui A si chea secreta lui B.

Exista o problema in acest protocol si anume ca B nu are nici un motiv de a crede ca mesajul 3 este recent. Un intrus care reuseste sa obtina cheia KAB si face o copie a tichetului si autentificatorului KB (ambele care ar fi putut fi lasate intr-o locatie de depozitare expusa de catre un program client esuat sau neglijent care rula sub autoritatea lui A), le poate utiliza pentru a initializa un schimb ulterior cu B, dandu-se drept A. Pentru ca acest atac sa aibe loc, valoarea veche a lui KAB trebuie sa fie compromisa; in terminologia de astazi, Needham-Schroeder nu au inclus aceasta posibilitate in lista lor cu amenintari, iar consensul opiniei este ca ar trebui sa fie facut. Problema poate fi remediata prin adaugarea unui „nonce” sau stampila cu data la mesajul 3, astfel incat el devine: KBpub .B decripteaza mesajul si verifica t daca este recent. Aceasta este solutia adoptata in Kerberos.

6.2 Kerberos

Kerberos a fost dezvoltat de MIT in anii 1980 ca sa ofere o gama de facilitati de autentificare si facilitati de securitate pentru utilizarea in reteaua de campus al lui MIT sau alte retele intranet. A trecut prin multe revizii si imbunatatiri in mica experienta si reactia din partea organizatiilor de utilizatori. Versiunea 5 al lui Kerberos, pe care noi le vom descrie in continuare, este calea catre standardele internetului (RFC 1510) si este in prezent folosita in multe companii si universitati. Codul sursa pentru o implementare a lui Kerberos este pusa la dispozitie de catre MIT; este inclusa in OSF Distribuited Computing Environment (DCE) si in Microsoft Windows 2000 ca un serviciu de autentificare.

O extensie a fost propusa pentru a incorpora folosirea certificatelor cu cheie publica pentru autentificarea initiala a responsabililor (pasul A sin Figura 16).

Figura 16 evidentiaza arhitectura procesului. Kerberos trateaza 3 tipuri de obiecte de securitate:

Tichet: Un simbol emis catre un client de serviciul Kerberos de recunoastere a tichetului pentru prezentare la un server particular, verficand faptul ca emitatorul tocmai a fost autentificat de Kerberos. Tichetele includ un timp de expirare si o cheie sesiune nou generata pentru folosirea ei de catre client si de catre server.

Autentificarea: un simbol construit de catre un client si trimis catre un server pentru a oferi identitatea utilizatorului si valabilitatea oricarei comunicatii cu un server. Un autentificator poate fi folosit numai o singura data. Ea contine numele clientului si o stampila de timp si este criptata cu cheia de sesiune adegvata.

Cheia de sesiune: o cheie secreta aleator generata de catre Kerberos si emisa de un client pentru utilizare cand se comunica cu un erver particular. Criptarea nu este mandatara pentru toate comunicatiile cu serverele; cheia sesiune este folosita pentru criptarea comunicatiei cu acele servere care o cer si pentru criptare toti autentificatorii (a se vedea deasupra).

Procesele client trebuie sa aiba un tichet si cheie sesiune pentru fiecare server pe care ei o folosesc. Ar fi impracticabil sa se furnizeze un tichet nou si o cheie noua pentru fiecare intercatiune client server. De aceea majoritatea tichetelor sunt garantate clientilor cu un timp de viata in jur de cateva ore, de aceea ei pot fi folositi in interactiunea cu un responsabil a unui server pana cand expira.

Un server Kerberos este cunoscut ca un centru de destributie a cheii (KDC). Fiecare KDC ofera un serviciu de autentificare (AS) si un serviciu de recunoastere a tichetului TGS. La logare utilizatorii sunt identificat de AES folosind o variatie a retelei securizate pentr-o metoda de parola, si procesul client care actioneaza in numele utilizatorului este furnizat cu un tichet de recunoasterea tichetului si o cheie de sesiune pentru comunicarea cu TGS. Ulterior procesul client original si descendentii lui poate folosi un tichet de garantare a tichetului pentru a obtine tichete si chei de sesiune pentru servicii specifice de la TGS.

Protocolul Needham-Schroeder este urmat indeaproape in Kerberos, cu valori de timp ( intregi reprezentand o data si un timp) folositi ca „nonces”. Acestea servesc 2 scopuri:

  • sa se apere retrimiterii mesajelor vechi interceptate in retea sau reutilizarea tichetelor vechi gasite in memoria masinelor de la care utilizatorul autorizat s-a delogat („nonces-urile” sunt folosite sa realizeze acest scop in Needham-Schroeder);
  • pentru a aplica un timp de viata la tichete, permitand sistemului sa respinga drepturi cand, de exemplu, ei inceteaza sa fie utilizatori autorizati ai sistemului.

In continuare vom descie protocoale Kerberos in detaliu folosinf notatie definita. Prima data, vom descrie protocolul pe care clientul obtine un tichet si o cheie de sesiune pentru a accesa TGS.

Un tichet Kerberos are o perioada fixa de valabilitate incepand la timpul de start t1, si terminandu-se la t2. un tichet pentru un client C de accesare a unui server S ia forma:

KS , care le vom nota ca KS

Numele clientului este inclus in tichet pentru a evita o posibila utilizare da catre impostori, cum vom vedea mai tarziu. Pasul si numerele mesajului in figura 16 corespund celor din descrierea tabelului de mai jos. De notat ca mesajul 1 nu este criptat si nu include parola lui C. Contine o nonce care este folosit sa verifice valabilitatea unui raspuns.

Mesajul 2 este cateodata numit provocare deoarece el prezinta doritorul cu informatia care este folositoare numai daca el cunoaste cheia secreta a lui C, KC. Un impostor care incearca sa se dea drept C prin trimiterea unui mesaj 1 nu poate sa ajunga mai departe , deoarece ei nu pot decripta mesajul 2. Pentru responsabii care sunt utilizatori, KC este o versiune legata de versiunea parolei utilizatorui. Procesul client va cere utilizatorul sa tipareasca parola lor si va incerca sa decripteze mesajul 2 cu ea. Daca utilizatorul da parola corecta procesul client obtine cheia de sesiune KCT si un tichet valid pentru serviciul de recunoastere a tichetului; daca nu, el va obtine ceva nedeslusit.

Serverele au chei secrete pentru ele insasi, cunoscute numai de procesul server pincipal si de serverul de autentificare.

Cand un tichet valid a fost obtinut de la un serviciu de autentificare clientul C il poate folosi pentru a comunica cu serviciul de recunoastere a tichetului pentru a obtine tichete pentru alte severe in orice perioade de timp pana la expirarea tichetului. Astfel, pentru a obtine un tichet pentru orice server S, C construeste un autentificator criptat in KCT de forma:

KCT care va fi notat ca KCT si trimite o cerere catre T:

Apilcatia lui Kerberos. Kerberos a fost dezvoltat pentru utilizarea in proiectul Athena la MIT – o facilitate de calcul legata intr-o retea la marime de campus, pentru educarea studentilor cu multe statii de lucru si servere furnizand un serviciu pentru un numar mai mare de 5000 de utilizatori. Mediul este realizat astfel incat nici increderea meritata a clientilor si nici securitatea retelei si a masinilor de lucru care ofera servicii de retea nu pot fi asumati – de exemplu, statiile de lucru nu sunt protejate impotriva instalarii sistem software dezvoltat de utilizarori, iar masinile server (altele decat serverul Kerberos) nu este necesar sa fie securizate impotriva interferentelor fizice cu configuratia lor software.

Kerberos ofera virtual toata securitatea in sistemul Athena. Este folosit pentru a autentifica utilizatori si alti responsabili. Majoritatea serverelor care ruleaza pe retea au fost extinse astfel incat sa ceara un tichet de la fiecare client la inceputul fiecarei intercatiuni client-server. Acestea includ fisiere de stocare (NFS si Andrew File System), posta electronica, si logare la distanta si printare. Parolele Userilor sunt cunoscute numai de catre utilizator si serviciul de autentificare. Serviciile au chei secrete care sunt cunoscute numai de catre Kerberos si de catre serverele care furnizeaza serviciul.

Noi vom descrie felul in care Kerberos este aplicat autentificarii utilizatorilor la logare. Folosirea lui este de a securiza serviciul de fisiere NFS descris in capitolul 8.

Logarea cu Kerberos <> Cand un utilizator se logheaza la o statie de lucru, programul de logare trimite numele utilizatorului catre serviciul de autentificare Kerberos. Daca utilizatorul este cunoscut de serviciul de utilizare si raspunde cu o cheie de sesiune si un nonce criptat in parola utilizatorului si un tichet pentru TGS. Programul de logare incearca apoi sa decripteze cheia de sesiune si nonce-ul folosind parola pe care utilizatorul a tiparit-o pe prompterul de parola. Daca parola e corecta programul de logare obtine cheia de sesiune si nonce-ul. Programul verifica nonce-ul si va stoca cheia de sesiune cu tichetul pentru urmatoarea utilizare cand comunica cu TGS. Din acest punct programul de logare poate sterge parola user-ului din memoria lui, deoarece tichetul serveste la autentificarea utilizatorului. O sesiune de logare este apoi pornita pentru utilizator pentru utilizator. Nota: Parola nu este niciodata expusa interceptarii pe retea – ea este retinuta in statia de lucru si stearsa din memorie imediat ce este introdusa.

Accesarea serverelor cu Kerberos <> De fiecare data cand un program ruleaza pe o statie de lucru, el cere un tichet pentru serviciu de la serviciul de recunoastere a tichetului. De exemplu cand un utilizator UNIX doreste sa se logheze la un computer la distanta, programul de comanda rlogin de pe statie de lucru a utilizatorului obtine un tichet de la serviciul de recunoastere a tichetului pentru a accesa serviciul de retea rlogind. Programul de comanda rlogind trimite tichetul impreuna cu un nou autentificator. Intr-o cerinta la procesul rlogin pe un calculator unde utilizatorul doreste sa se logheze. Programul rlogind decripteaza ichetul cu cheia secreta a serviciului r login si verifica validitatea tichetului ( daca viata tichetului nu a expirat). Masinile server trebuie sa aiba grija sa stocheze cheile lor secrete intr-un depozit care este inaccesibil intrusilor.

Programul rlogind foloseste apoi cheia de sesiune inclusa in tichet pentru a decripta autentificatorul si verifica daca autentificatorul este nou. Odata ce programul rlogin este satisfacut de faptul ca tichetul si autentificatorul sunt valide, atunci nu este nevoie sa verifice numele utilizatorului si parola deoarece identitatea userului este cunoscuta de programul rlogind iar o sesiune de logare este stabilita petru acei useri pe masina distanta.

Implementarea lui Kerberos <> Kerberos este implementat ca server ce ruleaza pe o masina securizata. Un set de librarii este furnizat pentru folosirea lor in aplicatii client si servicii. Algoritmul de criptare DES este folosit, dar este implementat ca modul separat care poate fi usor inlocuit.

Serviciul Kenberos este scalabil – lumea este divizata in domenii separate de autoritate, numite domenii, fiecare cu serverul seu Kerberos. Majoritatea responsabililor sunr inregistrati intr-un singur domeniu, dar serviciile de recunoastere a tichetelor Kerberos sunt inregistrate in toate domeniile. Responsabili se pot autentifica singuri la servere in alte domenii prin serverul lor local de recunoastere a tichetelor.

In interiorul unui singur domeniu pot fi cateva servere de autentificare, fiecare dintre acestea au copii ale aceleiasi baze de date de autentificare. Baza de date de autentificare este copiata de o tehnica master-slave simpla. Actualizarile sunt aplicate copiei principale (master) de un serviciu de managament a bazei de date Kerberos (KDBM) care ruleaza numai pe o masina master. KDBM administreaza cerintele de la utilizatori pentru a schimba parolele lor si cerintele administratorilor de sistem de adauga sau sterge responsabili si sa le schimbe parolele.

Pentru a face aceasta schema transparent utilizatorilor, timpul de viata a tichetelor TGS trebuie sa atat de lungi cat cea mai lunga sesiune de posibila de logare, deoarece folosirea unui tihet expirat va rezulta o respingere in cerintele serviciului si singurul remediu este pentru utilizatori sa reautentifice la sesiunea de logare si apoi sa ceara tichete server pentru toate serviciile aflate in functiune. In practica, viata tichetului dureaza aproximativ 12 ore.

Criticile Kerberos <> Versiunea 5 al protocolului Protocolul descris mai sus contine cateva imbunatatiri proiectate de a trata criticile versiunilor anterioare. Cea mai importanta critica a vresiunii 4 a fost ca nonce-urile folosite in autentificatori sunt implementati ca stampile de timp, si protectia impotriva reluarea autentificatorilor depinde de ultima sincronizare slabita a clientilor si ceasurilor serverelor. Mai mult de atat, daca un protocol de sincronizare este utilizat sa aduca un client si niste ceasuri de servere intro sincronizata slabita, protocolul de sincronizare trebuie sa fie el insusi securizat impotriva atacurilor de securitate. A se vedea capitolul 10 in legatura cu protocoalele de sincronizare de ceas.

Securitatea lui Kerberos depinde de viata cu sesiune limita – perioada validitatii tichtelor TGS sunt general limitate la cateva ore; perioada trebuie sa fie aleasa sa fie indeajuns de lunga ca sa evite intreruperi inconveniente a serviciului dar indeajuns de scurte sa ofere ca utilizatori care tocmai au fost de-registrati sau subgradati sa nu continua sa foloseasca resursele pentru o perioada de cel mult scurta. Aceasta ar putea cauza dificultati in unele medii comerciale, deoarece necesitatea urmatoare pentru utilizator sa furnizeze un set de detalii de autentificare la un punct arbitrar in interactiune ar putea intruziona in aplicatie.

6.3 securizarea tranzactiilor electronice cu socluri sigure

Protocolul Secure Socket Layer (SSL) a fost original dezvoltat de Netscape in 1996 si

propus ca un standard spefic sa faca fata nevoilor descrise in sus. O versiune extinsa al lui SSL a fost adoptata recent ca un standard Internet sub protocolul Transport Layer Security (TLS), descris in RFC 2246 [Dierk and Allen 1999]. SSL este suportat de majoritatea browserelor si este larg folosit in comertul pe Internet. Trasaturile sale sunt:

Algoritmi Negociabili si de autentificare de criptare <> Intr-o retea deschisa nu ar trebui sa asumam ca toate partile folosesc acelasi software client sau ca tot software-ul client si server includ un algoritm particular de criptare. In realitate, legile unor tari incearca sa restrictioneze utilizarea unor algoritmi anumiti acelor tari singure. SSL a fost proiectat astfel incat algoritmii folosit la criptare si autentificare sunt negociate intre procese si cele 2 sfarsituri conexiunii in timpul darea de mana initiala. Ar putea iesi ca ei nu au algoritmi suficienti in comun si in acel caz conexiunea va cade.

Comunicarea securizata <> Pentru a face fata nevoii comunicarii securizate fara negocierea anterioara sau ajutorul din partile terte, canalul securizat este stabilit folosind un protocol similar cu schema hibrida descrisa anterior. Comunicatia unencriptata este folosita la schimburile initiale, si criptografia cu cheie publica si schimband in final la criptografie cu cheie secreta odata cand o cheie partajata a fost stabilita. Fiecare comutatie este optionala si precedata de o negociatie.

Astfel canalul securizat este pe indeplin configurabil, permitand comunicarea in fiecare directie ca sa fie criptata si autentificata dar nenecesitand-o, astfel resursele de calcul nu e nevoie sa fie consumate in efectuarea criptarii nonnecesare.

Detaliile protocolului SSL sunt publicate si standardizate si sunt mai multe librarii software si scule care sunt disponibile sa o suporte, cateva dintre ele in domeniul public. El a fost incorporat intr-o gama larga de software de aplicatie si securitatea lor a fost verificata de revizie independenta.

SSL consta din 2 straturi (Figura 17): din stratul SSL Record Protocol, care implementeaza un canal securizat, criptand si autentificand mesaje transmise prin oricare protocol orientat pe conexiune: si un strat de dare de mana, continand protocolul SSL de dare de mana si alte 2 protocoalerelationate care stabilesc si mentin o sesiune SSL (care este, un canal securizat) intre un client si un server. Ambele sunt deobicei implementate de librariile software si nivelul aplicatiei in client si server. Protocolul SSL de inregistrare este un strat de nivel sesiune; el poate fi folosit sa transfere date de nivel de aplicatie transparent intre o pereche de procese in timp ce garanteaza secretul ei, integritatea si autenticitatea. Acestea sunr exact proprietatile care le specificam pentru canalele securizate in modelul nostru de securitate (Sectiunea 2.3.3), dar in SSL sunt optiuni pentru partenerii de comunicare sa aleaga oricare sau sa nu desfasoare decriptare si autentificare a mesajelor in fiecare directie.fiecare sesiune securizata este data un identificator si fiecare partener poate sa depoziteze identificatori de sesiune intr-un cufar pentru o ulterioara reutilizare, evitand globalizarea stabilirii unei sesiuni noi cand o alta sesiune securizata cu acelasi partener este necesara.

SSL este larg utilizat sa adauge un strat de comunicatie securizat deasupra protocoalelor de nivel la aplicatie. Protocolul a fost prima data publicat in 1994, si reviziile au fost incorporate sa produce 2 versiuni. SSL 3.0 este subiectul unei standardizari propuse Netscape. Este probabil cel mai larg folosit sa securizeze interactiunile HTTP pentru utilizarea comertului in Internet si altor aplicatii sensibile la securitate. Protocolul este implementat pe cale virtuala de toti browserii web si serverele web: folosul prefixului procolului https: in URLs initiaza stabilirea unui canal SSL securizat intre un browser si un server web. El deasemenea a fost larg desfasurat sa ofere implementatie sigure al lui Telnet, FTP si alte mai multe protocoale de aplicatii. SSL este standardul de facto pentru utilizarea in aplicatie care cer canale securizate, si acolo este o alegere larga a implementarilor disponibile, ambele domeniu public si comercial, cu APIs pentru CORBA si Java.

Protocolul de dat mana SSL este ilustrat in figura 18. Darea de mana este efectuat asupra unei conexiuni existente. Incepe clar si stabileste o sesiune SSL prin tranzactionarea optiunilor acceptate si parametrii necesari sa efectueze criptarea si autentificarea. Secventa darii de mana variaza depinzand indiferent ca autentificarea serverului si clientului este necesara. Protocolul darea de mana poate deasemenea sa fie invocat mai tarziu sa schimbe specificarea unui canal sigur, de exemplu, comunicatia poate incepe cu autentificarea mesajului folosind coduri de autentificarea mesajelor numai. Ulterior, criptarea poate fi adaugata. Aceasta este obtinuta prin efectarea protocolului darea de mana din nou ca sa negocieze unei specificatii de cod folosind canalul existent.

Darea de mana initiala SSL este potential vulnerabil atacurilor om prins la mijloc descrise in sectiunea 2.2, scenariul 3. Pentru a proteja impotriva lor, cheia publica folosita sa verifice primul certificat receptionat poate sa fie transmis de un canal separat de exemplu, browserele si alte softuri de internet distribuite pe un CD ROM pot include un set de chei publice pentru cateva autoritati certificate bine cunoscute. Alta aparare pentru clienti ale serviciilor bine cunoscute este bazata pe includerea numele domeniu de serviciu in lor cu cheie publica certificate-client ar trebui sa se ocupe numai cu serviciul la adresa IP corespunzand numelui domeniu.

SSL suporta o varietate de optiuni pentru functiile de criptografie. Acestea sunt cunoscute colectiv ca o suita de cod. O suita de cod include o singura alegere pentru fiecare din atribute aratate in figura 19

O varietate de suite cod sunt preincarcate, cu identificatori standard in client si server. In timpul baterii de mana, serverele ofera clientul o lista de identificatori suita cod care o are valabila si clientul raspunde selectand una din ele ( sau da o indicatie de eroare daca nu are nici una care se potriveste). In nivel ei deasemenea sunt de acord cu o metoda de compresie optionala si o valoare de inceput aleator pentru functii bloc CBC de criptare (sectiunea 3).

In continuare, partenerii se autentifica pe fiecare optional prin tranzactia certificatelor semnate cu cheie publica in format X.509. aceste certificate pot fi obtinute dintr-o autoritate de cheie publica sau ei pot fi generati temporar generati pentru acel scop. In orice caz, macar o cheie publica trebui es a fie valabila pentru utilizare in urmatorul nivel de dare de mana.

Un partener genereaza ulterior un secret pre-master si o trimite celuilalt partener criptata cu cheia publica. Un secret pre master este o valoare aleatoare mare care este folosita de ambii parteneri ca sa genereze cele 2 chei sesiune (numite chei de scriere) pentru criptarea datelor in fiecare directie si secretele autentificare a mesajelor sa fie folosite pentru autentificarea mesajului. Cand totul este gata, o sesiune securizata incepe.

Aceasta este declansata de mesajele ChangeCipherSpec tranzactionate intre parteneri. Acestea sunt urmate de mesajele terminate. Odata ce mesajele terminate au fost tranzactionate, toata comunicatia ulterioara este criptata si semnata conform suitei cod alese cu cheile in acord.

Figura 20 arata operatia protocolului de inregistrare. Un mesaj pentru transmisie este initial fragmentat in blocuri de o dimensiune realizabila, iar apoi blocurile sunt compresate optional. Compresia nu este strict o carcateristica a comunicatiei securizate, dar este oferita aici deoarece un algoritm de compresie poate impartasi util ceva din munca procesarii datei cu criptarea si algoritmii digitali de semnatura. Cu alte cuvinte, o elaborare de transformari de date poate fi setata in stratul de inregistrare SSL care va efectua toate transformarile necesare mai eficient care ar putea fi facute independent.

Sumar<>SSL ofera o implementare practica a unei scheme de criptari hibride cu autentificare si tranzactie de cheie bazate pe chei publice. Deoarece codurile sunt negociate in darea de mana, ea nu depinde de valabilitatea a unui algoritm particular. Nici nu depinde de serviciile securizate in timpul stabilirii sesiunii. Singura cerinta este pentru certificatele de cheie publica emise de o autoritate care este recunoscuta de ambele parti.

Deoarece protocolul si implementarea de referinta au fost publicate [Netscape 1996], a fost subiectul de dezbatere si de analiza. Cateva amendamente au fost facute la schitele recente, si au fost aprobate larg ca un standard de valoare. SSL este integrat in majoritatea serverelor web si browserelor web si sunt folosite in alte aplicatii ca Telnet si FTP securizate. Implementarii domeniu public si comerciale [www.rsasecurity.com, Hirsch 1997, www.openssl.org] sunt larg valabile in forma librariilor si pluginurilor browserilor.

6.4 Tranzactii electronice de valoare-mica: protocolul Millicent

Un sistem de plata pe internet este necesar sa fie eficient in cost si convenient pentru achizitionarea a serviciilor de pret mic si accesul resurselor electronice la preturi in jurul de 0.1-100 centi, ca de exemplu sa puna utilizatorii sa plateasca pentru accesul paginilor web, transmisii email sau convorbiri telefonice pe internet. Majoritatea schemelor de plata ca tranzactii prin carte de credit sunt prea scumpe pentru aceste scopuri.

Aici descriem solutia oferta de schema Millicent [Glassman si altii 1995]. Schema angajeaza forma simpla a pe baza semnaturii cu cheie secreta pentru a reduce costul de calcul. Criptarea este folosita numai unde intimitatea este necesara.

Sistemele de plata existente si lipsele lor <> autorii protocolul Millicent au sumarizat lipsurile metodelor de plata disponibil actual ca urmatoarele. Toate vor necesita securitate criptografica, costurile de calcul si comunicatie variaza, dar sunt semnificative in toate cazurile.

Cartile de credit: problema folosirii cartilor de credit pentru tranzactii mici este costul tranzactiilor inalte rezultand din nevoia de a interactiona cu sistemul central al companiei cartii de credit, care este exacerbata de costurile aditionale create sa asigure tranzactiile electronice si de alte caracteristici ca pregatirea specificarilor date clientilor.

Clientii mentin conturi cu vanzatori: clienti au nevoie sa stabileasca un cont cu un vanzator in fata primei tranzactii. Costurile tranzactiei sunt mici. Un vanzator trebuie sa mentina intrarea clientului intr-o baza de cont intr-o perioada destul de lunga.

Agregarea tranzactiilor: cand un client face mai multe achizitii vanzatorul poate tine inregistrari si sa le factureze la sfarsitul unei perioade. Aceasta este similar intretinerii conturilor dar poate sa salveze ceva din costurile de aranjare. Vanzatorul trebuie sa tina inregistrarile chiar pentru clienti care fac o singura tranzactie , si costul acesteia poate depasi venitul.

Cash digitali: asemanator Cashului conventional, cashul digital – ca de exemplu luari de valori digitale, emise de banca sau broker – ar trebui sa ofere sensuri eficiente de plata pentru tranzactii mici, dar dezvoltatorii cash-ului digital trebuie sa rezolve problema cheltuirii duble. Cheltuiala dubla este o consecventa a faptului ca detinatorul unui semn digital poate sa faca oricare numar de copii nedetectabile. Asadar, dovezile trebuie sa fie unic identificate si ele trebuie sa fie validate ca necheltuite in timpul utilizarii. Provocarea este sa se planuiasca o schema de validare care este scalabila, sigura si efectiv la cost in toate circumstantele.

Schema Millicent <> proiectul Millicent a dezvoltat o schema pentru distributia securizata si utilizarea adeverintei o forma specializata a cash-ului digital care este proiectat pentru utilizarea tranzactiilor de valori mici. Millicent este in afara interesului aici deoarece implica mai multe tehnici de securitate descrise in acest capitol cu un efect care este destul de diferit de cele SSL-ului si alte sisteme de securitate.

Adeverinta este o forma de cash-ului digital care este valid numai pentru un vanzator specific. Ea este proiectata sa ofere urmatoarele caracteristici:

  • ea are valoare numai la un vanzator specific
  • ea poate fi cheltuita numai odata;
  • ea este ferita de primejdii si greu de falsificat;
  • ea poate fi cheltuita numai de proprietarul de drept;
  • poate fi produsa si validata eficient.

Proiectarea schemei Millicent este scalabila deoarece viecare server al vanzatorului este resonsabil numai pentru validarea adeverintei care este emisa. Clientii pot achizitiona adeverinta direct de la vanzator, sau de la un broker care detine adeverinta pentru multi vanzatori, de o tranzactie conventionala in executie.

Adeverinta, cursul valutar specific vanzatorului introdus de Millicent, este reprezentat de semnele digitale cu urmatorul format:

Campul de proprietati este disponibil pentru utilizari determinate de vanzator – ar putea de exemplu sa includa tara clientului sau statul de rezidenta, astfel incat cea mai buna taxa sa fie aplicata. Certificatul este o semnatura digitala protejand toate campurile in adeverinta impotriva modificarilor. Semnatura este produsa de metoda MAC descrisa in Sectiunea 4.2. Scopul campurilor ramase vor iesi la iveala in urmatoarea descriere.

Adeverinta este generata si distribuita de Brokeri – Brokerii sunt servere care trateaza adeverinta in cantitate, usurand clienti si vanzatori ai implicati. Brokerii tranzactioneaza adeverinta in schimbul banilor reali, cumparand adeverinta (sau dreptul de a genera adeverinta) din vanzatori la un discount si vanzarea adeverintei la clienti impotriva cartii de credit sau alte plati. Clienti pot cumpara adeverinta oentru mai multi vanzatori de la un singur broker, totalitarizand platile si platind la sfarsitul unei perioade.

Scenariu <> Asa se face o tranzactie de achizitionare electronica folosind adeverinta: un client Alice este interesata sa cumpere un produs mic sau serviciu ( de exemplu un apel telefonic sau o pagina web) de la un vanzator Venetia. Alice poate deja sa detina adeverinta potrivita pentru tranzactii cu Venetia care este lasata de la tranzactiile anterioare; daca nu, Venetia i-i da ei URL-ul unui broker, Bob, care se ocupa in adeverinta Venetiei ( noi o vom numi adeverinta-V). Alice compara ceva adeverinta-V de la Bob.

Alice care trimite Venetia o cerinta de achizitie, atasand o bucata de adeverinta-V cu o valoare indeajuns mare sa acopere achizitia care ea doreste sa faca. Venetia valideaza verificarea-adeverintei care este ID-ul adeverintei nu este in lista ei de adeverinta care este deja platita si unde ID-ul clientului in adeverinta este ID-ul lui Alice. Daca valoarea este mai mare ca plata necesara , Venetia face o bucata noua de adeverinta sa acopere diferenta si o trimite lui Alice ca schimbare.

Brokerii pot obtine adeverinta vanzatorului in mai multe cai. In cel mai simplu caz, Venetia produce adeverinta si o vinde lui Bob la un discount intr-o tranzactie in cantitate. Alternativ, Venetia i-l imputerniceste pe Bob sa produca adeverinta in numele ei. In acest model, Venetia nu stie de adeverinta pana cand ea o primeste in plata de la clienti. Din cand in cand ea i-l contacteaza pe Bob si i-i trimite identificatorii adeverintei care a primit-o de la clienti si Bob i-i plateste un pret redus.

Tinte <>Millicent a fost proiectat ca un system de cash electronic care sa evite supra solicitari, iar intarzierile associate cu un system de centralizare, cata vreme sa ofere o securizare adegvata sa previna utilizarea frauduloasa. Securitatea adeverintei se bazeaza pe semnaturi digitale; Criptarea este folosita pentru secretizare acolo unde este necesar. Criptografia de cast scazut este folosita deoarece nu are nici un rost deoarece sa se puna un prêt mai mare pentru spargerea securitatii sistemului decat valoarea tranzactiilor pentru care el este utilizat.

Schema Millicent este gratis. Ea poate fi implementata fara un support din partea altor servicii, cum ar fi un serviciu de nume securizat, deoarece nu este independent de o identitate de autentificare externa pentru clienti sau vanzatori. Mai degraba, Millicent genereaza si distribuie secrete chei unice pentru utilizarea de catre parti pentru a notifica tranzactii.

Implementare <> Figura 2.1 ofera o vedere da ansamblu asupra arhitecturii. Am mentionat ca adeverinta este semnata pentru a proteja tranzactia impotriva alterarii sau divulgarii. Semnatura continuta in certificatul atasatat fiecarei bucati de adeverinta si este create cand adeverinta este generate, folosind un secret de adeverinta master ca cheia de semnare. Metoda de semnare este exact la fel ca semnatura MAC descrisa in Sectiunea 4.2. Cheia este anexata altor campuri ale adeverintei, si functia de rezumat securizata precum MD5 sau SHA este folosita pentru a produce un rezumat pe 128 biti care devine certificatul.

Inainte de generarea oricarei adeverinte, vanzatorul ( sau brokerul licentiate de un vanzator) va genera un vector pe 64 biti de adeverinte master. Un astfel de secret ar fi sufficient, dar valabilitatea mai multor secrete va permite unui nou vector sa fie selectat din cand in cand pentru a se apara impotriva dezvaluirii sale din accident sau un atac realizat cu success.

Fiecare piesa a adeverintei are un identificator unic. Valoarea sa include un index secret master de 8 biti care este folosit pentru a selecta un secret master de la vectorul vanzatorului a secretelor master. Secretele master sunt retinute de vector si unul este folosit sa produceun certificate pentru fiecare piesa a adeverintei generat.

Cateva variatii a protocolului Millicent sunt sugerate, oferind diferite nivele de securitate. In fiecare dintre ele vanzatorul trebuie sa valideze fiecare obiect a adeverintei propuse de catre clienti, iar noi vom descrie acel prim pas.

Validarea unei piese din adeverinta:

1. Vanzatorul verifica daca bucata de adeverinta nu a fost falsificata sau Sparta prin generarea unei semnaturi de verificare generand o semnatura de verificare folosind secretul important master ( folosind indexul secret master de la ID-ul adeverintei pentru a o selecta din vectorul secretelor master) si o compara cu semnatura in certificate.

2. Vanzatorul verifica daca adeverinta nu a fost deja cheltuita. Pentru a face acest lucru, ea pastreaza o lista cu ID-uri si date expirare a tuturor bucatilor adeverintei pe care ea le-a emis, cu o indicatie daca a fost cheltuita. Campul datei de expirare permite vanzatorului sa stearga adeverinta care a trecut de data expirarii din lista, astfel prevenind-o de valabilitatea continua. Clientii trebuie sa schimbe adeverinta veche cu una noua inainte de data expirarii.

Tranzactii cum ar fi cele descrie in scneariu deasupra pot fi efectuate securizat bazate numai pe validare. Aceasta protejeaza vanzatorul impotriva falsificarii si dubleaza cheltuiala, darn nu-l protejeaza pe client de furtul adeverintei lui si nici nu furnizeaza vre-o confidentialitate petru client sau vanzator. Protectia impotriva furtului ce vanzatorului sau brokerului sa vana adeverinta pentru a mentine un vector de secrete master clientului( selectate folosind o portiune de ID ale clientului ) si de a emite fiecarui client cu un secret client. Secretul client este construit de anexarea secretului master client la ID-ul client si aplicarea unei functii hash securizat ca MD5 la rezultat. Secretul client trebuie sa fie transmis de la vanzator la client printr-un canal securizat. Folosirea SSL-ului pentru dobandirea initiala a adeverintei este recomandata pentru acest scop.

Odata ce a fost transmis clientului, secretul client poate fi folosit ca o cheie secreta partajata intre client si vanzator. Clientul o poate utiliza in semnarea tranzactiilor, si ambii clientul si vanzatorul pot folosi secretul client ca o cheie criptata cand confidentialitatea este ceruta. Pentru a preveni furtul, tranzactiile sunt semnate de client folosind secretul client, iar vanzatorul verifica daca ID-ul clientului din adeverinta se potriveste cu ID-ul clientului asociat cu secretul client. Daca nu, atunci adeverinta este cheltuita de oricare cineva inafara de clientul caruia a fost vanduta – cu alte cuvinte, ea a fost furata.

Pentru oferirea confidentialitatea, un client trimite ID-ul de client vanzatorului iar ei stabilesc un canal securizat folosind un algoritm de criptare a cheii secrete cu secretul clientului ca cheie de criptare. Canalul securizat poate apoi fi utilizat pentru a realiza o tranzactie in secret.

Noi am descries Milloicent in cateva detalii, deoarece el furnizeaza un exemplu ilustrand aplicatia in multe tehnici de securitate descries in acest capitol. Sistemul Millicent este unul din cateva scheme de cash electronic care a fost dezvoltat pentru utilizarea sa in comertul electronic. El a fost original dezvoltat de Digital Systems Research Center, Palo Alto, California si este sponsorizat de Corporatia Compaq [www.millicent.com].

55 of 58






Politica de confidentialitate


Copyright © 2020 - Toate drepturile rezervate