Sunteți pe pagina 1din 96

Utilizarea criptografiei pentru securitatea sistemului distribuit

INTRODUCERE

n primele decenii ale existenei lor, reelele de calculatoare au fost folosite de cercettorii din universiti prin trimiterea potei electronice i de ctre funcionarii corporaiilor pentru a partaja imprimantele. n aceste condiii problema securitii nu atrgea de loc atenia. Dar acum, cnd milioane de ceteni obinuii folosesc reelele pentru operaiuni bancare, cumprturi i plata taxelor, securitatea reelei apare la orizont ca o mare problem potenial. n urmtoarele seciuni, vom discuta securitatea reelei din mai multe unghiuri, evideniind numeroase pericole i discutnd muli algoritmi destinai a face reelele mai sigure. Securitatea este un subiect vast i implic o multitudine de imperfeciuni. n forma sa cea mai simpl, ea asigur c persoane curioase nu pot citi sau, modifica mesajele destinate altor destinatari. Se ocup de cei care ncearc s apeleze servicii la distan pe care nu sunt autorizai s le foloseasc. Securitatea se ocup de problemele legate de capturarea i falsificarea mesajelor autorizate i de cei ce ncearc s nege faptul c au trimis anumite mesaje. Majoritatea problemelor securitate sunt cauzate intenionat de persoane ru voitoare ce ncearc s obin anumite beneficii sau s provoace ru cuiva. Civa dintre care comit n mod obinuit astfel de fapte: studentul pentru a se distra furnd pota electronic a celorlali, sprgtor pentru a testa securitatea sistemului cuiva; pentru a fura date, responsabil de vnzri pentru a pretinde c reprezint Europa, nu numai Andora, om de afaceri pentru a descoperii planul strategic de marketing al competitorului, fost funcionar pentru a se rzbuna c a fost concediat, contabil pentru a sustrage bani de la o companie, agent de vnzri pentru a nega o promisiune fcut clientului prin pota electronic, spion pentru a afla puterea militar a inamicului, terorist pentru a fura secrete legate de ostiliti umane. Din aceast list trebuie s rezulte clar c realizarea unei reele sigure implic ceva mai mult dect pstrarea ei fr erori de programare. Aceasta implic subclasarea unor adversari uneori inteligeni, dedicai

Pagina 1 din 96

i uneori bine dotai material. Trebuie s fie de asemenea clar c msurile care pot stopa inamici accidentali vor avea un impact redus asupra unor adversari serioi.

CAPITOLUL I Sisteme electronice de pli Comer electronic Comerul electronic nseamn, n accepiune tradiional, utilizarea n reele cu valoare adugat a unor aplicaii de tipul transferului electronic de documente (EDI), a comunicaiilor fax, codurilor de bare, transferului de fiiere i a potei electronice. Extraordinara dezvoltare a interconectivitii calculatoarelor n Internet, n toate segmentele societii, a condus la o tendin tot mai evident a companiilor de a folosi aceste reele n aria unui nou tip de comer, comerul electronic n Internet, care s apeleze - pe lng vechile servicii amintite - i altele noi. Este vorba, de exemplu, de posibilitatea de a se efectua cumprturi prin reea, consultnd cataloage electronice on pe Web sau off pe CD-ROM i pltind prin intermediul crilor de credit sau a unor portmonee electronice. Pentru alii, comerul Internet reprezint relaiile de afaceri care se deruleaz prin reea ntre furnizori i clieni, ca o alternativ pentru variantele de comunicaii tradiionale prin fax, linii de comunicaii dedicate sau EDI pe reele cu valoare adugat. n fine, o alt form a comerului Internet implic transferul de documente de la contracte sau comenzi pro forma, pn la imagini sau nregistrri vocale. Acest nou tip de comer a stimulat ns cererea pentru noi metode adecvate de plat. n cadrul noului concept de sat global (global village), dezvoltarea unor activiti comerciale ntre participani situai la mari distane geografice unii de ali nu poate fi conceput fr folosirea unor sisteme electronice de pli. Aceste noi mijloace de plat permit transferarea comod, sigur i foarte rapid a banilor ntre partenerii de afaceri. De asemenea, nlocuirea monedelor i bancnotelor (actualmente forme tradiionale de numerar) prin ceea ce denumim bani electronici conduce, pe lng reducerea costurilor de emitere i meninere n circulaie a numerarului, i la o sporire a flexibilitii i securitii sistemelor de pli.

Pagina 2 din 96

n domeniul mijloacelor electronice de plat, cercetrile sunt n plin desfurare. Exist numeroase sisteme n curs de experimentare, altele abia au fost cercetate i supuse analizei. Este normal ca prudena i securitatea s fie cuvintele cheie ale acestor demersiuni. 1.2 Sisteme de pli n Intenet bazate pe carduri bancare (SET) Multe cumprri de bunuri i servicii prin Internet se fac pltindu-se cu carduri bancare obinuite (Visa, MasterCard etc.). ns tranzaciile cu carduri conin informaii confideniale privind cardul i informaiile personale ale clienilor, informaii ce pot fi interceptate n timpul transmisiei prin Internet. Fr un soft special, orice persoan care monitorizeaz traficul pe reea poate citi coninutul acestor date confideniale i le poate folosi ulterior. Este necesar elaborarea unor standarde specifice sistemelor de pli, care s permit coordonarea prilor legitime implicate n transfer i folosirea corect a metodelor de securitate. n 1996, MasteCard i Visa au convenit s consolideze standardele lor de pli electronice ntr-unul singur, numit SET (Secure Electronic Transaction). Protocolul SET i propune apte obiective de securitate n e-commerce: S asigure confidenialitatea instruciunilor de plat i a informaiilor de cerere care sunt transmise odat cu informaiile de plat. S garanteze integritatea tuturor datelor transmise. S asigure autentificarea cumprtorului precum i faptul c acesta este utilizatorul legitim al unei mrci de card. S asigure autentificarea vnztorului precum i faptul c acesta accept tranzacii cu carduri prin relaia sa cu o instituie financiar achizitoare. S foloseasc cele mai bune metode de securitate pentru a proteja prile antrenate n comer. S fie un protocol care s nu depind de mecanismele de securitate ale transportului i care s nu mpiedice folosirea acestora. S faciliteze i s ncurajeze interoperabilitatea dintre furnizorii de soft i cei de reea. Aceste cerine sunt satisfcute de urmtoarele caracteristici ale acestei specificaii: Confidenialitatea informaiei - Pentru a facilita i ncuraja comerul electronic folosind crile de credit, este necesar asigurarea deintorilor de cartele c informaiile de plat sunt n siguran. De aceea, contul cumprtorului i informaiile de plat trebuie s fie securizate atunci cnd traverseaz reeaua, mpiedicnd interceptarea numerelor de cont i datele de
Pagina 3 din 96

expirare de ctre persoane neautorizate. Criptarea mesajelor SET asigur confidenialitatea informaiei. Integritatea datelor Aceast specificaie garanteaz c nu se altereaz coninutul mesajelor n timpul transmisiei acestora prin reea. Informaiile de plat trimise de cumprtor la vnztor conin informaii de cerere, date personale i instruciuni de plat. Dac una din aceste informaii este modificat, tranzacia nu se face corect. Protocolul SET folosete semntura digital pentru integritatea datelor. Autentificarea cumprtorului Vnztorul are nevoie de un mijloc de verificare a clientului su, a faptului c acesta este utilizatorul legitim al unui numr de cont valid. Un mecanism care face legtura dintre posesorul crii de credit i un numr de cont specific va reduce incidena fraudei i, prin urmare, costul total al procesului de plat. SET utilizeaz semntura digital i certificatele cumprtorului pentru autentificarea acestuia. Autentificarea vnztorului Aceast specificaie furnizeaz un mijloc de asigurare a clientului c furnizorul are o relaie cu o instituie financiar, permindu-i acestuia s accepte crile de credit. SET utilizeaz semntura digital i certificatele vnztorului pentru autentificarea acestuia. Interoperabilitate Protocolul SET trebuie s fie aplicabil pe o varietate de platforme hardware i soft. Orice cumprtor trebuie s poat s comunice, cu softul su, cu orice vnztor. Pentru interoperabilitate, SET folosete formate de mesaje i protocoale specifice. Cumprarea electronic ntr-un scenariu tipic de e-commerce, etapele procesului de cumprare sunt urmtoarele: Cumprtorul poate cuta bunuri i servicii avnd mai multe posibiliti: Folosete un browser pentru a consulta cataloage online din pagina de Web a vnztorului; Consult un catalog suplimentar aflat pe un CD-ROM; Consult un catalog de hrtie. Cumprtorul alege bunurile pe care dorete s le cumpere. Cumprtorului i este prezentat o list a bunurilor, incluznd preul acestora i preul total, cu tot cu taxe. Aceast list trebuie furnizat electronic de serverul vnztorului sau de softul de cumprare electronic din calculatorul clientului. Uneori se accept negocierea preului. Cumprtorul alege mijloacele de plat. S considerm c este ales ca mijloc de plat cartela de credit (cardul).

Pagina 4 din 96

Cumprtorul trimite vnztorului o cerere mpreun cu instruciunile de plat. n aceast specificaie, cererea i instruciunile de plat sunt semnate digital de ctre cumprtorii care posed certificate. Vnztorul solicit autorizaia de plat a clientului su de la instituia financiar a acestuia. Vnztorul trimite confirmarea cererii. Vnztorul trimite bunurile sau ndeplinete serviciile solicitate n cerere. Vnztorul solicit plata bunurilor i serviciilor de la instituia financiar a cumprtorului. Criptografia n SET Pentru a asigura securitatea plilor, SET folosete perechi de chei RSA pentru a crea semnturi digitale i pentru secretizare. Prin urmare, fiecare participant n procesul de tranzacionare posed dou perechi de chei asimetrice: o pereche de chei de schimb folosit n criptare i decriptare i o pereche de semntur, pentru crearea i verificarea semnturii digitale. De menionat faptul c rolul cheilor de semntur este inversat n procesul de semnare digital unde cheia privat este folosit pentru criptare (semnare), iar cea public este folosit pentru decriptare (verificare a semnturii). Autentificarea este ntrit de utilizarea certificatelor. nainte ca un destinatar B s primeasc un mesaj semnat digital de ctre un emitor A, el vrea s fie sigur c deine cheia public a lui A i nu a altuia care s-a recomandat drept A prin reea. O alternativ ar fi ca receptorul B s primeasc cheia public direct de la A printr-un canal de comunicaie securizat. De cele mai multe ori, ns, aceast soluie nu poate fi practicat. Transmisia securizat a cheilor este realizat de un ter de ncredere numit Autoritate de Certificare (AC), care-l asigur pe B c A este proprietarul cheii publice pe care o deine. Autoritatea de Certificare furnizeaz certificate care fac legtura dintre un nume de persoan i o cheie public. Utilizatorul A prezint AC-ului informaii de identitate. AC-ul creeaz un mesaj cu numele lui A i cheia public a acestuia. Acest mesaj numit certificat, este semnat digital de ctre Autoritatea de Certificare. El conine informaii de identificare a proprietarului, precum i o copie a cheii publice (de schimb sau de semntur). Participanii SET vor avea, de asemenea, dou certificate pentru cele dou perechi de chei: certificate de semntur i certificate de schimb. Certificatele sunt create i semnate n acelai timp de ctre AC. Protocolul SET introduce o nou aplicaie a semnturilor digitale, i anume conceptul de semntur dual. S considerm urmtorul scenariu: vnztorul B trimite o ofert cumprtorului A i o autorizaie bncii sale pentru a transfera banii, dac A accept oferta.
Pagina 5 din 96

ns B dorete ca banca s nu vad termenii ofertei, i nici cumprtorul informaiile sale de cont. n plus, B vrea s fac o legtur dintre ofert i transfer, astfel nct banii vor fi transferai doar dac A accept oferta sa. El realizeaz toate acestea semnnd digital ambele mesaje ntr-o singur operaie care creeaz semntura dual. O semntur dual este generat prin calcularea rezumatelor ambelor mesaje i concatenarea celor dou rezumate. Rezultatului obinut i se calculeaz la rndul su, un rezumat i, n cele din urm, acest ultim rezumat este cifrat cu cheia privat de semntur a emitorului. Trebuie inclus i celuilalt mesaj pentru ca oricare din cei doi primitori s valideze semntura dual. Un primitor al oricrui mesaj i poate verifica autenticitatea prin generarea rezumatului acestuia, concatenarea cu rezumatul celuilalt mesaj, i calcularea rezumatului rezultatului concatenrii. Dac noul rezumat se potrivete cu semntura dual decriptat, primitorul poate fi sigur de autenticitatea mesajului. Dac A accept oferta lui B, trimite un mesaj bncii indicnd acceptul su i incluznd rezumatul ofertei. Banca poate verifica autenticitatea autorizaiei de transfer a lui B i se asigur c acceptul este pentru aceeai ofert prin utilizarea rezumatului autorizaiei pe care l-a primit de la B i a rezumatului ofertei prezentat de A pentru a valida semntura dual. Astfel, banca poate controla autenticitatea ofertei, dar nu poate vedea termenii ofertei. n cadrul protocolului SET, semntura dual este folosit pentru a face legtura dintre un mesaj de comand trimis vnztorului i instruciunile de plat coninnd informaiile de cont trimise achizitorului. Cnd vnztorul trimite o cerere de autorizaie achizitorului, include instruciunile de plat primite de la cumprtor i rezumatul informaiilor de comand. Achizitorul folosete rezumatul primit de la vnztor i calculeaz rezumatul instruciunilor de plat pentru a verifica semntura dual. n prezent, tot mai multe produse de e-commerce implementeaz protocolul SET ceea ce confer securitate plilor Internet cu card, prin mijloace criptografice. Am vzut ct de important este securitatea n tranzaciile e-commerce, i ce importan are criptografia pentru realizarea securitii. De aceea n continuare vom ncerca o abordare teoretic a principalelor aspecte legate de criptografie i prezentarea unei aplicai pentru criptarea fiierelor de pe hard-disk..

CAPITOLUL II Bazele criptografiei

Pagina 6 din 96

2.1 Criptarea tradiional Criptografia are o istorie lung i pitoreasc. n aceast seciune, voi schia doar cteva dintre aspecte, ca informaii de baz pentru ceea ce urmeaz. Din punct de vedere istoric, la arta criptografiei au contribuit patru grupuri de oameni: armata, corpurile diplomatice, cei ce au inut jurnale i ndrgostiii. Dintre acestea, armata a avut rolul cel mai important i a structurat domeniul. n interiorul organizaiilor militare, mesajele ce trebuiau criptate erau de obicei date unor funcionari codori prost pltii, pentru codare i transmitere. Volumul de mesaje nu permitea ca aceast munc s fie fcut doar de civa specialiti de elit. Pn la apariia calculatoarelor, una din marile constrngeri ale criptografiei a fost capacitatea funcionarilor codori de a realiza transformrile necesare, adeseori pe cmpul de lupt, cu echipament redus. O constrngere suplimentar a fost dificultatea de comutare rapid de la o metod la alta, deoarece acesta implica reantrenarea unui numr mare de oameni. Totui pericolul ca un cod s fie capturat de ctre inamic a fcut s devin esenial posibilitatea de a schimba metoda criptografic imediat, n caz de nevoie. Mesajele ce trebuie criptate, cunoscute sub numele de text clar (plain text), sunt transformate printr-o funcie parametrizat de o cheie (key). Ieirea procesului de criptare , cunoscut sub numele de text cifrat (ciphertex), este apoi transmis, adeseori prin curier sau radio. Presupunem c intrusul ascult i copiaz cu acuratee ntreg textul cifrat. Totui, el nu tie care este cheia de criptare i astfel el nu poate decripta prea uor textul cifrat. Uneori intrusul poate nu numai s asculte canalul de comunicaie (intrus pasiv), ci i s nregistreze mesajele i s le retransmit mai trziu, s injecteze propriile sale mesaje sau s modifice mesajele legitime nainte ca ele s fie preluate de receptor (intrus activ). Arta de a sparge cifrul se numete criptanaliz (cryptanalysis). Arta de a concepe cifruri (criptografia) i cea de a le sparge (criptanaliz) sunt cunoscute sub numele de colectiv de criptologie (cryptology). Va fi adesea util s avem o notaie pentru a pune n relaie textul clar, textul cifrat i cheile. Vom folosi C= Ek(P) pentru a simboliza c n urma criptrii textului clar P, folosind cheia K, a rezultat textul cifrat C. Similar , P=Dk(C) reprezint decriptarea lui C pentru a obine din nou textul clar. Rezult c: Dk(Ek(P))=P (1)

Pagina 7 din 96

Aceast notaie sugereaz c E i D sunt funcii matematice, ceea ce, de altfel i sunt. Singurul artificiu este acela c ambele sunt funcii cu doi parametrii iar noi am scris unul din parametrii (cheia) ca indice, nu ca argument, pentru a face distincie ntre el i mesaj. O regul fundamental a criptografiei este aceea c trebuie presupus cunoaterea de ctre orice criptanalist a metodei generale utilizate pentru criptare. Cu alte cuvinte, criptanalistul tie cum lucreaz metoda de criptare E (1). Cantitatea de efort necesar pentru a inventa, testa i instala o metod nou, ori de cte ori vechea metod este compromis sau se crede a fii compromis, a fcut ntotdeauna nepractic a o pstra secret atunci cnd nu este; face mai mult ru dect bine. Aici apare cheia. Cheia const dintr-un ir (relativ) scurt care selecteaz una din dintre mai multe criptri poteniale. n contrast cu metoda general, care poate fi schimbat doar la civa ani, cheia poate fi schimbat orict de des este nevoie. Astfel modelul nostru de baz este stabil i metoda general, cunoscut de toat lumea, este parametrizat cu o cheie secret i uor de schimbat. Caracterul nesecret al algoritmului nu poate fi subliniat suficient. Prin publicarea algoritmului, criptograful d libertatea ca acesta s fie consultat de un numr larg de criptologi din mediul academic, pasionai s sparg sistemul pentru a publica articole care s demonstreze ct de detepi sunt ei. Dac muli experi au ncercat s sparg algoritmul timp de 5 ani dup publicarea sa i nici unul nu a reuit, probabil c algoritmul este destul de solid. Adevratul secret este cheia, iar lungimea sa reprezint un aspect foarte important. S considerm o simpl combinaie de seif. Principiul general este c se introduc cifre n secven. Oricine tie aceasta, dar cheia este secret. O lungime a cheii de dou cifre nseamn c exist 100 de posibiliti. O lungime a cheii de trei cifre nseamn 1000 de posibiliti i o lungime a cheii de ase cifre nseamn un milion. Cu ct cheia este mai lung, cu att este mai mare volumul de munc (work factor) cu care are de-a face criptanalistul. Factorul de munc pentru a sparge sistemul prin cutare exhaustiv n spaiul cifrelor este exponenial n raport cu lungimea cheii. Secretul provine din a avea un algoritm puternic (dar public) i o cheie lung. Pentru a-i mpiedica fratele mai mic s-i citeasc pota electronic, sunt suficiente chei de 64 de bii. Pentru a pstra la distan inamici puternici sunt necesare chei de cel puin 256 de bii. Din punct de vedere al criptanalistului, problema sa are trei variante principale. Cnd are la dispoziie o cantitate de text cifrat i nici un fel de text clar, el este confruntat cu problema textului cifrat (cyphertext only). Criptogramele care apar la seciunea de enigme a ziarelor pun acest tip de problem. Cnd criptanalistul are ceva text clar i textul criptat corespunztor, problema este cunoscut sub numele de problema textului clar cunoscut (known
Pagina 8 din 96

plaintext problem). n sfrit, atunci cnd criptanalistul poate cripta buci de text clar la propria alegere, avem de a face cu problema textului clar ales (chosen plaintext problem). Criptogramele din ziare ar putea fi sparte ntr-un mod evident dac criptanalistul i s-ar permite s pune ntrebri de genul: Care este criptarea pentru ABCDE? Novicii n domeniul criptografiei presupun adeseori c dac un cifru poate rezista unui atac ciphertext only, el este sigur. Aceast presupunere este foarte naiv. n multe cazuri criptanalistul poate ghici unele pri din textul clar. De exemplu, primul lucru pe care multe sisteme cu divizarea timpului (timesharing) l spun cnd sunt invocate este PLEASE LOGIN. Avnd cteva perechi text clar text criptat, sarcina criptanalistului devine mai uoar. Pentru a realiza securitatea, criptograful trebuie s fie prudent i s se asigure c sistemul este rezistent, chiar dac inamicul su poate cripta cantiti arbitrare de text clar ales. Metodele de criptare au fost istoric mprite n dou categorii: cifruri cu substituie i cifruri cu transpoziie. Vom studia acum pe scurt fiecare dintre aceste cifruri, ca informaie fundamental pentru nelegerea criptografiei moderne. 2.2 Cifrurile cu substituie ntr-un cifru cu substituie fiecare liter sau grup de litere este nlocuit() pentru deghizare cu alt liter sau grup de litere. Unul dintre cele mai vechi cifruri cunoscute este Cifrul lui Caesar, atribuit lui Julius Caesar. n aceast metod, a devine D, b devine E, c devine F, z devine C. de exemplu, cuvntul attack devine DWWDFN. n exemple textul clar va fi scris cu litere mici, iar textul cifrat va fi scris cu majuscule. O mic generalizare a cifrului lui Caesar permite alfabetului textului clar s fie deplasat cu k litere, n loc de a fi deplasat ntotdeauna cu 3. n acest caz, k devine o cheie pentru metoda general a alfabetelor deplasate circular. Cifrul lui Caesar poate s fi nelat pe Cartaginezi, dar de atunci el nu mai neal pe nimeni. Urmtoare mbuntire este de a stabili pentru fiecare simbol din textul clar, s spunem pentru simplitate cele 26 de litere, o coresponden cu o alt liter. De exemplu: textul clar a b c d e f g h I j k l m n o p q r s t u v w x y z textul cifrat: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M

Pagina 9 din 96

Sistemul general este numit substituie monoalfabetic (monoalphabetic substitution), cheia fiind irul de 26 de litere corespunznd ntregului alfabet. Pentru cheia anterioar, textul clar attack va fi transformat n QZZQEA. La prima vedere, acesta ar putea fi considerat un sistem sigur deoarece, dei criptanalistul cunoate sistemul general (substituie liter cu liter), el nu cunoate care din cele 26!=4x10*26 chei posibile este folosit. Spre deosebire de cifrul lui Caesar, ncercarea tuturor acestora nu este o abordare prea promitoare. Chiar i la 1 micro-secund per soluie, unui calculator i-ar trebui 10*13 ani pentru a ncerca toate cheile. Totui dndu-se o cantitate mic de text cifrat, cifrul poate fi spart cu uurin. Atacurile de baz folosesc ca informaie proprietile statistice ale limbajelor naturale. n engleza, de exemplu, e este cea mai frecvent liter, urmat de t, o a, n, i etc. Cele mai comune combinaii de dou litere, sau digrame (digrams), sunt th, in, er, re i an. Cele mai comune combinaii de trei litere, sau trigrame (trigrams), sunt the, ing, and. Un criptanalist ce ncearc s sparg un cifru monoalfabetic va ncepe prin a numra frecvenele relative ale tuturor literelor din textul cifrat. Dup aceea el trebuie s ncerce s asocieze cea mai frecvent liter cu e, urmtoarea cu t. Apoi el trebuie s caute trigramele, s o gseasc pe cea mai comun de forma tXe, care sugereaz puternic c X este h. Similar, dac apare frecvent ablonul thYt, probabil c Y este a. Cu aceast informaie, el poate cuta apariiile frecvente ale trigramelor de forma aZW, care sunt asemntoare cu and. Prin astfel de presupuneri fcute asupra celor mai comune litere, digrame, trigrame i cu ceva cunotine despre abloanele asemntoare de vocale i consoane, criptanalistul construiete liter cu liter o variant de text clar. O alt abordare este aceea de a ghici un cuvnt sau o expresie probabil. De exemplu, considerai urmtorul text cifrat provenind de la o firm de contabilitate (mprit n blocuri de cte cinci caractere): CTBMN BZCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUI QJSGS TJQYY MNQJS VLNSZ VSZJU JDSTS JQUUS JUBXJ DSKSU JSNTK BGAQJ ZBGYQ TLCTZ BNYBN QJSW Un cuvnt probabil ntru-un mesaj de la o firm de contabilitate este financiar. Folosind propriile noastre cunotine, cum ar fi c financiar are o liter repetat (i), cu alte patru alte litere ntre apariiile lor, vom cuta n textul cifrat repetri de litere aflate la aceast distan. Gsim 12 potriviri pe poziiile 6, 15, 27, 31, 42, 48, 56, 66, 70, 71, 76 i 82. Totui, doar dou dintre acestea, 31 i 42 au urmtoarea liter (cea corespunztoare lui n n textul clar) repetat n
Pagina 10 din 96

locul corespunztor. Din acestea dou, numai 31 are un a corect poziionat, deci tim c financiar ncepe n poziia 30. Din acest punct, deducerea cheii este uor de realizat folosind statisticile de frecven a literelor n textele englezeti. 2.3 Cifrurile cu transpoziie

Cifrurile cu substituie pstreaz ordinea simbolurilor din textul clar, dar le deghizeaz. Spre deosebire de acestea, cifrurile cu transpoziie (transposition ciphers) reordoneaz literele, dar nu le deghizeaz. Figura 1 descrie un cifru cu transpoziie simplu, transpoziia pe coloane. Cifrul are drept cheie un cuvnt sau o expresie ce nu conine litere repetate. n acest exemplu cheia este MEGABUCK. Scopul cheii este s numeroteze coloanele, coloana 1 fiind sub litera din cheie cea mai apropiat de nceputul alfabetului .a.m.d. Textul clar este scris orizontal, pe rnduri. Textul cifrat este citit pe coloane, ncepnd cu coloana al crui numr de sub liter este mai mic. MEGABUCK 74512836 pleasetr ansferon emillion dollarst omyswiss bankacco untsixtw otwoabcd fig. 1 Textul clar: pleasetransferonemilliondollarstomyswissbankaccountsixtwotwo Textul cifrat: AFLLSKSOSELAWAIATOOSSCTCLNMOMANTESILYNTWRNNTSOWDPAED OBUO

Pagina 11 din 96

Pentru a sparge un cifru cu transpoziie, criptanalistul trebuie mai nti s fie sigur c are de-a face cu un cifru cu transpoziie. Analiznd frecvena de apariie pentru E, T, A O, I, N etc., este uor de vzut dac ele se ncadreaz n ablonul obinuit pentru text clar. Dac da, cifrul este sigur un cifru cu transpoziie, deoarece ntr-un astfel de cifru, fiecare liter este reprezentat de ea nsi. Urmtorul pas care trebuie fcut este s se emit o presupunere asupra numrului de coloane. n multe cazuri un cuvnt sau o expresie probabil poate fi ghicit() din contextul mesajului. De exemplu, s presupunem c un criptanalist bnuiete c expresia text clar milliondollars apare pe undeva prin mesaj. Se observ c n urma mpachetrii acestei expresii, n textul cifrat apar digramele MO, IL, LL, LA, IR i OS. Litera O din textul cifrat urmeaz dup litera M din acelai text (adic sunt vertical adiacente n coloana 4) deoarece ele sunt separate n expresia probabil de o distan egal cu lungimea cheii. Dac a fost folosit o cheie de lungime 7, n locul acestora ar fi trebuit s apar digramele MD, IO, LL, LL, IA, OR ,i NS. De fapt, pentru fiecare lungime a cheii, n textul cifrat sunt produse seturi diferite de digrame. Prin vnarea diferitelor posibiliti, criptanalistul poate determina cu uurin lungimea cheii. Pasul care a rmas este ordonarea coloanelor. Cnd numrul de coloane, k, este mic, poate fi examinat fiecare dintre cele k(k-1) perechi de coloane pentru a vedea dac diagrama de frecvene se potrivete diagramei pentru textul clar n englez. Perechea cu cea mai bun potrivire se presupune c este corect poziionat. Acum fiecare coloan rmas este ncercat a fi succesorul acestei perechi. Coloana precedent este gsit n acelai mod. Exist anse ca textul clar s devin recognoscibil n acest punct (de exemplu, dac apare million, este clar ce erori exist n el). Anumite cifruri cu transpoziie accept bloc de lungime fix la intrare i produc un bloc de lungime fix la ieire. Aceste cifruri pot fi descrise complet dndu-se doar o list n care s se precizeze ordinea n care caracterele vor fi trimise la ieire. De exemplu, cifrul din fig. 1 poate fi vzut ca un cifru bloc pe 64 de caractere. Ieirea sa este 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, , 62. Cu alte cuvinte, cel de-al patrulea caracter de la intrare, a, este primul ce va fi trimis la ieire, urmat de al doisprezecelea, f .a.m.d. 2.4 Chei acoperitoare Construirea unui cifru imposibil de spart este actualmente destul de simpl; tehnica este cunoscut de decenii. n primul rnd alegei un ir aleator de bii pe post de cheie. Apoi convertii textul clar ntru-un ir de bii, de exemplu folosind reprezentarea ASCII. n final,
Pagina 12 din 96

calculai XOR ntre cele dou iruri, bit cu bit. Textul cifrat rezultat nu poate fi spart, deoarece orice text clar posibil este n mod egal de probabil candidat. Textul cifrat nu d criptanalistului absolut nici o informaie. Petru un eantion suficient de mare de text cifrat, fiecare liter va aprea la fel de des, de asemenea i orice digram sau trigram. Aceast metod, cunoscut sub numele de metoda cheilor acoperitoare (one-time pad) are, din nefericire, numeroase dezavantaje n practic. Unul din dezavantaje este faptul c nu poat fi memorat cheia, astfel nct att transmitorul ct i receptorul trebuie s poarte cu ei o copie scris a acestuia. Dac vreunul dintre ei este capturat, evident c existena cheilor scrise nu este de dorit. n plus, cantitatea total de date care poate fi transmis este limitat de dimensiunea cheii disponibile. Dac spionul d lovitura i descoper o comoar de date, el nu va fi capabil s le transmit napoi la cartierul general deoarece cheia a fost epuizat. O alt problem este senzitivitatea metodei la pierderea sau inserarea de caractere. Dac transmitorul i receptorul pierd la un moment dat sincronizarea, toate datele de aici ncolo vor apra ca fiind eronate. Odat cu apariia calculatoarelor, metoda cheilor acoperitoare poate devenii practic pentru anumite aplicaii. Sursa unei chei poate fi un CD special care conine civa gigabii de informaie i care, transportat ntr-o cutie de CD pentru muzic, precedai de cteva cntece, nu va da niciodat de bnuit. Desigur, la viteza reelei de ordinul gigabiilor, a trebui s introduci un nou CD la fiecare 5 secunde poate deveni suprtor. Din acest motiv, vom ncepe acum studiul algoritmilor de criptare moderni, care pot prelucra cantiti de text clar de dimensiune arbitrar. CAPITOLUL III 3.1 Dou principii criptografice fundamentale Dei n paginile ce vor urma vom studia diferite sisteme criptografice, pentru toate acestea exist dou principii de baz a cror nelegere este important. Primul principiu este acela c toate mesajele criptate trebuie s conin informaie redundant, adic informaie ce nu este necesar pentru nelegerea mesajului. Un exemplu poate clarifica de ce este nevoie de aceasta. S considerm o companie ce se ocup cu comenzile prin pot, CC, cu 6000 de produse. Creznd c vor fi foarte eficieni, programatorii de CC au decis c mesajele de comand trebuie s conin un nume de client pe 16 octei, urmat de un cmp de date pe 3 octei (1 octet pentru cantitate i 2 octei pentru numrul produsului). Ultimii 3 octei vor fi criptai folosind o cheie foarte lung, cunoscut doar de client i CC.
Pagina 13 din 96

La prima vedere sistemul pare sigur i, ntr-un anumit sens, chiar este, deoarece intruii pasivi nu pot decripta mesajele. Din nefericire, exist o slbiciune fatal a acestui sistem, care l face de neutilizat. S presupunem c o funcionar recent concediat vrea s se rzbune pe CC pentru c a dat-o afar. Chiar nainte de a pleca, ea ia (o parte din) lista clienilor. Ea lucreaz n timpul nopii i scrie un program care genereaz comenzi fictive folosind nume de clieni reali. Deoarece nu posed lista cheilor, ea pune numere aleatorii n ultimii 3 octei i trimite sute de comenzi la CC. Cnd sosesc aceste mesaje, calculatorul CC folosete numele clientului pentru a localiza cheia i a decripta mesajul. Din nefericire pentru CC, aproape fiecare mesaj de 3 octei este valid, iar calculatorul nceap s tipreasc instruciunile trimise. Dei pare ciudat ca un client s comande 137 de seturi de leagne pentru copii sau 240 de cutii cu nisip, calculatorul poate crede c acesta plnuiete s deschid o mulime de locuri de joac. n acest mod, un intrus activ (ex-funcionara) poate cauza probleme imense, chiar dac ea nu poate nelege mesajele pe care le genereaz calculatorul ei. Problema poate fi rezolvat prin adugarea unei informaii redundante tuturor mesajelor. De exemplu, dac mesajele de comand sunt extinse la 12 octei, dintre care primii 9 trebuie s fie zerouri, atunci acest atac nu ar mai fi funcional, deoarece ex-funcionara nu mai poate genera un ir mare de mesaje valide. Morala povestirii este aceea c toate mesajele trebuie s conin o cantitate considerabil de informaie redundant, astfel nct intruii activi s nu poat trimite gunoaie aleatorii care s fie interpretate ca mesajele valide. Totui, adugarea informaiei redundante uura spargerea mesajelor de ctre criptanaliti. S presupunem c afacerea de comenzi prin pot este foarte competitiv i competitorul principal al companiei CC, ST, ar vrea tare mult s tie cte cutii de nisip vinde CC. n consecin, ei ascult linia telefonic a CC. n schema original, cu mesaje de 3 octei, criptanaliza era aproape imposibil, deoarece dup ghicirea unei chei, criptanalistul nu avea cum s-i dea seama dac a ghicit corect. Cu noua schem de 12 octei, este uor pentru criptanalist s disting un mesaj valid de unul nevalid. Astfel, principiul criptografic numrul unu este ca toate mesajele s conin informaie redundant pentru a mpiedica intruii activi s nele receptorul trimindu-i un mesaj fals. Cu toate acestea, aceeai redundan faciliteaz intruii pasivi spargerea sistemului, deci aici apar unele probleme. Mai mult dect att, redundana nu trebuie s fie niciodat s fie folosit sub forma a n zerouri la nceputul sau sfritul unui mesaj, deoarece trecerea unor astfel de mesaje, prin anumii algoritmi criptografici d rezultate predictibile, simplificnd criptanaliza. Un ir aleatoriu de cuvinte englezeti ar fi o soluie mult mai bun pentru redundan.
Pagina 14 din 96

Cel de-al doilea principiu criptografic este acela c trebuie luate anumite msuri pentru a mpiedica intruii activi s retransmit mesaje mai vechi. Dac nu se iau nici un fel de astfel de msuri, ex-funcionara noast ar putea asculta linia telefonic a CC i ar putea retransmite mesajele valide transmise anterior. O astfel de msur este de a include n fiecare mesaj o amprent de timp valid doar pentru, s spunem, 5 minute. Receptorul trebuie doar s pstreze mesajele primite n ultimele 5 minute, pentru a compara mesajele nou sosite cu anterioarele i pentru a filtra duplicatele. Mesajele mai vechi de 5 minute pot fi aruncate, deoarece orice rspuns trimis mai trziu de 5 minute va fi refuzat ca fiind prea vechi. Alte msuri n afara amprentelor de timp vor fi dictate mai trziu. 3.2 Algoritm cu Cheie Secret Criptografia modern utilizeaz aceleai idei de baz ca i criptografia tradiional, transpoziia i substituia, dar accentul este diferit. Tradiional, criptografii foloseau algoritmi simpli i se bazau pe chei foarte lungi pentru securitatea lor. n zilele noastre este adevrat contrariul: obiectivul este de a face algoritmii de criptare att de compleci i ireversibili, nct, chiar dac un criptanalist achiziioneaz cantiti imense de text cifrat la alegerea sa, el s nu fie capabil s fac ceva cu ele. Transpoziiile i substituiile pot fi implementate cu circuite simple. Figura 2 arat un dispozitiv, cunoscut sub numele de cutie P (P vine de la permutare), folosit pentru a efectua o transpoziie asupra unei intrri de 8 bii. Dac cei 8 bii sunt selectai s fie notai de sus n jos ca 01234567, ieirea acestei cutii P particulare este 36071245. Printr-o cablare intern corespunztoare, o cutie P poate fi fcut s realizeze orice transpoziie i s o fac practic la viteza luminii.
0 1 2 3 4 5 6 7

Cutie P
3 6 0 7 1 2 4 5

Pagina 15 din 96

Substituiile sunt realizate de cutiile S, ca n fig. 3. n acest exemplu este introdus un text clar de 3 bii, iar la ieire este furnizat un text cifrat pe 3 bii. Intrarea de 3 bii selecteaz una din cele 8 linii ce ies din primul nivel i o poziioneaz pe 1; toate celelalte linii sunt 0. Cel de-al doilea nivel codific din nou n binar linia selectat la intrare. Cu cablajul artat, dac opt numere scrise n octal 01234567 ar fi introduse unul dup cellalt, secvena de ieire ar fi 24506713. Cu alte cuvinte, 0 a fost nlocuit cu 2, 1 a fost nlocuit cu 4 etc. Din nou, prin cablare corespunztoare a cutiei P n interiorul cutiei S, poate fi realizat orice substituie. n ianuarie 1977, guvernul SUA a adoptat ca standard oficial pentru informaiile nesecrete un cifru produs i dezvoltat de IBM. Acest cifru, DES (Data Encryption Standard Standard pentru Criptarea Datelor), a fost larg adoptat n industrie pentru a fi utilizat n produsele de securitate. El numai este de mult sigur n forma sa original (Wayner 1995), dar ntr-o form modificat el este nc util. Vom explica acum cum lucreaz DES. Cutie S Codificator: 8 la 3 3.2.1 DES O prezentarea general a DES este fcut n fig. 4. Textul clar este criptat n blocuri de cte 64 de bii, rezultnd blocuri de 64 de bii de text cifrat. Algoritmul, care este parametrizat cu o cheie de 56 de bii, are 19 runde distincte. Prima rund este o transpoziie independent de cheie, aplicat asupra textului clar de 64 de bii. Ultima rund este exact inversa acestei transpoziii. Penultima rund schimb cei mai din stnga 32 de bii cu cei mai din dreapta 32 de bii. Cele 16 runde rmase sunt funcional identice dar sunt parametrizai de funcii de cheie diferite. Algoritmul a fost proiectat pentru a permite ca decriptarea s se fac cu aceeai cheie ca i criptarea, dar paii sunt parcuri n ordine invers. Funcionarea unuia dintre paii intermediari este ilustrat n fig. 5. Fiecare rund ia dou intrri de 32 de bii i produce dou ieiri de 32 de bii. Ieirea din stnga este o simpl
Pagina 16 din 96

Decodificator : 3 la 8

copie a intrrii din dreapta. Ieirea din dreapta rezult n urma unui SAU EXCLUSIV (XOR) bit cu bit ntre intrarea din stnga i o funcie depinznd de intrarea din dreapta i de o cheie pentru aceast rund, Ki. Toat complexitatea rezid n aceast funcie. Funcia const din patru pai, parcuri n secven. n primul rnd, este construit un numr de 48 de bii, E, prin expandarea celor 32 de bii ai lui Ri-1 n concordan cu o transpoziie fix i o regul de duplicare. n al doilea rnd, E i Ki sunt combinate prin XOR. Ieirea este apoi mprit n opt grupuri de cte 6 bii i fiecare dintre acestea este introdus ntr-o cutie S diferit. Fiecare dintre cele 64 de intrri posibile ntr-o cutie S este pus n coresponden cu o ieire de 4 bii. n final, aceti 4x8 bii sunt trecui printr-o cutie P

Text clar 64 bii

Transpoziie iniial Iteraia 1

. . .
Iteraia 16

Interschimbarea 32 bii

Transpoziie invers Text Cifrul DES Fig. 4.cifrat 64 bii Schem general.

Li-1

Cheie 56 bii
Ri-1
Pagina 17 din 96

Iteraia 2

Li-1 f(Ri-1,Ki)

32 bii Li Fig. 5. Detalierea unei iteraii

32 bii Ri

n fiecare din cele 16 iteraii este folosit o cheie diferit. nainte de nceperea algoritmului este aplicat o transpoziie de 56 de bii asupra cheii. Chiar naintea nceperii fiecrei iteraii, cheia este partiionat n dou uniti de cte 28 de bii, fiecare dintre ele este rotit la stnga cu un numr de bii depinznd de numrul iteraiei. Ki este derivat din aceast cheie rotit prin aplicarea unei transpoziii pe 56 de bii asupra ei. La fiecare rund este extras i permutat o alt submulime de 48 de bii din cei 56 de bii. 3.2.2 nlnuirea DES n ciuda complexitii sale, DES este, la baz, un cifru cu substituie monoalfabetic, folosind caractere pe 64 de bii. Ori de cte ori se cifreaz acelai bloc de text clar, la ieire se va obine acelai bloc de text cifrat. Un criptanalist poate exploata aceast proprietate pentru a sparge DES-ul. Pentru a vedea cum poate fi folosit aceast proprietate a cifrului cu substituie monoalfabetic pentru a submina DES-ul, s considerm cea mai evident metod de criptare a unui mesaj lung: prin spargerea n blocuri consecutive de 8 octei (64 de bii) i prin criptarea lor unul dup altul, cu aceeai cheie. Dac este nevoie, ultimul bloc este umplut pn la 64 de bii. Tehnica este cunoscut ca modul cu carte de coduri electronic (Electronic Code Book). Nume Adams, Leslie Black, Robin Collins, Kim Davis, Bobbie Octei Funcie Clerk Boss Manager Janitor 16 8 Prim $ 10 $ 500.000 $ 100.000 $ 5 8

Fig. 6. Textul clar al unui fiier criptat ca ansamblu de 16 blocuri DES.

Pagina 18 din 96

n figura 6 este prezentat nceputul fiierului coninnd primele anuale ale unei companii care s-a decis s-i premieze angajaii. Fiierul const din nregistrri de 32 de octei, cte o nregistrare pentru fiecare angajat, n formatul artat: 16 octei pentru nume, 8 octei pentru funcia ocupat i 8 octei pentru prim. Fiecare din cele 16 blocuri de 8 octei (numerotate de la 0 la 15) este criptat cu DES. Leslie a avut o controvers cu eful i nu ateapt prea mult de la aceast prim. n schimb Kim este favorita efului i oricine tie asta. Leslie poate avea acces la fiier dup ce el a fost criptat, dar nainte de a fi trimis la banc. Poate Leslie s rectifice aceast situaie nedreapt, dat fiind doar fiierul criptat? Nici o problem. Tot ceea ce are Leslie de fcut este s realizeze o copie a blocului de text cifrat 11 (care conine prima lui Kim) i s-l foloseasc pentru a nlocui blocul de text cifrat cu numrul 3 (care conine prima lui Leslie). Chiar i fr a ti ce cuprinde blocul 11, Leslie se poate atepta s aib un Crciun mai fericit anul acesta. (Copierea blocului de text cifrat 7 este de asemenea o posibilitate, dar este mai probabil s fie descoperit; n plus, Leslie nu este o persoan lacom). Pentru a para acest tip de atac, DES (i toate cifrurile bloc) trebuie nlnuite n diferite moduri astfel nlocuirea unui bloc n modul n care a fcut-o Leslie s conduc la situaia n care textul clar decriptat, ncepnd cu blocul nlocuit, s fie gunoi. Un mod de nlnuire este nlnuirea blocurilor cifrate (Cipher bloc chaining). n aceast metod, prezentat n figura 7, fiecare bloc de text clar este combinat prin XOR (#) cu blocul anterior de text cifrat, nainte de a fi criptat. n consecin, acelai bloc de text clar nu se va mai pune n coresponden cu acelai bloc de text cifrat, iar criptarea numai este o mare substituie monoalfabetic. Primul bloc este combinat prin XOR cu un vector de iniializare, IV (Initialization Vector), ales aleatoriu, care este transmis mpreun cu textul cifrat. P0 P1 P2 P3 C0 C1 C2 C3
Cutie de decriptare

IV

Cheie

E IV

# SAU Exclusiv

Cutie de criptare

C0

C1

C2

C3

P0

P1

P2

P3

Pagina 19 din 96

Fig. 7. nlnuirea blocurilor cifrate (Cipher block chaining). Putem vedea cum lucreaz nlnuirea blocurilor cifrate prin examinarea exemplului din fig. 7. Putem ncepe prin a calcula C0=E(P0 XOR IV). Apoi vom calcula C1=E(P1 XOR C0) i aa mai departe. Decriptarea lucreaz n acelai mod, cu P0= IV XOR D(C0) i aa mai departe. Criptarea blocului i este o funcie de toate textele clare din blocurile de la 0 la i-1, astfel nct acelai text clar va genera text cifrat diferit n funcie de locul unde apare. O transformare de tipul celei fcute de Leslie va avea ca rezultat un nonsens n cele dou blocuri ce ncep din cmpul de prim a lui Leslie. Pentru un ofier de securitate perspicace, aceast caracteristic poate sugera de la cine s nceap investigaia. nlnuirea blocurilor cifrate are de asemenea avantajul c acelai bloc de text clar nu va rezulta niciodat n acelai bloc de text cifrat, fcnd criptanaliza mai dificil. De fapt, acesta este principalul motiv pentru care este folosit. Cu toate acestea, nlnuirea blocurilor cifrate are dezavantajul de a necesita ca un ntreg bloc de 64 de bii s soseasc nainte ca decriptarea s poat ncepe. Acest mod este nepotrivit pentru folosirea terminalelor interactive, unde oamenii pot introduce linii mai scurte de 8 caractere i apoi se pot opri n ateptarea unui rspuns. Pentru criptrile octet-cu-octet poate fi utilizat modul cu reacie cifrat (Cipher feedback mode), artat n figura 8. n aceast figur, starea mainii de criptare este artat dup ce octeii 0 pn la 9 au fost criptai i trimii. Cnd sosete blocul 10 din textul clar, dup cum este ilustrat n figura 8 (a), algoritmul DES opereaz asupra registrului de deplasare de 64 de bii pentru a genera 64 de bii de text cifrat. Octetul cel mai din stnga al textului cifrat este combinat prin XOR cu P10. Acest octet este transmis pe linie. n plus, registrul de deplasare este deplasat cu 8 bii la stnga, provocnd ieirea lui C2 pe la captul din stnga i inserarea lui C10 n poziia care tocmai a rmas vacant la dreapta lui C9. Coninutul registrului de deplasare depinde de ntreaga istorie anterioar a textului clar, astfel nct un ablon care se repet de mai multe ori n textul clar va fi criptat de fiecare dat diferit n textul cifrat. Ca i la nlnuirea blocurilor cifrate, este necesar un vector de iniializare pentru a porni rostogolirea mingii.

Reg. de deplasare pe 64 de bii C2 C3 C4 C5 C6 C7 C8

Reg. de deplasare pe 64 de bii C2 C3 C4 C5 C6 C7 C8

Pagina 20 din 96

Cheie E Sel. octetul cel mai din stnga

Cutie de criptare

C10

Cheie

Cutie de criptare

C10

Sel. octetul cel mai din stnga

P10

C10

C10

P10

SAU exclusiv Fig. 8. Modul cu reacie cifrat (Cipher feedback mode). Decriptarea n modul cu reacie cifrat face acelai lucru ca i criptarea. n particular, coninutul registrului de deplasare este criptat, nu decriptat, astfel nct octetul selectat care este combinat prin XOR cu C10 pentru a obine P10 este acelai cu cel ce a fost combinat prin XOR cu P10 pentru a-l obine pe C10 prima dat. Atta vreme ct cele dou registre de deplasare rmn identice, decriptarea lucreaz corect. Ca o digresiune, trebuie menionat c dac un bit din textul cifrat este inversat accidental n timpul transmisiei, cei 8 octei ce sunt decriptai n timp ce octetul eronat se gsete n registrul de deplasare vor fi n ntregime alterai. Odat ce octetul eronat este mpins n afar din registrul de deplasare, va fi generat iari un text clar corect. Astfel, efectul unui singur bit inversat este relativ localizat i nu va ruina tot restul mesajului. Cu toate acestea, exist aplicaii n care a avea o eroare de transmisie de 1 bit care s strice 64 de bii de text clar reprezint o pierdere mare. Pentru aceste aplicaii exist o patra opiune, modul cu reacie de la ieire (Output Feedback mode). Acesta este identic cu modul cu reacie cifrat, cu excepia faptului c octetul ce va fi introdus pe la captul din dreapta n registrul de deplasare va fi extras de acolo chiar nainte de a fi combinat prin XOR i nu dup aceasta. Modul cu reacie de la ieire are proprietatea c o eroare de 1 bit n textul cifrat cauzeaz o eroare de un singur bit n textul clar rezultat. Pe de alt parte, este mai puin sigur dect alte moduri i trebuie evitat utilizarea sa n scopuri generale. De asemenea, modul cu carte electronic de coduri trebuie evitat, cu excepia unor mprejurri speciale (de exemplu, criptarea unui singur numr aleatoriu, cum ar fi o cheie de sesiune). Pentru operaii normale, atunci cnd la intrare sosesc uniti de cte 8 octei (de exemplu, pentru criptarea fiierelor de

Pagina 21 din 96

pe disc), trebuie utilizat modul cu nlnuirea blocurilor cifrate, iar pentru iruri de intrare neregulate, cum ar fi intrarea de la tastatur, trebuie folosit modul cu reacie cifrat. 3.2.3 IDEA Poat toat aceast agitaie asupra ntrebrii de ce este DES-ul nesigur este ca i o frecie la un picior de lemn, dar realitatea e c DES-ul, n varianta sa de criptare singular este nc foarte folosit n aplicaii de securizare, cum ar fi cele bancare folosind maini de raportare automat. Dei alegerea lui a fost probabil potrivit la momentul respectiv, cu zece sau mai muli ani n urm, ea nu mai este de mult adecvat. La acest punct, probabil c cititorul se ntreab pe bun dreptate: Dac DES-ul este att de slab, de ce nu a inventat nimeni alt cifru bloc mai bun?. Adevrul este c au fost propuse multe cifruri bloc, printre care BLOWFISH (Schneier,1994), Crad (Kalinski i Robshaw, 1991) , FEAL (Shimizu i Miyaguchi, 1988), KHAFRE (Metkle, 1991), LOKI91 (Brown .a., 1991), NEWDES (Scott, 1985), REDOC-II (Cusick i Wood, 1991) i SAFER K64 (Massey, 1994). Schneier (1996) le prezint pe toate acestea i nenumrate altele. Probabil cel mai interesant i mai important dintre cifrurile bloc post-DES este IDEA (International Data Encryption Algoritm) (Lai i Massey, 1990; i Lai, 1992). S studiem acum IDEA mai n detaliu. IDEA a fost proiectat de doi cercettori din Elveia. Cifrul folosete o cheie de 128 bii, care l face imun pentru deceniile care urmeaz la atacurile prin for brut, cele de tipul loteria Chinezeasc i ntlnirea-la-mijloc. A fost de asemenea proiectat pentru a rezista la criptanaliza diferenial. La momentul actual, nu este cunoscut nici o tehnic sau main care s fie capabile s sparg IDEA. Structura de baz a algoritmului seamn cu DES-ul prin aceea c blocurile de la intrare, de 64 de bii de text clar, sunt alterate printr-o secven de iteraii parametrizate pentru a produce la ieire blocuri de 64 de bii de text cifrat, dup cum este artat n fig. 9 (a). Dat fiind alterarea extensiv la nivel de bit (pentru fiecare iteraie, fiecare bit de ieire depinde de fiecare bit de intrare), opt iteraii sunt suficiente. Ca toate cifrurile bloc, IDEA poate fi utilizat att n modul de reacie cifrat (CFB) ct i n toate celelalte moduri de nlnuire prezentate la DES. Detaliile unei iteraii sunt prezentate n fig. 9 (b). Sunt folosite trei operaii, toate asupra unor numere fr semn pe 16 bii. Aceste operaii sunt XOR, adunate modulo 2*16 i nmulite modulo 2*16+1. Toate acestea trei pot fi realizate pe un microcalculator pe 16 bii, ignornd
Pagina 22 din 96

prile cele mai semnificative ale rezultatului. Operaiile au proprietatea c oricare dou perechi nu se supun legii de asociativitate sau distributivitate, fcnd criptanaliza i mai dificil. Cheia pe 128 de bii este folosit pentru a genera 52 de subchei de cte 16 bii fiecare, 6 pentru fiecare din cele 8 iteraii i 4 pentru transpoziia final. Decriptarea folosete acelai algoritm, dar cu chei diferite. Patru blocuri de intrare pe 16 bii Text clar 64 bii

Iteraia 1
x K1

K2

K3

+ K4

Iteraia 2
K5

K6

Iteraia 7

Iteraia 8

Transformare
+

Patru blocuri de intrare pe 16 bii Adunare pe 16 bii modulo 2*16 nmulire pe 16 bii modulo 2*16+1 SAU exclusiv pe 16 bii

Text cifrat 64 bii


x #

Fig. 9. (a) IDEA. (b) Detaliile unei iteraii

Pagina 23 din 96

Au fost realizate att implementri software ct i hardware ale algoritmului IDEA. Prima implementare software rula pe un 386 la 33 MHz i realiza criptarea la o vitez de 0.88 Mbps. Pe o main modern, de 10 ori mai rapid, pentru o implementare software se poate atinge o vitez de 9 Mbps. La Zurich a fost construit un cip VLSI la 25 de MHz care cripteaz la o rat de 177 Mbps. 3.3 Algoritmi cu Cheie Public Istoric, distribuia cheilor a fost ntotdeauna punctul slab al multor criptosisteme. Indiferent de ct de puternic era un criptosistem, dac un intrus a putut fura cheia, sistemul i-a pierdut valoarea. Deoarece toi criptologii au considerat ntotdeauna ca de la sine neles faptul c att pentru criptare ct i pentru decriptare se folosete aceeai cheie (sau una uor derivabil din cealalt) i c acesta trebuie distribuit tuturor utilizatorilor sistemului, prea a exista ntotdeauna urmtoarea problem inerent: cheile trebuiau protejate contra furtului dar, n acelai timp, ele trebuiau distribuite, astfel nct ele nu puteau fi sechestrate ntr-un seif de banc. n 1976, doi cercettori de la Universitatea Stanford, Diffie i Hellman (1976), au propus un tip radical nou de criptosistem n care cheile de criptare i decriptare sunt diferite, iar cheia de decriptare nu poate fi dedus din cheia de criptare. n propunerea lor, algoritmul (cheia) de criptare, E, i algoritmul (cheia) de decriptare, D, trebuiau s satisfac trei cerine: D(E(P))=P Este mai mult dect dificil a se deduce D din E E nu poate fi spart printr-un atac cu text clar ales Prima cerin spune c, dac se aplic D unui mesaj criptat, E(P), se obine textul clar original, P. Cea de-a doua cerin este clar. Cea de-a treia cerin este necesar deoarece, dup cum vom vedea la un moment dat, intruii pot experimenta i testa algoritmul dup pofta inimii. n aceste condiii, nu exist nici un motiv pentru ca E, cheia de criptare, s nu poat fi fcut public. Metoda lucreaz astfel: o persoan, s spunem Alice, dorind s primeasc mesaje secrete, concepe mai nti cei doi algoritmi EA i DA ce satisfac cerinele de mai sus. Algoritmul de criptare i cheia, EA, sunt fcui apoi publici, de unde i numele de criptografie cu cheie public (n contrast cu criptografia cu cheie secret). Aceasta poate fi realizat prin punerea lor ntr-un fiier pe care oricine dorete poat s l citeasc. Alice public algoritmul de decriptare (pentru a putea fi liber consultat), dar pstreaz cheia de decriptare secret. Astfel EA este public, dar DA este privat.
Pagina 24 din 96

S vedem acum dac putem rezolva problema stabilirii unui canal sigur ntre Alice i Bob, care nu au mai avut niciodat vreun contact anterior. Att cheia de criptare a Alecei, EA, ct i cea lui Bob, EB, sunt presupune a se gsi ntr-un fiier ce poate fi citit de oricine. (De fapt se ateapt ca toi utilizatorii reelei s-i publice cheile lor de criptare imediat ce se conecteaz n reea). Acum Alice ia primul ei mesaj, P, calculeaz EB(P) i l trimite al Bob. Bob l decripteaz aplicndu-i cheia sa secret DB (adic el calculeaz DB(EB(P))=P). Nimeni altcineva nu poate citi mesajul criptat, EB(P), deoarece sistemul de criptare este presupus puternic i deoarece este prea greu s se deduc DB(P) din EB(P) public cunoscut. Alice i Bob pot comunica acum ntr-o manier sigur. n acest punct ar fi poate util o observaie asupra terminologiei. Criptografia cu cheie public necesit ca fiecare utilizator s aib dou chei: o cheie public, folosit de toat lumea pentru a cripta mesajele ce-i sunt trimise, i o cheie secret, de care utilizatorul are nevoie ca s-i decripteze mesajele. Ne vom referi n mod constant la aceste chei ca fiind cheia public i, respectiv, cheia privat i le vom deosebi de cheile secrete folosite att pentru criptare ct i pentru decriptare n criptografia convenional (numit i criptografie cu cheie simetric). 3.3.1 Algoritmul RSA Singura problem este aceea c avem nevoie de algoritmi care s satisfac complet toate cele trei cerine. Datorit posibilelor avantaje ale criptologiei cu chei publice, muli cercettori au lucrat din greu la acest subiect i au fost deja publicai civa algoritmi. O metod bun a fost descoperit de un grup de la MIT (Rivest .a., 1978). Ea este cunoscut prin iniialele numelor celor trei descoperitori (Rivest, Shamir, Adelman): RSA. Metoda lor este bazat pe cteva principii din teoria numerelor. Vom rezuma mai jos modul n care se folosete aceast metod. Se aleg dou numere prime, p i q, (de obicei mai mari dect 10*100) Se calculeaz n = pxq i z=(p-1)x(q-1). Se alege un numr relativ prim cu z i este notat cu d. Se gsete e astfel nct exd=1 mod z. Cu aceti parametri calculai n avans, suntem gata s ncepem criptarea. mprim textul clar (privit ca i ir de bii) n blocuri, astfel nct fiecare mesaj de text clar, P, s intre n intervalul 0 P < n. aceasta poate fi fcut grupnd textul clar n blocuri de cte k bii, unde k este cel mai mare numr ntreg pentru care inegalitatea 2*k < n este adevrat.

Pagina 25 din 96

Pentru a cripta mesajul P, se calculeaz C=P*e (mod n). Pentru a decripta C, se calculeaz P=C*d (mod n). Se poate demonstra c pentru toi P din intervalul specificat, criptarea i decriptarea sunt funcii inverse una alteia. Pentru a realiza criptarea este nevoie de e i n. Pentru a realiza decriptarea este nevoie de d i n. De aceea, cheia public const din perechea (e,n) iar cheia privat din perechea (d,n). Securitatea metodei este bazat pe dificultatea factorizrii numerelor mari. Dac un criptanalist ar putea factoriza numrul n (public cunoscut), el ar putea gsi p i q, iar din acestea pe z. Cu z i e cunoscui, criptanalistul l poate calcula pe d folosind algoritmul lui Euclid. Din fericire, matematicienii au ncercat s factorizeze numere mari de cel puin 300 de ani i experiena acumulat sugereaz c aceasta este o problem mai mult dect dificil. n conformitate cu Rivest i colegii si, factorizarea unui numr de 200 de cifre necesit un timp de calcul de 4 miliarde de ani; factorizarea unui numr de 500 de cifre necesit 10*25 ani. n ambele cazuri ei presupun c se folosete cel mai bun algoritm de factorizare i un calculator cu timp de execuie a unei instruciuni de 1 microsecund. Chiar dac viteza calculatoarelor va continua s sporeasc cu un ordin de mrime pe deceniu, vor mai trece secole pn cnd factorizarea unui numr de 500 de cifre va deveni realizabil, moment n care descendenii notri vor alege pur i simplu p i q mai mari. Un exemplu banal pentru algoritmul RSA este dat n fig. 10. Pentru acest exemplu am ales p = 3 i q = 11, rezultnd n = 33 i z = 20. O valoare potrivit pentru d este d = 7, deoarece 7 i 20 nu au factori comuni. Cu aceste alegeri, e poate fi gsit prin rezolvarea ecuaiei 7e =1 (mod 20), care d e =3. Textul cifrat, C, pentru textul clar al mesajului, P, este dat de C = P*3(mod 33). Textul cifrat este decriptat de receptor dup regula P = C *7 (mod 33). Figura prezint criptarea i decriptarea textului clar SUZANNE. Deoarece numerele prime alese pentru acest exemplu sunt prea mici, P poate fi mai mic dect 33, astfel nct blocul de text clar poate conine doar un singur caracter. Rezultatul este un cifru cu substituie monoalfabetic, nu foarte impresionant. Dac n locul acestora am fi ales p i q = 10*100, am fi avut n =10*200, astfel nct fiecare bloc poate fi de pn la 664 bii (2*664 = 10*100) sau 83 de caractere de 8 bii, fa de 8 caractere pentru DES. Fig. 10. Un exemplu de algoritm RSA.
Pagina 26 din 96

Numeric

P*3

P*3(mod 33)

C*7

C*7 (mod 33)

Simbolic

Simbolic S U Z A N N E

19 21 26 01 14 14 05

6859 9261 17576 1 2744 2744 125

28 21 20 1 5 5 26

13492928512 1801088541 1280000000 1 78125 78125 8031810176

19 21 26 1 14 14 5

S U Z A N N E

Trebuie subliniat c folosirea RSA n modul descris este similar folosirii DES-ului n modul ECB blocuri de intrare identice conduc la blocuri de ieire identice. De aceea este necesar o anumit form de nlnuire pentru criptarea datelor. Totui, n practic, multe sisteme bazate pe RSA folosesc criptografia cu cheie public n principal pentru distribuirea cheilor de sesiune de unic folosin utilizate pentru DES, IDEA sau ali algoritmi similari. RSA este prea lent pentru a cripta eficient volume mari de date. 3.3.2 Alii Algoritmi cu Cheie Public Cu toate c RSA este larg rspndit, nu este n nici un caz singurul algoritm cu cheie public cunoscut. Primul algoritm cu cheie public a fost algoritmul rucsacului (Merkle i Hellman, 1978). Ideea este c cineva posed un numr mare de obiecte, fiecare cu greutate diferit. Posesorul codific mesajul prin selecia secret a unei submulimi de obiecte i plasarea lor n rucsac. Greutatea total a obiectelor din rucsac este fcut public, ca i lista tuturor obiectelor posibile. Lista obiectelor din rucsac este inut secret. Cu cteva restricii suplimentare, problema gsirii unei liste de obiecte cu greutatea dat a fost gndit ca fiind imposibil de calculat i formeaz baza pentru algoritmul cu cheie public. Inventatorul algoritmului, Ralph Merkle, a fost aproape sigur c acest algoritm nu poate fi spart, astfel c el a oferit o recompens de 100 de dolari oricui l va putea sparge. Adi Shamir (S-ul din RSA) l-a spart cu promptitudine i a primit recompensa. Fr a-i pierde curajul, Merkle i-a ntrit algoritmul i a oferit o recompens de 1000 de dolari oricui va putea sparge noul algoritm. Ron Rivest (R-ul din RSA) l-a spart cu promptitudine i a luat banii. Merkle nu a ndrznit s ofere 10000 de dolari pentru urmtoarea versiune, astfel c A (Leonard Adelman) nu a avut noroc. Cu toate c a fost corectat i mbuntit din nou, algoritmul rucsacului nu este considerat sigur i nu este considerat sigur i este rareori utilizat. Alte scheme cu cheie public sunt bazate pe dificultatea calculului logaritmilor discrei (Rabin, 1979). Algoritmii care folosesc acest principiu au fost inventai de El Gamal (1985) i Schnorr (1991).

Pagina 27 din 96

Exist cteva alte scheme, cum ar fi cele bazate pe curbe eliptice (Menezes i Vanstone, 1993), dar cele trei categorii majore sunt cele bazate pe dificultatea factorizrii numerelor mari, a calculului logaritmilor discrei i a determinrii coninutului unui rucsac din greutatea sa. Aceste probleme sunt considerate ca fiind autentic dificile deoarece matematicienii le studiaz de muli ani fr vreun progres notabil. CAPITOLUL IV UTILIZAREA DISTRIBUIT 4.1 Protocoale de Autentificare Autentificarea (authentication) este tehnica prin care un proces verific dac partenerul su de comunicaie este cel presupus a fi i nu un impostor. Verificarea identitii unui proces de la distan, n cazul unui intrus activ i ruvoitor, este surprinztor de dificil i necesit protocoale complexe bazate pe criptografie. n aceast seciune, vom studia cteva din multele protocoale de autentificare folosite n reelele nesigure de calculatoare. Ca fapt divers, anumii oameni confund autorizarea cu autentificarea. Autentificarea are de-a face cu chestiunea dac comunici sau nu cu un anumit proces. Autorizarea se ocup cu ceea ce i este permis unui proces s fac. De exemplu un proces client contacteaz un server de fiiere spune Eu sunt procesul lui Scott i vreau s terg fiierul cookbook.old. Din punct de vedere al serverului de fiiere, trebuie gsit rspunsul la dou ntrebri: Chiar este procesul lui Scott? (autentificare) Are Scott voie s tearg cookbook.old? (autorizare) Doar dup ce s-a rspuns afirmativ, fr ambiguitate la ambele ntrebri poate avea loc aciunea cerut. ntrebarea de mai nainte este cu adevrat una cheie. Odat ce serverul de fiiere tie cu cine vorbete, verificarea autorizrii este o problem de cutare n intrrile din intrrile locale. Din acest motiv, n aceast seciune ne vom concentra asupra autentificrii. Modelul general pe care l folosesc toate protocoalele de autentificare este urmtorul. Un utilizator iniiator (de fapt un proces), s presupunem Alice, vrea s stabileasc o conexiune sigur cu un al doilea utilizator, Bob. Alice i Bob sunt numii deseori protagoniti (principals), personajele principale din povestea noastr. Bob este un bancher sau un centru autorizat de distribuire a cheilor (KDC Key Distribution Center), care este ntotdeauna credibil. Urmeaz alte cteva schimburi de mesaje n diferite direcii. n timp ce aceste mesaje sunt transmise, un
Pagina 28 din 96

CRIPTOGRAFIEI

PENTRU

SECURITATEA

SISTEMULUI

intrus mecher, Trudy, poate intercepta, modifica sau rspunde la mesaje n scopul de a-i nela pe Alice i Bob sau doar pentru a ncurca treburile. Cu toate acestea, la ncheierea protocolului de comunicare, Alice este sigur c a vorbit cu Bob, iar acesta este sigur c a vorbit cu Alice. Mai mult dect att, n cele mai multe protocoale, cei doi vor fi stabilit i o cheie secret de sesiune, pentru folosirea n conversaiile urmtoare. n practic, din motive de performan, tot traficul de date este criptat folosind criptografia cu cheie secret, n timp ce criptografia cu cheie public este larg folosit n protocoale de autentificare i pentru stabilirea unei chei de sesiune. Motivul pentru folosirea unei chei de sesiuni noi, aleas aleatoriu pentru fiecare conexiune este de a minimiza cantitatea de trafic care este transmis cu cheile secrete sau cheile publice ale utilizatorilor, pentru a reduce cantitatea de text cifrat pe care intrusul o poate obine i pentru a reduce stricciunile care se pot produce dac un proces eueaz, iar vidajul su de memorie (core) cade n mini rele. Este de sperat c singura cheie prezent va fi cheia de sesiune. Toate cheile permanente trebuie s fie anulate cu grij dup stabilirea sesiunii.

4.2 Autentificare Bazat pe Cheie Secret Partajat Pentru primul nostru protocol de autentificare vom presupune c Alice i Bob partajeaz deja o cheie secret KAB (n protocoale formale vom abrevia Alice cu A i, respectiv, Bob cu B). Aceast cheie partajat trebuie stabilit anterior prin telefon sau direct, dar, pentru orice eventualitate, nu prin intermediul unei reele (nesigure). Protocolul este bazat pe un principiu ce se gsete n multe protocoale de autentificare: o parte trimite un numr aleatoriu celeilalte, care l transform apoi ntr-un anumit mod i returneaz rezultatul. Astfel de protocoale se numesc protocoale provocare rspuns ( challenge response). n acest protocol i n cele ce urmeaz va fi folosit urmtoarea notaie: A,B reprezint identitile Alice i Bob Ri reprezint provocrile, unde indicele identific pe cel ce trimite provocarea Ki sunt cheile, unde i indic proprietarul; Ks este cheia de sesiune Secvena de mesaje pentru primul nostru protocol de autentificare cu cheie partajat este ilustrat n fig. 11. n mesajul 1 Alice i trimite lui Bob identitatea lui, A, ntr-un mod pe care Bob l nelege. Bineneles c Bob nu are nici un mijloc de a cunoate dac acest mesaj vine de la Alice sau de la Trudy, astfel nct el alege o provocare, un numr aleatoriu mare, RB, i-l trimite napoi spre Alice sub forma mesajului 2, ca text clar. Alice cripteaz atunci
Pagina 29 din 96

mesajul cu cheia pe care ea o partajeaz cu Bob i trimite textul cifrat KAB(RB) napoi, ca mesajul 3. Cnd Bob vede acest mesaj el tie imediat c vine de la Alice, deoarece Trudy nu cunoate KAB i astfel nu putea s genereze mesajul respectiv. Mai mult dect att, deoarece RB a fost ales aleatoriu dintr-un spaiu mare (s spunem de exemplu, numere aleatoare pe 128 de bii), este destul de puin probabil ca Trudy s fi vzut RB i rspunsul asociat lui ntr-o sesiune anterioar.
1 A

RB

Alice

KAB(RB)
4 RA 5

KAB(RA)

Fig. 11. Autentificarea n doi pai folosind un protocol de tipul provocare-rspuns. La acest punct, Bob este sigur c vorbete cu Alice, dar Alice nu este sigur de nimic. S-ar putea ca Trudy s fi interceptat mesajul 1 i s fi trimis napoi replica RB. Poate c Bob a murit azi-noapte. Pentru a descoperi cu cine vorbete, Alice alege un numr aleator RA i l trimite lui Bob ca text clar, n mesajul 4. Cnd Bob rspunde cu KAB(RA), Alice tie c vorbete cu Bob. Dac ei vor s stabileasc acum o cheie de sesiune, Alice poate alege una, KS, i o poate trimite lui Bob criptat cu KAB. Cu toate c protocolul din fig. 11 funcioneaz, el conine mesaje n plus. Acestea pot fi eliminate, dup cum este ilustrat n fig. 12. Aici Alice iniiaz protocolul provocare-rspuns, n loc de a-l atepta pe Bob s o fac. Similar, n timp ce rspunde la provocarea Alicei, Bob o trimite pe a sa. ntregul protocol poate fi redus la trei mesaje n loc de cinci.
1

A, RA

Alice

Pagina 30 din 96

Bob

Bob

RB,KAB(RA)
3

KAB(RB) Fig. 12. Un protocol mai scurt de autentificare n doi pai Este acest protocol o mbuntire a celui original? ntr-un anumit sens da: este mai scurt. Din nefericire, i el este greit. n anumite situaii, Trudy poate nela acest protocol folosind ceea ce se numete atacul prin reflexie. n particular, Trudy l poate sparge dac este posibil s deschid sesiuni multiple cu Bob la un moment dat. Aceasta situaie ar fi adevrat, de exemplu, dac Bob este o banc i este pregtit s accepte simultan mai multe conexiuni cu maini de efectuat pli. Atacul prin reflexie al lui Trudy este reprezentat n fig. 13. El pornete cu faptul c Trudy pretinde c este Alice i trimite RT. Bob rspunde, ca de obicei, cu propria sa provocare, RB. Acum Trudy este lovit. Ce poate s fac? Nu cunoate KAB(RB).
1 2

A, RT
Prima sesiune

Trudy

RB,KAB(RB) A,RB
4

Bob

A doua sesiune

RB2, KAB(RB)
5

KAB(RB)

Prima sesiune

Fig. 13 Atacul prin reflexie. Ea poate deschide o a doua sesiune cu mesajul 3, furniznd RB luat din mesajul 2 ca provocare a ei. Bob l cripteaz calm i trimite napoi KAB(RB) n mesajul 4. Acum Trudy are informaia care i lipsea, aa c poate s-i termine prima sesiune i s o abandoneze pe cea dea doua. Bob este acum c Trudy este Alice, aa c atunci cnd ea ntreab de balana contului su bancar, el i-o d fr nici o problem. Apoi cnd ea i cere s transfere toi banii la o banc secret din Elveia, el o face asta fr nici un moment de ezitare. Morala acestei povestiri este: A proiecta un protocol corect de autentificare este mai greu dect pare. Cele ce urmeaz sunt trei reguli generale adeseori utile:
Pagina 31 din 96

Iniiatorul s dovedeasc cine este naintea celui care rspunde. n acest caz, Bob transmite informaii importante nainte ca Trudy s-i fi dat vreo dovad c este cine pretinde a fi. Iniiatorul i cel ce rspunde s foloseasc chei diferite pentru dovad, chiar dac aceasta presupune existena a dou chei partajate KAB i KAB. Iniiatorul i cel ce rspunde s-i extrag provocrile din mulimi diferite. De exemplu, iniiatorul trebuie s foloseasc numere pare, iar cel ce rspunde s foloseasc numere impare. Aici au fost violate toate cele trei reguli, cu rezultate dezastruoase. De notat c primul nostru protocol de autentificare (cel cu cinci mesaje) cerea ca Alice s-i demonstreze mai nti identitatea, astfel nct protocolul nu este subiect pentru atacul prin reflexie. 4.3 Stabilirea unei chei secrete: schimbul de chei Diffie-Hellman Am presupus c Bob i Alice mpart o cheie secret. S presupunem c nu este aa! Cum pot ei s stabileasc una? O modalitate ar fi ca Alice s-l sune pe Bob i s-i dea cheia ei la telefon, dar el probabil va ncepe s se ntrebe: Cum tiu eu c eti Alice i nu Trudy?. Ei ar putea s aranjeze o ntlnire, fiecare din ei aducnd un paaport, un permis de conducere i trei cri de credit semnificative, dar fiind oameni ocupai, nu vor putea s gseasc, vreme de luni de zile, o dat acceptabil pentru amndoi. Din fericire, orict de incredibil ar prea, exist un mod pentru cei ce sunt total strini s stabileasc, chiar la lumina zilei, o cheie secret partajat, cu Trudy nregistrnd grijulie fiecare mesaj. Protocolul care permite strinilor s stabileasc o cheie secret partajat se numete interschimbul de chei Diffie-Hellman (Diffie i Hellman, 1976) i lucreaz astfel. Alice i Bob trebuie s se pun de acord asupra a dou numere prime mari, n i g, unde (n-1)/2 este de asemenea prim i asupra lui g se aplic anumite condiii. Aceste numere trebuie s fie publice, astfel c fiecare din ei trebuie doar s aleag n i g i s o spun celuilalt, n mod deschis. Acum Alice alege un numr mare (s spunem pe 512 bii), x, i l pstreaz secret. Similar, Bob alege un numr mare, secret, y. Alice iniiaz protocolul de schimb al cheii trimindu-i lui Bob un mesaj ce conine (n, g, g*x mod n), dup cum se arat n fig. 14. Bob rspunde trimindu-i lui Alice un mesaj ce conine g*y mod n. Acum Alice are numrul pe care i l-a trimis Bob i l ridic la puterea x pentru a obine (g*y mod n)*x. Bob efectueaz o operaie similar pentru a obine (g*x mod n)*y. Din legile aritmeticii modulare, ambele calcule duc la g*xy mod n. Iat cum Alice i Bob partajeaz acum o cheie secret g*xy mod n.
Pagina 32 din 96

Alice alege x
1

Bob alege y n, g, g*x mod n

Alice

Alice calculeaz (g*y mod n)*x Fig. 14. Schimbul demod n Diffie-Hellman = g*xy cheie

Bob calculeaz (g*x mod n)*y g*xy mod n Este evident c Trudy vede ambele mesaje. Ea cunoate pe g=i n din mesajul 1. Dac ea ar putea calcula x i y ar putea s descopere cheia secret. Necazul este c, dat fiind doar g*x mod n, ea nu poate afla pe x. Nu este cunoscut nici un algoritm practic pentru calculul logaritmilor discrei modulo un numr prim foarte mare. Pentru a face exemplul anterior mai concret, vom folosi (complet nerealistic) valorile n = 47 i g =3. Alice alege x = 8 i Bob alege y = 10. Ambele chei sunt pstrate secrete. Mesajul lui Alice ctre Bob este (47, 3, 28) deoarece 3*8 mod 47 este 28. Mesajul lui Bob ctre Alice este (17). Alice calculeaz 17*8 mod 47, care este 4. Bob calculeaz 28*10 mod 47, care este 4. Alice i Bob au determinat independent cheia secret care este 4. Trudy are de rezolvat ecuaia 3*x mod 47= 28 care poate fi fcut prin cutare exhaustiv n cazul unor numere mici ca acestea, dar nu i atunci cnd toate numerele sunt lungi de sute de bii. Toi algoritmi cunoscui la ora actual iau prea mult timp, chiar i atunci cnd sunt rulai folosind un supercalculator masiv paralel. n ciuda eleganei algoritmului Deffie-Hellman, exist o problem; cnd Bob ia tripletul (47, 3, 28), cum tie el c este de la Alice i nu de la Trudy? Nu exist nici o modalitate pentru aceasta. Din nefericire Trudy poate exploata acest fapt pentru a-i nela att pe Alice ct i pe Bob, dup cum este artat n fig. 15. Aici, cnd Alice i Bob l aleg pe x, respectiv pe y, Trudy alege propriul su numr aleatoriu, z. Alice trimite mesajul 1, destinat lui Bob. Trudy l intercepteaz i trimite mesajul 2 lui Bob, folosind g i n coreci (care sunt disponibili public), dar cu al su z n loc de x. De asemenea ea trimite mesajul 3 napoi lui Alice. Mai trziu Bob i trimite lui Alice mesajul 4, pe care Trudy l intercepteaz din nou i l pstreaz. Acum fiecare efectueaz aritmetica modular. Alice calculeaz cheia secret ca fiind g*xz mod n i la fel face Trudy (pentru mesajele lui Alice). Bob calculeaz g*yz mod n i la fel face Trudy (pentru mesajele lui Bob). Alice crede c vorbete cu Bob, aa c ea stabilete o
Pagina 33 din 96

Bob

g*y mod n

sesiune de cheie (cu Trudy). La fel face i Bob. Fiecare mesaj pe care Alice l trimite n sesiunea criptat este capturat de Trudy, memorat, modificat la dorin i apoi (opional) transmis lui Bob. Similar n cealalt direcie. Trudy vede orice i poate modifica toate mesajele la dorin, n timp ce att Alice ct i Bob triesc cu iluzia c au un canal de comunicaie sigur de la unul la cellalt. Alice alege x

Trudy alege z

Bob alege y

n, g, g*x mod n Trudy

n, g, g*z mod n Alice Bob


4

g*z mod n g*y mod n

Fig. 15. Atacul de tip gleata brigzii de pompieri. Acest atac este cunoscut sub numele de atacul gleata brigzii de pompieri (bucket brigade attack), deoarece el seamn vag cu un departament de pompieri de pe vremuri trecnd din mn n mn gleile de-a lungul liniei de la maina de pompieri la foc. El se mai numete i atacul omul-din-mijloc (man-in-the-middle) i nu trebuie confundat cu atacul ntlnirea-lamijloc (meet-in-the-middle) asupra cifrurilor bloc. Din fericire, algoritmi mai compleci pot para acest atac. 4.4 Autentificare folosind un Centru de Distribuia Cheilor Stabilirea unui secret partajat cu un strin a mers destul de bine, dar nu n ntregime. Pe de alt parte, probabil c nici nu merit s fie fcut (atacul strugurilor acri). Pentru a vorbi cu n oameni n acest mod ar fi necesare n chei. Pentru persoanele foarte cunoscute, gestiunea cheilor ar deveni o adevrat pacoste, n special dac fiecare cheie trebuie stocat separat pe cte o cartel de plastic. O abordare diferit o reprezint introducerea unui centru autorizat de distribuie a cheilor (KDC Key Distribution Center). n acest model, fiecare utilizator are o singur cheie partajat cu KDC. Autentificarea i gestiunea cheilor de sesiune merg acum prin intermediul
Pagina 34 din 96

KDC. Cel mai simplu i mai cunoscut protocol de autentificare KDC este broasca-cu-guramare (wide-mouth-frog) (Barrows .a., 1990) (aceasta era porecla inventatorului su, Burrows, cptat n timpul facultii). Acest protocol este ilustrat n figura 16.
1

Alice

KDC

A, KA (B, KS)

KB (A, KS)

Fig. 16. Protocolul de autentificare broasca cu gura mare . Ideea din spatele protocolului broasca cu gura mare este simpl: Alice alege o cheie de sesiune, KS, i anun KDC c vrea s vorbeasc cu Bob folosind KS. Acest mesaj este criptat cu cheia secret pe care Alice o mparte cu KDC, KA. KDC decripteaz acest mesaj, extrage identitatea lui Bob i cheia de sesiune. Apoi el construiete un nou mesaj ce conine identitatea lui Alice i cheia de sesiune i trimite acest mesaj lui Bob. Criptarea este fcut cu KB, cheia pe care Bob o mparte cu KDC. Cnd Bob decripteaz mesajul, el afl c Alice vrea s vorbeasc cu el i cheia pe care aceasta vrea s o utilizeze. Autentificarea are loc gratuit, KDC tie c mesajul 1 trebuie s fi venit de la Alice, deoarece nimeni altcineva nu poate s-l cripteze cu cheia secret a Alicei. Similar, Bob tie sigur c mesajul 2 vine de la KDC, n care el are ncredere, deoarece nimeni altcineva nu mai cunoate cheia lui secret. Din nefericire, acest protocol prezint o grav imperfeciune. Trudy are nevoie de ceva bani, aa c ea imagineaz un serviciu pe care l poate executa pentru Alice, face o ofert atractiv i obine postul. Dup ce i face treaba, Trudy cere politicos lui Alice s-i plteasc transferndu-i banii prin banc. Aa c Alice stabilete o cheie de sesiune cu bancherul ei, Bob. Apoi ea i trimite lui Bob un mesaj prin care cere ca banii respectivi s fie transferai n contul lui Trudy. n acelai timp, Trudy se ntoarce la vechile obiceiuri, furturile prin reea. Ea copiaz att mesajul 2 din figura 16, ct i cerea de transferare a banilor care l urmeaz. Mai trziu ea le trimite lui Bob. Bob le ia i gndete: Alice probabil c a angajat-o din nou pe Trudy. Cu siguran c ea lucreaz bine. Bob transfer din nou o cantitate de bani egal cu prima din contul lui Alice n al lui Trudy. La ctva timp dup cea de-a 50-a pereche de mesaje pe care o primete, Bob alearg afar din biroul su pentru a o gsi pe Trudy i a-i oferi un mprumut

Pagina 35 din 96

Bob

mare astfel ca ea s-i poat extinde afacerea ce se dovedete a fi att de plin de succes. Problema se mai numete atacul prin replic. Sunt cteva soluii posibile la atacul prin replic. Prima este de a include n fiecare mesaj o amprent de timp. Astfel, dac cineva primete un mesaj expirat, l ignor. Necazul cu aceast abordare este c ntr-o reea ceasurile nu sunt niciodat perfect sincronizate, astfel nct va exista un ntreg interval de timp n care o amprent de timp este valid. Trudy poate rspunde la mesaj n timpul acestui interval i s scape. Cea de-a doua soluie este s se pun, n fiecare mesaj, un numr de mesaj unic, folosibil o singur dat, numit n general momentan (nonce). Fiecare parte trebuie s-i rememoreze toate numerele momentane folosite anterior i s rejecteze orice mesaj ce conine un numr momentan folosit deja. Dar numerele momentane trebuie rememorate la nesfrit, chiar i atunci cnd Trudy ncearc s rspund la un mesaj vechi de 5 ani. De asemenea, dac o main cade i i pierde lista de numere momentane, ea va fi din nou vulnerabil la un atac prin replic. Amprentele de timp i numerele momentane pot fi combinate pentru a limita timpul n care acestea din urm nu trebuie terse, dar este evident c protocolul devine ceva mai complicat. O abordare i mai sofisticat a autentificrii este folosirea unui protocol provocarerspuns multici. Un exemplu binecunoscut de astfel de protocol este protocolul de autentificare Needham-Schroeder (Needham i Schroeder, 1978). O variant a acestuia este prezentat n fig. 17.

1 2

KA(RA, B, KS, KB( A, KS))

Alice

KDC

RA,A, B

3 KB (A, KS), KS(RA2) 4 KS(RA2-1), RB 5 KS(RB-1)

Fig. 17. Protocolul de autentificare Needham-Schroeder. n acest protocol, Alice ncepe prin a anuna KDC c ea dorete s vorbeasc cu Bob. Acest mesaj conine un numr aleatoriu mare, RA, pe post de numr momentan. KDC trimite
Pagina 36 din 96

Bob

napoi mesajul 2 coninnd numrul aleatoriu al lui Alice mpreun cu un tichet pe care ea l poate trimite lui Bob. Scopul numrului aleatoriu este acela de a o asigura pe Alice c mesajul 2 este proaspt i nu o replic. Identitatea lui Bob este de asemenea inclus pentru cazul n care lui Trudy i vine amuzanta idee s nlocuiasc B-ul din mesajul 1 cu propria sa identitate, astfel nct KDC s cripteze tichetul de la sfritul mesajului 2 cu KT n loc de KB. Tichetul criptat cu KB este inclus n interiorul mesajului criptat, pentru a o mpiedica pe Trudy s-l nlocuiasc cu altceva pe drumul su napoi spre Alice. Acum Alice i trimite tichetul lui Bob, mpreun cu un nou numr aleatoriu, RA2, criptat cu cheia de sesiune, KS. n mesajul 4, Bob trimite napoi KS(RA2-1) pentru a-i dovedi c lui Alice c vorbete cu adevratul Bob. Trimiterea napoi a lui KS(RA2) nu ar fi mers, deoarece ar fi fost posibil ca Trudy tocmai s-l fi furat din mesajul 3. Dup primirea mesajului 4, Alice este convins c vorbete cu Bob i c pn n acest moment nu s-au folosit replici falsificate. n plus, ea tocmai a generat RA2 cu cteva milisecunde mai nainte. Scopul mesajului 5 este de a-l convinge pe Bob c este chiar Alice cea cu care vorbete i c nu s-au folosit replici falsificate. Posibilitatea oricrui tip de atac prin replic este eliminat, deoarece fiecare parte genereaz o provocare i rspunde la ea. Cu toate c protocolul pare a fi destul de solid, el are o mic scpare. Dac Trudy reuete s obin o cheie de sesiune veche n text clar, ea poate s iniieze o nou sesiune cu Bob rspunznd la mesajul 3 corespunztor cheii compromise i convingndu-l pe acesta c ea este Alice. De aceast dat ea poate prda contul din banc al lui Alice fr s execute o operaie autorizat. Needman i Schroeder au publicat un protocol care corecteaz aceast problem (Needman i Schroeder, 1987). n acelai numr al aceluiai jurnal, Otway i Rees (1987) au publicat de asemenea un protocol care rezolv problema pe o cale mai scurt. Fig. 18 ilustreaz un protocol Otway-Rees uor modificat.
1 A, B, R, KA (A, B, R, RA)

Alice

KDC

3 KB(RB, KS) 4
Pagina 37 din 96

Bob

A, KA(A, B, R, RA), B, KB( A, B, R, RB))

KA(RA ,KS)

Fig. 18. Protocolul de autentificarea Otway-Rees (puin simplificat) n protocolul Otway-Rees, Alice ncepe prin a genera o pereche de numere aleatorii, R, care va fi utilizat ca identificator comun, i RA, pe care Alice l va folosi pentru a-l provoca pe Bob. Cnd Bob preia acest mesaj, el construiete un mesaj nou din partea criptat a mesajului lui Alice i unul analog din partea sa. Ambele pri criptate cu KA i KB identificnd pe Alice i pe Bob, conin identificatorul comun i o provocare. KDC verific dac R din ambele pri este acelai. S-ar putea s nu fie, deoarece Trudy a intervenit cu R n mesajul 1 sau a nlocuit partea din mesajul 2. Dac cele dou RS se potrivesc, KDC crede c mesajul de cerere de la Bob este valid. El genereaz atunci o cheie de sesiune i o cripteaz de dou ori, o dat pentru Alice i o dat pentru Bob. Fiecare mesaj conine numrul aleatoriu al receptorului, ca dovad c mesajul a fost generat de KDC i nu de Trudy. n acest moment att Alice ct i Bob sunt n posesia unei aceleiai chei de sesiune i pot ncepe comunicarea. Prima dat cnd ei vor schimba mesaje de date, fiecare va putea vedea c cellalt are o copie identic a lui KS, astfel autentificarea fiind complet. 4.5 Autentificarea folosind Kerberos Un protocol de autentificare folosit n multe sisteme de timp real este Kerberos, care se bazeaz pe o variant a protocolului Needham-Schroeder. Numele su vine de la un cine, cu mai multe capete din mitologia greac, ce era folosit pentru a pzi intrarea n Hades (probabil pentru ai ine pe cei nedorii afar). Kerberos a fost proiectat la M.I.T. pentru a permite utilizatorilor de la staiile de lucru s acceseze resursele reelei ntr-un mod sigur. Cea mai mare diferen dintre el i Needman-Schroeder este presupunerea lui c toate ceasurile sunt destul de bine sincronizate. Protocolul a trecut prin cteva iteraii. V4 este versiunea cea mai larg utilizat n industrie, aa c pe acesta o vom descrie. Dup care vom spune cteva cuvinte despre succesoarea sa, V5. Kerberos implic trei servere n afar de Alice (staia de lucru al clientului): Serverul de autentificare (AS- Authentification Server): verific utilizatorii n timpul conectrii.

Pagina 38 din 96

Serverul de acordare a Tichetelor (TGS- Ticket-Granting Server): emite demonstrarea identitii tichetelor. Serverul Bob: realizeaz efectiv aciunea pe care o dorete Alice. AS este similar unui KDC prin aceea c el partajeaz o parol secret cu orice utilizator. Sarcina TGS este de a emite tichete care pot convinge serverele reale c acela care deine un tichet TGS este ntr-adevr cel ce pretinde a fi. Pentru a porni o sesiune, Alice st aezat la o staie de lucru public arbitrar i-i tasteaz numele. Staia de lucru transmite numele ei la AS ca text clar, dup cum este artat n fig. 19. Ceea ce vine napoi este o cheie de sesiune mpreun cu un tichet KTGS(A, KS), destinate TGS-ului. Aceste articole sunt mpachetate mpreun i criptate folosind cheia secret a lui Alice, astfel nct doar Alice s le poat decripta. Doar cnd sosete mesajul 2, staia de lucru i va cere lui Alice parola. Parola este folosit pentru a genera KA, n scopul decriptrii mesajului 2 i obinerii cheii de sesiune i tichetului TGS din interiorul acestui mesaj. n acest moment, staia de lucru nlocuiete parola lui Alice pentru a fi sigur c ea se gsete n interiorul staiei de lucru pentru cel mult cteva milisecunde. Dac Trudy ncearc s se conecteze ca Alice, parola pe care o introduce va fi greit i staia de lucru va detecta acest lucru deoarece partea standard a mesajului 2 va fi incorect.

A KA (KS,KTGS(A,KS)) AS Conectare

2 3

Alice

KTGS(A,KS),B, KS(t)
4

TGS

Obine un tichet

KS(B, KAB), KB(A,KAB)


5

KAB(t+1) Fig. 19. Modul de operare la Kerberos V4.

Pagina 39 din 96

Bob

KA(A,KAB), KAB(t)

Lucreaz

Dup conectare Alice trebuie s anune staia de lucru c dorete s-l contacteze pe Bob, serverul de fiiere. Elementul cheie n aceast cerere este KTGS(A,KS), care este V4 criptat cu cheia secret a TGS i este folosit ca dovad c transmitorul este chiar Alice. TGS rspunde prin crearea unei chei de sesiune KAB, pentru ca Alice s o foloseasc cu Bob. Dou versiuni ale acesteia sunt transmise napoi. Prima este criptat doar cu KS, astfel nct Alice s poat s o citeasc. A doua este criptat cu cheia lui Bob, KB, astfel nct Bob s o poat citi. Trudy poate copia mesajul 3 i poate ncerca s-l utilizeze din nou, dar ea va fi mpiedicat de amprenta de timp t, trimis mpreun cu el. Trudy nu poate nlocui amprenta de timp cu una mai recent, deoarece ea nu cunoate KS, cheia de sesiune pe care o folosete Alice pentru a vorbi cu TGS. Chiar dac Trudy rspunde repede la mesajul 3, tot ceea ce va obine este o alt copie a mesajului 4, pe care nu a reuit s-l decripteze prima dat i nici a doua oar. Acum Alice i poate trimite lui Bob KAB pentru a stabili o sesiune cu el. Acest schimb este de asemenea cu amprente de timp. Rspunsul este pentru Alice dovada c ea vorbete chiar cu Bob, nu cu Trudy. Dup o serie de schimburi, Alice poate comunica cu Bob sub acoperirea cheii KAB. Dac mai trziu se decide c are nevoie s comunice cu alt server, Carol, ea va repeta doar mesajul 3 spre TGS, specificnd doar C n loc de B. TGS va rspunde cu promptitudine cu un tichet criptat cu KC, pe care Alice l poate transmite lui Carol i pe care Carol l va accepta ca dovad c ea vine de la Alice. Scopul ntregii aciuni este c acum Alice poate face acces la serverele din toat reeaua ntr-un mod sigur i c parola sa nu va fi transmis niciodat prin reea. De fapt parola trebuie s existe pe staia de lucru doar pentru cteva milisecunde. Cu toate acestea, trebuie remarcat c fiecare server face propria sa autorizare. Atunci cnd Alice i prezint tichetul su lui Bob, acest tichet doar i demonstreaz lui Bob cine l-a trimis. Ceea ce i este permis lui Alice s fac, depinde doar de Bob. Deoarece proiectani Kerbos-ului nu s-au ateptat ca ntreaga lume s aib ncredere ntr-un singur server de autentificare, ei au prevzut posibilitatea de a avea domenii multiple, fiecare cu propriul su AS i TGS. Pentru a obine un tichet de la un server dintr-un domeniu de la distan, Alice ar trebui s cear propriul su TGS un tichet acceptat de TGS-ul din domeniul de la distan. Dar TGS-ul de la distan este nregistrat n TGS-ul local (n acelai mod n care serverele locale), TGS-ul local i va da lui Alice un tichet valid pentru TGS-ul de la distan. Astfel ea poate s lucreze acolo, cum ar fi s ia tichete pentru serverele din acest domeniu. De notat totui c, pentru ca pri din dou domenii diferite s conlucreze, fiecare trebuie s se ncread n TGS-ul celuilalt.
Pagina 40 din 96

Kerberos V5 este mai elegant ca V4 i are o suprancrcare mai mare. Pentru a descrie tipurile de date el folosete i OSI ANSI.1 (Abstract Syntax Notation 1) prezentnd mici modificri n protocoale. Mai mult dect att, are timpi de via mai mari pentru tichete, permite rennoirea tichetelor i va elibera tichete postdatate. n plus, cel puin n teorie, nu este dependent de DES, cum este V4, i suport domenii multiple. 4.6 Autentificarea folosind Criptografia cu Cheie Public Autentificarea mutual poate fi realizat i cu ajutorul criptografiei cu cheie public. Pentru nceput, s presupunem c Alice i Bob i cunosc deja unul altuia cheile publice (pentru ca problema s nu fie banal). Ei vor s stabileasc o sesiune n care s foloseasc apoi criptografia cu cheie secret, deoarece aceasta este de obicei de 1000 pn la 100 de ori mai rapid dect criptografia cu cheie public. Scopul schimbului iniial este deci de a se autentifica unul pe cellalt i de a se pune de acord asupra unei chei secrete. Acest nceput poate fi fcut n diferite moduri. Un mod tipic este cel artat n fig. 20 Aici Alice ncepe prin a-i cripta identitatea i un numr aleatoriu, RA, folosind cheia public a lui Bob, EB. Cnd primete acest mesaj, Bob nu are nici o idee dac mesajul provine de la Alice sau de la Trudy, ns intr n joc i trimite napoi lui Alice un mesaj coninnd RA, propriul su numr aleatoriu, RB, i o propunere de cheie de sesiune KS.
1

EB(A,RA) Alice Bob


2

EA(RA, RB, KS)


3

KS(RB) Fig. 20. Autentificarea mutual folosind criptografia cu cheie public. Cnd Alice primete mesajul 2, ea l decripteaz folosind propria cheie privat. Ea vede RA n mesaj, ceea ce i d o senzaie plcut. Mesajul trebuie s vin de la Bob deoarece Trudy nu are nici un mijloc de a determina RA. Alice accept cheia de sesiune trimind napoi mesajul 3. Cnd Bob vede RB criptat cu cheia de sesiune pe care a generat-o el, tie c Alice a primit mesajul 2 i a verificat RA.
Pagina 41 din 96

Cum poate Trudy s compromit acest protocol? Ea poate fabrica mesajul 1 i-l poate pcli pe Bob s o testeze pe Alice, dar Alice va vedea un RA pe care nu l-a trimis ea i nu va merge mai departe. Trudy nu poate falsifica mesajul 3 ntr-un mod convingtor, deoarece ea nu tie RB sau KS i nu le poate determina fr cheia privat a lui Alice. De data aceasta ea nu are noroc. Totui protocolul trebuie s aib un punct slab: el presupune c Alice i Bob i cunosc deja unul altuia cheile publice. S presupunem c nu este aa. Alice poate doar s-i trimit lui Bob cheia ei public n primul mesaj i s cear lui Bob s-i trimit napoi cheia lui public n urmtorul mesaj. Necazul cu aceast abordare este c protocolul poate fi subiectul unui atac de tipul gleata brigzii de pompieri. Trudy poate captura mesajul lui Alice ctre Bob i poate trimite propria sa cheie public napoi spre Alice. Alice va crede c are cheia pentru a vorbi cu Bob, cnd, de fapt, ea are cheia pentru a vorbi cu Trudy. Acum Trudy poate citi toate mesajele criptate cu ceea ce crede Alice c este cheia public a lui Bob. Schimbul iniial de chei publice poate fi evitat avnd toate cheile publice memorate ntr-o baz de date. Atunci Alice i Bob pot extrage cheia public a celuilalt din baza de date. Din nefericire, Trudy mai poate s dea drumul la atacuri de tipul gleata brigzii de pompieri prin interceptarea cererilor ctre baza de date i prin trimiterea de rspunsuri simulate coninnd propria cheie public. n final, cum tiu Alice i Bob c rspunsul vine de la baza de date real i nu de la Trudy? Rivest i Shamir (1984) au conceput un protocol care mpiedic atacul de tipul gleata brigzii de pompieri din partea lui Trudy. n protocolul lor cu interblocare (interblock), dup schimbul de chei publice, Alice i trimite lui Bob doar jumtate din mesajul ei, s spunem doar biii pari (rezultai dup o criptare). Bob i rspunde cu biii si pari. Dup ce primete biii pari ai lui Bob, Alice trimite biii si impari, lucru pe care-l face i Bob. Ideea aici este c dac ia biii pari ai lui Alice, Trudy nu poate decripta mesajul, chiar dac ea are cheie privat. n consecin, ea nu este capabil s recripteze biii pari folosind cheia public a lui Bob. Dac i va trimite ceva fr sens lui Bob, protocolul va continua, dar Bob va descoperi n scurt timp c mesajul asamblat complet nu are nici un sens i i va da seama c a fost nelat. 4.7 Semnturi Digitale Autenticitatea multor documente legale, financiare i de alt gen este determinat de prezena sau absena unor semnturi autorizate scrise de mn. Iar fotocopiile nu sunt valabile.
Pagina 42 din 96

Pentru sistemele de mesaje computerizate care urmresc nlocuirea transportului fizic al documentelor scrise cu cerneal pe hrtie, trebuie gsit o soluie la problema autentificrii. Problema de a concepe un nlocuitor pentru semnturile scrise de mn este destul de dificil. De fapt, ceea ce este necesar este un sistem prin care una din pri poate trimite mesaje semnate celeilalte pri astfel nct: Receptorul poate verifica identitatea pe care pretinde a o avea transmitorul; Transmitorul nu poate s renege mai trziu coninutul mesajului; Receptorul nu poate s fi pregtit el nsui mesajul. Prima cerin este necesar, de exemplu, n sistemele financiare. Atunci cnd calculatorul unui client ordon calculatorului unei bnci s cumpere o ton de aur, calculatorul bncii trebuie s poat s asigure c acel calculator care d ordinul aparine ntr-adevr companiei al crei cont va fi debitat. A doua cerin este necesar pentru a proteja banca mpotriva fraudei. S presupunem c banca cumpr o ton de aur i imediat dup aceea preul aurului scade vizibil. Un client necinstit poate s acuze banca, pretinznd c el nu a emis niciodat vreun ordin de cumprare de aur. Cnd banca prezint mesajul n faa curii, clientul neag faptul c l-ar fi trimis. Cea de-a treia cerin este necesar pentru a proteja clientul n eventualitatea c preul aurului explodeaz i banc ncearc s construiasc un mesaj n care clientul cere cumprarea unui lingou de aur n locul unei tone. 4.8 Semnturi cu Cheie Secret Un mod de abordare pentru semnturile digitale este acela de a avea o autoritate central care tie totul i n care oricine are ncredere, s spunem Big Brother (BB). Fiecare utilizator alege o cheie secret i o duce personal la biroul BB. Astfel, doar Alice i BB vor cunoate secretul lui Alice, KA, .a.m.d. Atunci cnd Alice dorete s trimit un mesaj n clar semnat, P, bancherul su, Bob, ea genereaz KA(B, RA, t, P) i l trimite, dup cum este artat n fig. 21.

Alice

BB

A, KA(B, RA , t, P)

KB (A, RA, t, P, KBB(A, t, P))

Fig. 21. Semnturi digitale cu Big Brother.


Pagina 43 din 96

Bob

BB vede c mesajul este de la Alice, l decripteaz i l trimite lui Bob mesajul din figur. Mesajul trimis spre Bob conine textul clar din mesajul lui Alice i, de asemenea, mesajul semnat KBB(A, t, P), unde t este amprenta de timp. Acum Bob rezolv cererea lui Alice. Ce se ntmpl dac Alice neag mai trziu trimiterea mesajului su? Pasul 1 este c oricine poate acuza pe oricine (cel puin n SUA). n final, cnd cazul ajunge n faa curii i Alice neag cu nverunare c a trimis lui Bob mesajul n disput, judectorul l va ntreba pe Bob cum poate fi el sigur c mesajul disputat vine de la Alice i nu de la Trudy. Bob va arta mai nti c BB nu accept un mesaj de la Alice dect dac este criptat cu KA, aa c nu exist nici o posibilitate ca Trudy s-i trimit lui BB un mesaj fals ca provenind de la Alice. Apoi Bob va aduce n mod impresionant Proba A, KBB(A, t, P). Bob spune c acesta este un mesaj semnat BB care demonstreaz c Alice i-a trimis P lui B. judectorul i va cere apoi lui BB (n care toat lumea are ncredere) s decripteze Proba A. Cnd BB va depune mrturie c Bob spune adevrul, judectorul va da verdictul n favoarea lui Bob. Cazul va fi nchis. O problem posibil cu protocolul de semnare din fig. 21 apare atunci cnd Trudy rspunde la fiecare mesaj. Pentru a minimiza aceast problem, sunt folosite peste tot amprentele de timp. Mai mult, Bob poate verifica toate mesajele recente s vad dac RA a fost folosit n vreunul dintre ele. Dac da, mesajul respectiv este ignorat deoarece este o replic. De remarcat c Bob va refuza toate mesajele foarte vechi din punct de vedere al amprentei de timp. Pentru a se pzi mpotriva atacurilor prin rspuns instantaneu, Bob verific doar RA al oricrui mesaj venit, ca s vad dac s-a mai primit n ultimele ore un astfel de mesaj de al Alice. Dac da, Bob poate presupune fr nici un risc c mesajul reprezint o nou cerere. 4.9 Semnturi cu Cheie Public

O problem structural n folosirea criptografiei cu cheie secret pentru semnturi digitale este aceea c orice trebuie s se ncread n Big Brother. Mai mult dect att, Big Brother poate citi toate mesajele semnate. Cei mai logici candidai pentru a juca rolul lui Big Brother sunt guvernul, bncile, oamenii legii. Aceste organizaii nu inspir ns ncredere total tuturor cetenilor. De aceea ar fi frumos dac semnarea documentelor nu ar necesita existena unei astfel de autoriti de ncredere.

Pagina 44 din 96

Din fericire, criptografia cu cheie public i poate aduce aici o important contribuie. S presupunem c algoritmii de criptare i decriptare cu cheie public au proprietatea c E(D(P))=P n plus fa de proprietatea uzual D(E(P))=P. (RSA are aceast proprietatea, deci presupunerea nu este nerezonabil). S presupunem c Alice poate trimite un text clar semnat, P, lui Bob transmind EB(DA(P)). O observaie important aici este aceea c Alice cunoate att propria sa cheie secret ct i cheia public a lui Bob, EB, astfel nct construcia acestui mesaj este pentru Alice un lucru realizabil. Cnd Bob primete mesajul, el l transform, folosindu-i cheia privat, ca de obicei, rezultnd DA(P), dup cum este artat i n fig. 22. El memoreaz acest text ntr-un loc sigur i apoi l decripteaz, folosind EA, pentru a obine textul clar original. Pentru a vedea cum lucreaz semntura, s presupunem c Alice neag ulterior trimiterea mesajului P lui Bob. Atunci cnd cazul ajunge n faa curii, Bob poate aduce ca probe att P ct i DA(P). Judectorul poate verifica foarte uor c Bob are un mesaj valid criptat cu DA, doar aplicnd EA asupra lui. Deoarece Bob nu tie care este cheia privat a lui Alice, singurul mod prin care Bob poate s fi primit mesajul criptat cu aceast cheie privat este ca Alice n persoan s-l fi trimis. Ct timp va fi nchis pentru minciun i fraud, Alice va avea suficient timp s conceap noi algoritmi cu cheie public interesani. Calculatorul lui Alice
Linia de transmisie

Calculatorul lui Bob

Cheie privat a lui Alice, DA

Cheie public a lui Bob, EB

Cheie privat a lui Bob, DB

Cheie public a lui Alice, EA

EB(DA(P)) DA(P) Fig. 22. Semnturi digitale folosind criptografia cu cheie public. Cu toate c folosirea criptografiei cu cheie public pentru semnturi digitale este o schem elegant, exist probleme legate mai degrab de mediul n care aceasta opereaz dect de algoritmul de baz. De exemplu, Bob poate proba c mesajul a fost trimis de ctre Alice atta vreme ct DA rmne secret. Dac Alice dezvluie cheia sa secret, acest argument nu va mai fi valabil, deoarece oricine poate s fi trimis mesajul, chiar i Bob.

DA(P)

Pagina 45 din 96

Problema poate aprea, de exemplu, dac Bob este agentul de vnzri al lui Alice. Alice i spune lui Bob s cumpere nite aciuni i s le pstreze. Imediat dup aceea, preul scade vertiginos. Pentru a repudia mesajul su ctre Bob, Alice face o plngere la poliie, pretinznd c i-a fost spart casa i furat cheia secret. n funcie de legislaia din ara sau inutul su, ea poate fi sau nu rspunztoare legal, n special dac pretinde c a descoperit spargerea cnd s-a ntors acas de la munc, la cteva ore mai trziu. O alt problem cu schema de semnturi este ce se ntmpl dac Alice decide s-i schimbe cheia. A face acesta este evident legal i este probabil o idee bun s o fac periodic. Dac n justiie apare mai trziu un caz, aa cum s-a povestit mai sus, judectorul va aplica actualul EA la DA(P) i va constata c nu se obine P. Bob va fi atunci n situaie dificil. n consecin, apare necesitatea ca o autoritate s nregistreze toate schimbrile de chei i datele acestora. 4.10 Rezumate de mesaje O critic adus schemelor de semntur este aceea c adeseori cupleaz dou funcii distincte: autentificarea i confidenialitatea. Adesea, autentificarea este necesar, dar confidenialitatea nu. Deoarece criptarea este lent, adeseori se dorete s existe posibilitatea de a se trimite documente cu text n clar, ns semnate. Mai jos vom descrie o schem de autentificare care nu necesit criptarea ntregului mesaj. Schema este bazat pe ideea unei funcii de dispersie neinversabile care preia o bucat de text clar de lungime arbitrar din care calculeaz un ir de bii de lungime fix. Funcia de dispersie, adeseori numit rezumat (digest) al mesajului, are trei proprieti importante: Dat fiind P, este uor de calculat MD(P). Dat fiind MD(P), este efectiv imposibil de calculat P. Nimeni nu poate genera dou mesaje avnd acelai rezumat. Pentru a satisface criteriul 3, rezumatul trebuie s aib cel puin 128 de bii lungime, de preferat chiar mai mult. Calculul rezumatului unui mesaj dintr-o bucat de text clar este mult mai rapid dect criptarea unui text clar cu un algoritm cu cheie public. Pentru a vedea cum lucreaz, s considerm din nou protocolul de semntur din fig. 21. n loc de a semna P cu KBB(A, t, P), BB calculeaz acum rezumatul mesajului aplicnd MD lui P, rezultnd MD(P). BB mpacheteaz apoi KBB(A, t, MD(P)) ca al cincilea element n lista criptat cu KB care este trimis lui Bob, n loc de KBB(A, t, P).

Pagina 46 din 96

n disputa ce apare, Bob poate aduce ca argumente att P ct i KBB(A, t, MD(P)). Dup ce Big Brother l-a decriptat pentru judector, Bob are MD(P), care este garantat a fi original i pretinsul P. Totui, deoarece este efectiv imposibil ca Bob s gseasc un alt mesaj care s aib acest rezumat, judectorul va fi convins uor c Bob spune adevrul. Folosirea rezumatelor mesajelor n acest mod economisete att timpul de criptare ct i costurile pentru transport i memorare. Calculul rezumatelor funcioneaz i n criptosistemele cu chei publice, dup cum este artat i n fig. 23. Aici Alice calculeaz mai nti rezumatul de mesaj pentru textul su clar. Apoi ea semneaz rezumatul i trimite att textul clar ct i semntura lui Bob. Dac Trudy l nlocuiete pe P n timpul transferului, Bob va vedea aceasta atunci cnd va calcula el nsui MD(P). Au fost propuse o diversitate de funcii pentru calculul rezumatului. Unele din cele mai folosite sunt MD5 (Rivest, 1992) i SHA (NIST, 1993). MD5 este a cincia din seria de funcii de dispersie proiectate de Ron Rivest. Opereaz prin amestecarea biilor ntr-un mod suficient de complicat, astfel nct fiecare bit de ieire s depind de fiecare bit de intrare. Foarte pe scurt, algoritmul ncepe prin a umple mesajul pn la o lungime de 448 (modulo 512) bii. Lungimea original a mesajului este adugat apoi ca un ntreg pe 64 de bii, dnd o intrare a crei lungime total este un multiplu de 512 bii. Ultimul pas dinaintea nceperii calculului este iniializarea unui tampon de 128 de bii la o valoare fix.

Alice

P, DA (MD(P))

Fig. 23. Semnturi digitale folosind rezumatul mesajului. Apoi ncepe calculul. Fiecare rund ia un bloc de intrare de 512 de bii i i amestec complet cu cei din tamponul de 128 bii. Ca o msur suplimentar, este folosit i o tabel construit folosind funcia sinus. Utilizarea unei funcii cunoscute cum este sinus nu se datoreaz faptului c este mai aleatorie dect un generator de numere aleatorii, ci pentru a evita orice suspiciune c proiectantul a inclus o trap inteligent ascuns prin care el poate intra. Refuzul IBM-ului de a dezvlui principiile aflate la baza proiectrii cutiilor S din DES a dus la speculaii destul de mari privind existena trapelor ascunse. Pentru fiecare bloc de intrare sunt efectuate patru runde. Acest proces continu pn cnd sunt consumate toate blocurile de intrare. Coninutul tamponului de 128 de bii formeaz rezumatul mesajului. Algoritmul a fost

Pagina 47 din 96

Bob

optimizat pentru implementri software pe maini pe 32 de bii. n consecin, el poate s nu fie suficient de rapid pentru viitoarele reele de mare vitez. Alt funcie major pentru calculul rezumatului este SHA (Secure Hash Algorithm Algoritm de Dispersie Sigur), dezvoltat de NSA i acceptat i de NIST. Ca i MD5, ea prelucreaz datele de intrare n blocuri de cte 512 de bii, dar, spre deosebire de MD5, genereaz un rezumat de mesaj de 160 de bii. ncepe prin a umple mesajul, adugnd apoi lungimea de 64 de bii pentru a obine un multiplu de 512 bii. Apoi iniializeaz tamponul de ieire de 160 bii. Pentru fiecare bloc de intrare, tamponul de ieire este actualizat folosind blocul de intrare de 512 bii. Nu este folosit o tabel de numere aleatorii (sau de valori ale funciei sinus), dar pentru fiecare bloc sunt calculate 80 de runde, rezultnd un amestec complet. Fiecare grup de 20 de runde folosete funcii de amestecare diferite. Deoarece lungimea rezumatului SHA este de cu 32 de bii mai mare dect a rezumatului MD5, toate celelalte elemente fiind identice, SHA este un factor de 2*32 mai sigur dect MD5. Totui, faptul c este mai lent dect MD5 i acela c are o lungime a rezumatului care nu este putere a lui 2 pot fi uneori inconveniente. Astfel, cele dou sunt aproximativ identice din punct de vedere tehnic. Ca politic, MD5 este definit ntr-un RFC i folosit foarte mult n Internet. SHA este un standard guvernamental i este utilizat de companiile care trebuie s l foloseasc, deoarece guvernul le-o impune, sau cele care doresc o securitate suplimentar. O versiune revizuit, SHA-1, a fost aprobat ca standard de ctre NIST.

CAPITOLUL V Utilizarea criptografiei n sistemele bancare, comerul electronic i e-mail 5.1 Utilizarea criptografiei n sistemele bancare Utilizarea calculatoarelor i mai ales a reelolor de calculatoare n domeniul economic, atrage dup sine o serie de probleme legate de securitatea transmisiilor. Acestea se datoreaz i existenei concurenei, a necesitii comunicrii rapide pentru obinerea i transmiterea informaiilor folosite la aducerea deciziilor.

Pagina 48 din 96

Puine lucruri se pot spune despre o modul i softul folosit pentru securitate i modul de autentificare folosite la instituiile economice cele mai importante. Asemenea detalii nu sunt publicate pentru a preveni un anumit atac. Criptarea s-ar justifica numai n cazul efecturii de anumite pli electronice i eventual la compensaia cnd va fi. n cazul operaiunilor de tip phone-banking sau electronicbanking problemele de securitate trebuiesc luate foarte serios n considerare. Asupra acestor servicii moderne bncile romneti trebuie s mediteze serios, deoarece aceste noi canale vor fi elementele de atac ale pieii bancare romneti de ctre bncile strine. Un alt aspect al securitii l reprezint mai degrab accesul i onestitatea propriilor angajai la sistemele operative ale bncii. Att ct se poate merit s existe limitri discrete fr a cdea ns n alternativa paranoii secretului bancar, att de rspndit (intenionat sau din incompeten), din pcate, n sistemul bancar din ara noastr. Este clar c o nou economie s-a nscut i transform economia existent. Schimbarea afecteaz toate domeniile i toate ntreprinderile. Internetul joac un rol central n aceast transformare, punnd la dispoziie pe scar larg resursele informaionale. Dac electricitii i-a trebuit un secol pentru a ptrunde n ntreaga lume, Internetul este folosit de peste 100 milioane de oameni i aplicaiile lui economice, n special comerul electronic, sunt cele mai rspndite. A fost construit o nou infrastructur tehnic. Industriile legate de Internet creeaz locuri de munc de dou ori mai rapid dect celelalte industrii. Dimensiunea acestei industrii se reflect i n alte sectoare economice. Este evident c economia Erei Informaionale trebuie s in seama de fenomenul globalizrii, care conduce la o tot mai accentuat concuren, la o calitate mai bun a vieii prin accesul la informaiile disponibile n format electronic i la noi oportuniti ntr-un mediu de afaceri caracterizat de reducerea ciclurilor economice.

5.2 Comerul electronic pe Internet (e-commerce) Este o form de comer dezvoltat foarte rapid i se datoreaz n exclusivitate Internetului. O prim problem crucial este legat de securitate O a dou problem a comerului electronic e legat de credibilitatea firmelor ce-l practic. n cazul unui magazin din lumea real exist din start motive de ncredere: magazinul este n faa ochilor ti, marfa e clar nuntru, iar de bine, de ru, patronul n cauz pltete o
Pagina 49 din 96

chirie, are nite angajai, i mcar n aparen triete dintr-o afacere cinstit. n plus, dac i se pare c e ceva necurat n acel magazin, i ii credit card-ul n buzunar i te duci s faci cumprturi n alt parte. Cumprturile fcute ntr-un mall electronic sunt ns ntr-o situaie mai delicat, cci 10-20 de pagini de Web (n care se face reclam la un produs sau altul) le poate scrie oricine iar relaia cumprtor-vnztor ncepe n fapt prin transmiterea CCN-ului (Credit Card Number) tu ctre un vnztor necunoscut. Orice mechera poate scrie un script CGI care primete formularul electronic de la o persoan, salveaz CCN-ul i datele personale, dup care i rspunde: ne pare ru, dar pe moment nu avem n stoc produsul solicitat. El s-a ales cu un CCN numai bun de exploatat iar persoana respectiv nici nu-i d seama c a avut de a face cu un mechera. Un alt dezavantaj al comerului electronic este legat de faptul c interaciunea cumprtor-vnztor e extrem de redus, iar acest lucru oblig clientul s nu cumpere electronic dect obiectele pe care le cunoate la perfeciune. n caz contrar, dac obiectul comandat nu este exact aa cum l visa cumprtorul, trimiterea lui napoi i ateptarea livrrii unui alt articol (sau repetarea acestui proces de dou-trei-ori), se poate ntinde pe o perioad suprtor de lung. Iar pentru un nehotrt, a merge la magazin i cumpra pe viu performanele diferitelor aparate foto, camere de filmat, sau televizoare este o experien mult mai relevant dect browse-uirea unui catalog electronic. O soluie de compromis ar fi s mergi la magazin s testezi diversele variante, s-i notezi preurile lor, i apoi s caui pe Web o ofert mai bun. Dar nici acest scenariu nu prea st n picioare, cci dup ce te-ai chinuit 3-4 ore s-i alegi varianta ideal, eti probabil att de dornic s-i duci prada cu tine acas, nct preferi s plteti pe loc un pre mai piperat, dar s devii instantaneu fericitul posesor al mult doritului obiect. Dintre avantaje am putea aminti: preurile practicate ar trebui s fie sensibil mai mici (cheltuielile unui en-gros-ist cu depozit ntr-un col pierdut de lume sunt categoric mai reduse dect cele ale unui comerciant din buricul trgului). Apoi mai intr n calcul i confortul cumprtorilor fcute de acas sau, de ce nu, de la birou (evident cnd nu te vede eful). Un alt factor important este moda, care se pare a prins i c atrage pe zi ce trece tot mai muli, mai ales tineri. Cu toate acestea, cred c actualele probleme innd de securitate, credibilitate i specializarea (dup cum spuneam, dac nu tii exact ce doreti, cred c e mai uor s te hotrti ntr-un magazin dect pe Web) sunt departe a fi soluionate, iar ziua n care comerul virtual va avea un numr de clieni comparabil cu cel din lumea real este nc departe. Noua infrastructur pentru securitate:

Pagina 50 din 96

Caracterul privat al datelor, integritatea i imposibilitatea repudierii. Acestea sunt cuvintele de ordine pe care le auzii n orice discuie despre afaceri on-line. Fr ele tranzaciile dvs. sunt nesigure. Un certificat digital este modul de asigurare c suntei cine zicei c suntei. Obinei unul, prin informarea unei autoriti de certificare CA privind datele personale. Pentru securitate redus CA v poate solicita doar adresa e-mail. Pentru securitate ridicat trebuie s dovedii cine suntei. O dat ce avei un certificat, v putei autentifica pentru alii, prin schimbul de certificate. O dat autentificat, putei ncepe uor sesiunea de lucru cu criptare i securitate.

O autoritate pentru elaborarea de certificate publice, ca VeriSign preia cheile publice de la utilizatori i le semneaz realiznd un certificat i garanteaz ntr-o anumit msur c utilizatorii sunt cine afirm c sunt

CA

Un beneficiar al comerului electronic care a semnat un certificat poate intra ntr-o relaie de ncredere cu comerciantul deoarece acesta va avea o idee despre identitatea dumneavoastr.

BANC

BENEFICIAR

La un moment dat banca va fi implicat n tranzacie. Banca va trebui s verifice att certificatul de la comerciant ct i cel al beneficiarului

COMERCIANT
Un comerciant primete certificatul pentru a asigura clientul c are calculatorul conectat la serverul dorit. Comerciantul va verifica certificatul clientului pentru a se asigura de acelai lucru.

Utilizator la distan
Certificatele private sunt o modalitatea pentru firm de a determina c utilizatorii de la distan sunt cine afirm c sunt.

INTERNET

Emitent de cri de credit Zid de Protecie Intranet Privat

Dup ce se completeaz o tranzacie cu carte de credit, emitentul poate verifica certificatele comerciantului i ale bncii, nainte de a pune tranzacia pe factura clientului

O Autoritate pentru certificate private ajut o firm s-i impun politica de securitate, prin etichetarea sistemelor utilizator individuale cu identificatori unici, verificabili.

CA

SERVER

Pagina 51 din 96

Serverele primesc certificate pentru a face imposibil impostura i descuraja comportamentul maliios n reea

CLIENT
Fig. 24. Un model de e-commerce cu certificare. proprii ale primesc certificatele private
firmei. Aceste certificate pot fi folosite pentru a impune politici de firm (de exemplu limite de 1. Clientul i face un certificat lasume la achiziii) CA prin oferirea unei identificri i a unei copii a cheii publice. Clienii dinuntrul unui zid de protecie

Cum lucreaz un certificat? a avea acces la resursele reelei sau pentru

CA

BENEFICIAR

2. Beneficiarul ncepe s cumpere i semneaz digital fiierul. Beneficiarul furnizeaz o copie a certificatului.

3 a. Magazinul verific semntura la autoritatea de certificare.

4. Magazinul i beneficiarul stabilesc o relaie, astfel c se poate Fig. 25. avea ncredere n al unui certificat. Modul de lucru semnturile digitale. Acum beneficiarul poate cumpra ceea ce i-a dorit.

3 b. Dac dorete, poate verifica la CA s vad dac certificatul a fost revocat.

MAGAZIN

5.2.1 Protocolul de tranzacii electronice sigure Protocolul SET (Secure Electronic Transactions) reproduce structura existent a unui sistem de prelucrare de cri de credit i nlocuiete fiecare apel telefonic sau plic cu hrtie ce descrie tranzacia cu o versiune electronic. Acesta poate s implice un numr surprinztor de mare de pachete de date, deoarece sistemul de cri de credit a evoluat pentru a permite o gam larg de tranzacii. Restaurantele, de pild trimit frecvent facturile de dou ori. Prima dat de proceseaz factura de baz i a dou oar se adaug baciul. Hotelurile ns fac adesea rezervarea unui numr mare de credite pentru a acoperi cheltuielile suplimentare ca servitul n camer. Creditele sunt eliberate cnd se elibereaz camera. Protocolul SET ofer pachete de date pentru toate aceste tipuri de tranzacii i fiecare tranzacie este semnat cu o semntur digital. Acesta face din SET cel mai mare consumator de certificate i face implicit din bnci unii dintre distribuitorii majori de certificate. IBM, GTE
Pagina 52 din 96

i VeriSign au anunat planuri de ajutor pentru bnci pentru oferirea de certificate beneficiarilor. Acest segment promite s devin o pia imens pentru realizatori acestei baze de date mari. Una din controversele cele mai aprige n comunitatea SET este cine va plti pentru lista de revocare a certificatelor SET. Protocolul SET impune unui procesor de tranzacii s verifice regulat listele pentru a detecta tranzaciile generate de eventualele certificate pierdute sau furate. Pentru simplitatea actualizrii i sincronizrii listei, protocolul definete o amprent care va fi hash pentru ultima list de revocare. Procesorul de tranzacii poate compara amprentele pentru a asigura faptul c ceea ce avem n list este identic cu ceea ce exist n ultima list master. Emitenii de cri de credit vor fi probabil cei responsabili pentru administrarea acestor liste de certificate de revocare. Structura pieei asigur n mod virtual acest lucru. Dar acest lucru poate s nsemne c certificatele SET nu vor fi utile n mod simplu pentru ali utilizatori care lucreaz cu criptare, de exemplu pentru scrisorile personale, deoarece companiile de cri de credit pot considera certificatele ca proprietatea lor. Sau pot decide s ofere deschis aceast facilitate, pentru a atrage clieni. Doar piaa poate decide.

1. Clientul iniiaz tranzacia prin trimiterea unui formular de comand i o autorizaie semnat i criptat. Comerciantul nu poate accesa numrul de credit, acesta fiind criptat.

COMERCIANT

5. Banca autorizeaz comerciantul i semneaz tranzacia

6. Beneficiarul primete marfa i bonul de recepie

BENEFICIAR

2. Comerciantul transfer autorizaia. Banca poate s fac decriptare i s vad numrul crii de credit. Poate verifica i semntura de pe certificat

8. Comerciantul este pltit conform contractului 7. Comerciantul cere o captur a tranzaciei i primirea banilor 4. Emitentul crii de credit autorizeaz i semneaz tranzacia

BANC

9. Beneficiarul primete factura lunar de la emitentul crii de credit.

Pagina 53 din 96

Emitent de Carte de Credit

Fig. 26. E-commerce cu credit carduri.

3. Banca cumprtor verific la emiterea crii de credit cartea.

5.2.2 CyberCash Fondat n august 1994, firma CyberCash Inc. Din SUA propune n aprilie 1995 un mecanism sigur de tranzacii de plat cu carduri, bazat pe un server propriu i oferind servicii client pentru vnztori. Folosirea serverului CyberCash asigur posibilitatea de trasare i control imediat al tranzaciilor. Pe de alt parte, trecerea prin server face sistemul mai lent i dependent de timpii de rspuns ai acestuia. Acest lucru face CyberCash mai puin confortabil i mai costisitor, n special pentru tranzaciile de plat cu sume mici. ns cifrarea cu chei publice asigur un nivel nalt de securitate. CyberCash implementeaz un sistem care realizeaz protecia cardurilor de credit folosite n Internet. Compania care furnizeaz soft att pentru vnztori, ct i pentru cumprtori opereaz un gateway ntre Internet i reelele de autorizare ale principalelor firme ofertate de carduri. Cumprtorul ncepe prin a descrca softul specific de portofel, cel care accept criptarea i prelucrarea tranzaciilor. La fel ca un portofel fizic care poate conine mai multe carduri bancare diferite, portofelul soft al cumprtorului poate fi folosit de ctre client pentru a nregistra mai multe carduri, cu care va face ulterior plile. Un soft similar furnizeaz servicii la vnztor. Mesajele sunt criptate folosind un algoritm simetric (DES) cu cheie de 56 de bii generat aleator, anvelopat i ea n mesaj prin criptarea cu cheia public a receptorului. Sistemul de criptare cu chei publice folosit este RSA, cu o lungime de 1024 de bii. Cheia public CyberCash este memorat n softul de portofel i n cel al vnztorului. Atunci cnd va nregistra n softul portofel cardurile cu care va face plile, cumprtorul i va genera i propria pereche cheie public cheie privat. Apoi cheia sa public va fi transmis la CyberCash, care o va nregistra ntr-o baz de date. Dei toi participanii n sistem (cumprtori, vnztori i CyberCash) au propriile lor perechi de chei publice i private, numai CyberCash tie cheile publice ale tuturor. Ca urmare, compania poate schimba informaii n mod sigur cu orice cumprtor sau vnztor, dar acetia comunic n clar unii cu alii. Revine ca sarcin lui CyberCash s autentifice toate semnturile, cu cheile publice pe care le deine n mod sigur.

Pagina 54 din 96

Atunci cnd se face o cumprtur, produsul dorit este selectat printr-un browser Web. Serverul vnztorului trimite portofelului cumprtorului un mesaj cerere de plat n clar, semnat criptografic, cerere care descrie cumprarea i tipurile de carduri care sunt acceptate pentru plat. Softul portofel afieaz o fereastr care permite cumprtorului s aprobe achiziia i suma i s selecteze cardul cu care se va face plata. Se trimite napoi vnztorului un mesaj de plat ce include o descriere a tranzaciei criptat i semnat digital de cumprtor, precum i numrul cardului folosit. Vnztorul trimite mai departe mesajul de plat la gateway-ul CyberCash, mpreun cu propria sa descriere a tranzaciei, criptat i semnat digital. CyberCash decripteaz i compar cele dou mesaje i verific cele dou semnturi. Dac lucrurile sunt OK, el autorizeaz cererea vnztorului trimind un mesaj specific la softul acestuia. Apoi softul vnztorului confirm plata portofelului cumprtorului. CyberCash opereaz propriul su gateway ca un agent al bncii vnztorului. De aceea, el trebuie s fie de ncredere pentru a decripta mesajele i a le transfera pe reele de autorizare convenionale ale bncilor ntruct informaiile sunt criptate cu cheia public a lui CyberCash, cunoscut de softul ce opereaz sistemul, vnztorul nu poate vedea care este numrul cardului folosit de cumprtor, eliminndu-se riscul refolosirii acestui card la alte cumprturi neautorizate. 5.2.3 ECash ECash reprezint un exemplu de sistem electronic de pli, care folosete pota electronic sau Web-ul pentru implementarea unui concept de portofel virtual. A fost dezvoltat de ctre firma DigiCash Co. din Olanda. Prima demonstraie a sistemului a fost fcut n 1994 la prima conferin WWW, printr-o legtur Web ntre Geneva i Amsterdam. Ulterior a fost implementat de bnci din SUA (Mark Twain Bank of Missouri), Finlanda i alte ri. Este prima soluie totalmente soft pentru plile electronice. ECash reprezint un sistem de plat complet anonim, ce folosete conturi numerice n bnci i tehnica semnturilor oarbe. Tranzaciile se desfoar ntre cumprtor i vnztor, care trebuie s aib conturi la aceeai banc. Cumprtorii trebuie s ntiineze cu privire la faptul c doresc s transfere bani din conturile lor obinuite n aa numitul cont eCash Mint. n orice moment, cumprtorul poate interaciona de la distan, prin calculatorul su, cu contul Mint i, folosind un client soft, poate retrage de aici fonduri pe discul calculatorului su. Formatul acestor fonduri este electronic suite de 0 i 1 protejate criptografic. Ca urmare,
Pagina 55 din 96

discul cumprtorului devine un veritabil portofel electronic. Apoi se poate executa pli ntre persoane individuale sau ctre firme, prin intermediul acestor eCash. Principiul funcionrii lui Ecash Ecash are un caracter privat: dei banca ine o eviden a fiecrei retrageri eCash i a fiecrui depozit Mint, este imposibil ca banca s stabileasc utilizarea ulterioar a lui eCash. Aceast proprietate se datoreaz folosirii unor criptosisteme cu chei publice RSA, cu o lungime a cheii de 768 bii. Pe lng anonimitatea plilor, eCash asigur i nerepudierea, adic acea proprietate care permite rezolvarea oricror dispute ntre cumprtor i vnztor privind recunoaterea plilor. De asemenea, prin verificare n baza de date a bncii, este mpiedicat orice dubl cheltuire a lui eCash. La fel ca i banii reali (bancnote, monede), banii electronici eCash pot fi retrai din conturi sau depozitai, pentru a fi tranzacionai. De asemenea, la fel ca n cazul banilor fizici, o persoan poate transfera posesia unui cont eCash unei alte persoane. ns, spre deosebire de banii convenionali, atunci cnd un client pltete unui alt client, banca electronic joac un rol aparent modest, dar esenial. ECash reprezint o soluie de pli soft on-line, care const n interaciunile dintre 3 entiti: banca care emite monede, valideaz monedele existente i schimb monede reale pentru eCash; cumprtorii, care au cont n banc, din care pot ncrca monede eCash sau n care pot depune monede eCash; vnztorii, care accept monede Ecash n schimbul unor bunuri sau servicii. ECash este implementat folosind criptografia cu chei publice RSA. Fiecare utilizator are propria-i pereche de chei (public i privat). Ce promite e-cash-ul: tranzaciile zilnice vor fi mai uoare mai rapide i mai sigure cu e-cash (numerar electronic) dect cu numerar, cecuri sau cri de credit. E-cash se ocup de tranzacii de 30 de dolari sau mai mici i mai degrab va coexista dect va nlocui alte instrumente de plat ntr-un viitor apropiat. E-cash este totdeauna cu plat n avans, spre deosebire de cartelele de credit (plata ulterior) sau debit (cu acces direct la un cont). Organizaia emitent, nu neaprat o banc, aloc valoare la un mesaj digital codificat, memorat pe un smartcard sau pe calculator i garanteaz o valoare fix de rambursare, adesea prin servicii speciale de e-cash clearing. Fora motrice din spatele e-cash este reducerea costurilor. Lucrul cu banii reali este costisitor pentru bnci i pltitori, iar lucrul cu cecul este i mai scump. Plile e-cash, pe de alt parte, pot fi autentificate off-line. Tranzaciile sunt rapide i convenabile i se reduc activitile
Pagina 56 din 96

administrative. n plus, e-cash este o tehnologie verificat: n timp ce n SUA ncercrile sunt la nceput, n lume exist deja aproximativ 50 de sisteme e-cash operaionale.

Emitentul de numerar digital Dolari Numerar digital Consumatori Numerar digital Furnizori Dolari

Magazin Web Fig. 27. O tranzacie E-cash. Numerarul e-cash face conversia ntre banii digitali i reali n cadrul tranzaciilor ntre diferite entiti. 5.2.4 Pli prin cecuri electronice Cecurile electronice au fost dezvoltate printr-un proiect al lui FSTCFinancial Services Technology Consortium. FSTC cuprinde aproape 100 de membrii, incluznd majoritatea marilor bnci, furnizorii tehnologiei pentru industria financiar, universiti i laboratoare de cercetare. Partea tehnic a realizrii proiectului cecului electronic a fost realizat ntr-un numr de faze: generarea conceptelor originale, realizarea cercetrilor preliminare, construirea i demonstrarea unui prototip, formularea specificaiilor pentru un sistem pilot i implementarea acestui sistem. n prezent cecurile electronice ncep s fie utilizate ntr-un program pilot cu Departamentul Trezoreriei Statelor Unite care pltete furnizorii Departamentului de Aprare. Cecurile electronice sunt create pentru a realiza i alte funcii financiare ale cecurile de hrtie, prin utilizarea semnturilor digitale i a mesajelor criptate, pe suportul reelei Internet. Sistemul cecurilor electronice este proiectat pentru a asigura integritatea mesajelor, autenticitatea i nerepudierea proprietii, toate condiii suficiente pentru a preveni frauda din partea bncilor sau a clienilor lor. Un cec este un document pe hrtie, semnat, care autorizeaz banca s plteasc o sum de bani din contul celui ce a semnat cecul, dup o dat specificat. Cecurile pe hrtie sunt cele mai utilizate instrumente de plat (dup folosirea banilor cash) n majoritatea statelor occidentale. Acestea au avantajul c pltitorul i cel care ncaseaz suma pot fi persoane
Pagina 57 din 96

individuale, mici afaceriti, bnci, corporaii, guverne sau orice alt tip de organizaii. Aceste cecuri pot fi transmise direct de la pltitor la ncasator. Cecurile electronice (e-cecurile) sunt bazate pe ideea c documentele electronice pot substitui hrtia, iar semnturile digitale cu chei publice pot substitui semnturile olografe. Prin urmare, e-cecurile pot nlocui cecurile de hrtie, fr a fi nevoie s se creeze un nou instrument, nlturndu-se astfel problemele de legalitate, reglementare i practic comercial ce pot fi provocate de schimbarea i impunerea unui instrument de plat nou. Pentru c un e-cec trebuie s conin mputernicirea specific, informaiile opionale i semntura digital (criptografic), acesta este scris n limbajul FSML (Financial Services Markup Language), un limbaj specific, care utilizeaz standardul SGML (Standard Generalized Markup Language). Structura documentului i datele care compun un e-cec sunt delimitate de tag-uri, similar cu cele folosite n HTML (Hyper Text Markup Language), un alt limbaj definit utiliznd SGML. FSML este creat pentru a accepta structura de date i semnturile criptografice de care este nevoie pentru cecurile electronice, dar nu poate fi generalizat i extins pentru alte documente de servicii financiare. Cecurile electronice scrise n FSML vor conine toate informaiile care se gsesc n mod normal n cecurile clasice, incluznd pe cele scrise de mn, pre-tiprite i cele cu band magnetic. Structura FSML i mecanismul de semnare ofer posibilitatea de a ncapsula i cripta alte documente ataate, cum ar fi avize de plat, facturi, sau informaii de remitere. Pentru promovarea verificrilor semnturilor cu cheia public a e-cecurilor, este utilizat protocolul pentru certificate X.509. Banca emite un certificat atunci cnd un client i deschide un cont pentru cecuri electrice i ca nnoi acest certificat nainte ca el s expire, realiznd cu aceasta o protecie a contului i a expunerii semnturii cu cheie privat a semnatarului. Certificatul X.509 doar informeaz verificatorul semnturii despre faptul c respectiva cheie public a fost legitimat n asociere cu un semnatar i un cont de banc, la data la care certificatul a fost emis. Un certificat X.509 nu implic faptul c e-cecul este garantat n ambele sensuri. Alte verificri asupra semnturii cecului electronic pot oferi ncredere c cecul a fost semnat cu o cheie privat ce aparine unui deintor legitim de cont pentru cecuri electronice i e-cecul nu a fost alterat. Pentru protejarea mpotriva furtului i folosirii abuzive a cecului electronic, este utilizat un smart-card. Utilizarea hardului criptografic al cardului ofer semnturii mai mult confidenialitate. Astfel, cheia privat pentru semnarea cecurilor nu este niciodat transferat ctre computerul semnatarului, deci nu este niciodat expus furtului din respectivul computer
Pagina 58 din 96

conectat n reea. Procesorul smart-cardului numeroteaz automat fiecare cec electronic i pstreaz o istorie a cecurilor pentru a fi consultat n cazul unei dispute. Smart-cardul este protejat prin introducerea unui cod PIN, cunoscut numai de posesorul cardului. Semnarea criptografic este suficient n sistemul cu cecuri electronice ca msur de securitate mpotriva fraudelor prin falsificri de mesaje. n afar de acestea, sistemul cu cecuri electronice i nivelul aplicaie criptografic pot fi exportate i utilizate internaional. Atunci cnd este nevoie de confidenialitate ntre oricare dou pri, criptarea poate fi folosit la nivelul legtur de date. Standardele actuale pentru cecuri electronice ntre bnci sunt ANSI X9.46 i X9.37. Electronic Check Clearing House Organization (ECCHO) a adoptat o serie de reguli pentru clearingul inter-bancar cu cecuri electronice, care sunt considerate a avea statutul de instrumente negociabile. Caracteristici ale prelucrrii cecurilor electronice Tranzacia de afaceri ncepe cu trimiterea de ctre ncasator a unei facturi ctre pltitor. Atunci cnd sosete momentul pentru plata unei facturi, informaiile referitoare la aceast factur sunt trimise de la sistemul ncasatorului, iar aceste date sunt utilizate pentru a crea un cec. Acest cec electronic va include informaii din cecurile obinuite (cum ar fi numele ncasatorului, suma i data). Pentru a semna e-cecul, pltitorul introduce codul PIN pentru a debloca smart-cardul ce deine carnetul de cecuri. Formatul facturii nu este fix, putnd fi flexibil, cu condiia de a respecta lungimea, forma i datele ce trebuie coninute. Cecul electronic semnat i factura sunt transmise ctre ncasator (pltit) prin e-mail sau printr-o tranzacie Web. ncasatorul verific semntura pltitorului din e-cec i factur, separ informaiile facturii i pune suma pltit n contul de primire. ncasatorul introduce codul su PIN pentru deblocarea smart-cardului su, utilizeaz acest carnet electronic de cecuri pentru a aproba e-cecul i semneaz un depozit electronic pentru a ncasa suma din e-cec. Cecul aprobat (semnat de ncasator) este dat mai departe bncii ncasatorului pentru depozitare. Ambele bnci, cea a pltitorului i cea a ncasatorului, ntre care se realizeaz de fapt tranzacia real a sumelor, verific toate semnturile i aprobrile din e-cec, utiliznd dou nivele de certificate. Banca pltitorului verific dac cecul electronic transmis nu este duplicat, dac certificatul ncasatorului i contul sunt n prezent valide, dup care depoziteaz e-cecul n contul de stocare a cererilor pltitorului. n final, pltitorul primete un articol care descrie ntreaga tranzacie. Semnturi digitale pe cecuri electronice Atunci cnd este creat un cec electronic, n el este scris un set minim de informaii i cecul este semnat. Odat cu vehicularea e-cecului, alte
Pagina 59 din 96

informaii i alte semnturi sunt adugate atunci cnd acesta este transmis ntre pri. De exemplu, e-cecul trebuie s fie: creat de pltitor, co-semnat de co-pltitor, certificat de banc, aprobat de ncasator (pltit), co-aprobat de co-ncasator, depozitat i pltit Unele din informaiile adiionale, cum ar fi certificatele i aprobrile, sunt pri permanente ale e-cecului i rmn intacte pn n momentul returnrii la pltitor. Alte informaii, cum ar fi timpul de ntrziere, pot fi asociate e-cecului pentru o perioad a existenei sale i vor fi nlturate i procesate separat. Acestea cer o structur flexibil a documentului i mecanismelor de semnare. Principalele caracteristici ale mecanismului FSML de semnare sunt: Documentul const dintr-o secven de blocuri, iar blocurile trebuie s fie delimitate. Semntura implementeaz algoritmi criptografici i/sau funcii hash, i exist blocuri speciale ce se refer la acestea; Blocurile semntur referite prin blocurile nume sau numr serial, refer blocul certificat ce face corespondena cu cheia public. Semnatarul e-cecului poate opta pentru a include alte date personale, cum ar fi nume, adres, numr de telefon, adres e-mail etc. Aceste date sunt nregistrate n carnetul de cecuri electronice, la iniializare, de ctre banc i pot fi schimbate doar dup ce carnetul respectiv a fost de-protejat, utiliznd codul de administrare PIN al bncii. Aceast metod de promovare a informaiilor personale nu este la fel de sigur ca atunci cnd aceste informaii sunt incluse n certificatul X.509 sau n blocul cont. Carnetul de cecuri electronice O semntur olograf este influenat de micarea muchilor minii i de particularitile biometrice ale semnatarului. Acestea fac foarte dificil pentru un falsificator s realizeze o semntur fals perfect, chiar dac falsificatorul dispune de un exemplu al semnturii. n opoziie, o falsificare perfect a semnturii criptografice poate fi fcut de ctre orice persoan care deine cheia privat a semnatarului de drept. Este foarte greu s stabileti, dispunnd de o cheie public, dac un e-cec este autentic sau falsificat. Smart-cardurile ce conin carnete de cecuri electronice sau alte dispozitive hard criptografice sunt utilizate tocmai pentru a ajuta la asigurarea c o cheie privat este protejat ct mai bine i, n consecin, semnturile se realizeaz doar de ctre semnatarii legitimi. Aceste dispozitive
Pagina 60 din 96

hard standardizeaz i simplific generarea cheilor, distribuia i utilizarea lor, deci se poate stabili un nalt nivel de ncredere. Distribuia carnetelor ce cecuri electronice poate diferi considerabil de la o banc la alta; rmn ns cerinele de baz care includ: Certificatele X.509 semnate de bnci i conturile s corespund specificaiilor FSML. Partea hard i soft a cecurilor electronice s corespund cerinelor i specificaiilor API referitoare la carnetele de cecuri electronice. Politicile de autoriti de certificare ale bncilor s corespund cerinelor i reglementrilor legale. Unele dintre operaii, cum ar fi iniializarea cardului i autoritatea de certificare a bncii pot fi ndeplinite de alte firme, ce acioneaz ca ageni ai bncii. Serverele bncilor Serverele de cecuri electronice din bnci sunt utilizate pentru recepionarea e-cecurilor de la clieni prin e-mail, procesarea e-cecurilor primite i realizarea unei interfee cu sistemul de meninere a nregistrrilor despre conturile cec DDA. Funciile executate n mod tipic de un server de cecuri electronice dintr-o banc, sunt urmtoarele. Acest server primete de la ncasatori e-mail-uri care conin e-cecuri aprobate i depozite. E-cecurile sunt procesate i reinute n baza de date, pn cnd sunt pltite cu bani cash (clearingul). Ececurile rmn pe server i depozitele sunt trimise la sistemul DDA pentru procesare. Ececurile problematice sunt returnate ctre o staie special, pentru o analiz manual i intervenii. Confidenialitatea potei electronice Cnd un mesaj de e-mail este trimis ntre dou locaii situate la distan, acesta va trece n drumul su pe la un numr mare de maini. Oricare dintre acestea poate s citeasc i s nregistreze mesajul pentru utilizare ulterioar. Confidenialitatea este inexistent, n ciuda a ceea ce muli oameni cred . Cu toate acestea, multora le-ar plcea s poat trimite mesaje care s fie citite doar de cei crora le sunt adresate i de nimeni altcineva: nu de eful lor, nu de hackeri i nici chiar de guvern. Aceast dorin a stimulat mai multe persoane i grupuri s aplice principiile criptografiei la pota electronic, pentru a produce un sistem de e-mail mai sigur. n seciunile urmtoare vom studia dou sisteme de e-mail sigur, larg utilizate , PGP i PEM. 5.3.1 PGP- Prety Good Privacy (confidenialitate destul de bun)

Pagina 61 din 96

Primul nostru exemplu, PGP- (Prety Good Privacy) este n cea mai mare parte rodul gndirii unei singure persoane, Phil Zimmerman. Este un pachet complet de securitate a emailului, care furnizeaz confidenialitate, autentificare, semnturi digitale i compresie, toat ntr-o form uor de utilizat. Pe deasupra, pachetul complet, incluznd toate sursele, este distribuit gratuit prin Internet, sisteme de informare n reea i reele comerciale. Datorit calitii sale, preului (zero) i simplei disponibiliti pe platformele MS-DOS / Windows, UNIX i Macintosh, acesta este larg utilizat astzi. Pentru acele companii care necesit sprijin, este disponibil i o variant comercial. PGP a fost implicat ntr-o serie de controverse. Deoarece este distribuit liber pe Internet, guvernul Statelor Unite a pretins posibilitatea strinilor de a-l obine constituie o violare a legilor privind exportul de muniie. Versiunile ulterioare au fost produse n afara Statelor Unite pentru a ocoli aceast restricie. O alt problem a inclus o pretins nclcare a patentului RSA, dar aceasta a fost rezolvat odat cu apariia versiunilor ncepnd cu 2.6. Totui, nu toi agreeaz ideea c oameni pot s-i pstreze secretele fa de ei, astfel c dumanii PGP pndesc din umbr, ateptnd s atace. n conformitate cu toate acestea, mottoul lui Zimmerman este: Dac dreptul la confidenialitate este n afara legii, atunci doar cei aflai n afara legii vor avea confidenialitate. n mod intenionat PGP utilizeaz algoritmi de criptare existeni, n loc s inventeze alii noi. Se bazeaz n principal pe RSA, IDEA i MD5, algoritmi care au fost supui unor numeroase analize amnunite i nu au fost proiectai sau influenai de vreo agenie guvernamental pentru a-i slbi. Pentru cei care au tendina s nu aib ncredere n guvern, aceast proprietate este un mare avantaj. PGP permite compresie de text, asigurarea secretului mesajelor i semnturi digitale i furnizeaz de asemenea faciliti de management extensiv al cheilor. Pentru a vedea cum lucreaz PGP, s considerm exemplul din figura 28. Aici, Alice vrea s-i trimit lui Bob, ntr-o manier sigur, un mesaj text simplu, semnat, P. Alice i Bob au cheile private (DX) i cheile RSA publice de mesaj,presupunem c fiecare tie cheia public a public ne vom ocupa Cheia RSA, celuilalt; KM: Cheie unic (Ex). S pentru IDEA a lui Bob, EB mai trziu de administrarea cheilor.

: Concatenare Cheia RSA privat, a lui Alice cheie RSA, DA

KM

RSA

Text ASCII ctre reea

P1
Pagina 62 din 96

P1.Z P

MD5

RSA

ZIP

IDEA

Baza 64

Concatenarea lui P1.Z criptat cu IDEA i KM Alice ncepe prin a invoca programul PGP pe calculatorul su. Mai nti PGP codific criptat cu EB prin dispersie (hash) mesajul P utiliznd MD5, apoi cripteaz codul de dispersie rezultat Fig. 28. PGP n aciunea de trimitere a unui mesaj. utiliznd cheia sa RSA privat, DA. Cnd, eventual, Bob primete mesajul, el poate decripta mesajul cu cheia public cunoscut a lui Alice i poate testa corectitudinea mesajului codificat prin dispersie. Chiar dac altcineva (de exemplu Trudy) poate obine codul n acest stadiu i l poate decripta cu cheia public a lui Alice, puterea lui MD5 garanteaz c este nerealizabil computaional producerea unui alt mesaj care s aib acelai cod MD5. Codul de dispersie criptat i mesajul original sunt acum concatenate ntr-un singur mesaj de tip IDEA, de 128 de bii, KM (numit cheie de sesiune n literatura PGP, dar numele este cu adevrat nepotrivit atta timp ct nu exist nici o sesiune). KM este acum utilizat pentru a cripta P1.Z cu IDEA, prin metoda de tip reacie cifrat. n plus, KM este criptat cu cheia public a lui Bob, EB. Aceste dou componente sunt apoi concatenate i convertite n baza 64. Mesajul rezultat conine numai litere cifre i simbolurile +,/ i =, ceea ce nseamn c poate fi pus ntr-un corp de RTC 822 i c ne putem atepta s ajung nemodificat la destinaie. Cnd Bob primete mesajul, l reconvertete din baza 64 i decripteaz cheia IDEA utiliznd cheia sa RSA privat. Utiliznd aceast cheie, decripteaz mesajul pentru a obine P1.Z.dup decompresia acestuia, Bob separ testul simplu de codul cifrat i decripteaz codul de dispersie utiliznd cheia public a lui Alice. Dac codul textului clar cade de acord cu calculul fcut de el utiliznd MD5, el tie c P este mesajul corect i c vine de la Alice. Merit de observat c RSA este utilizat doar n dou locuri aici: pentru a cifra codul de dispersie de 128 de bii generat de MD5 i pentru a cifra cheia IDEA de 128 de bii. Dei RSA este lent, are de criptat doar 256 de bii i nu un volum mare de date. Mai mult, toi cei 256 de bii de text simplu sunt generai extrem de aleatoriu, astfel nct numai pentru a determina dac o cheie ghicit este corect, Trudy ar trebui s dispun o cantitate nsemnat de munc. Criptarea de mare putere este realizat de IDEA, care este cu cteva ordine de mrime mai rapid dect RSA. Astfel, PGP asigur securitate, compresie i o semntur digital i face acest lucru ntr-o mrime chiar mult mai eficient dect schema ilustrat n fig. 22.
Pagina 63 din 96

Mesajul original, n text clar, de la Concatenarea lui P i a codului Alice de dispersie criptat

P1 comprimat

PGP accept trei lungimi de chei RSA. Rmne la latitudinea utilizatorului s aleag pe cea mai potrivit. Lungimile disponibile sunt: Obinuit (384 de bii): poate fi spart n ziua de azi de ctre cei cu bugete mari. Comercial (512 bii): ar putea fi spart de organizaii cu nume din trei litere (care se ocup cu securitatea statului). Militar (1024 bii): Nici un pmntean nu o poate sparge. Au existat unele discuii referitoare la o a patra lungime: extraterestr (2048 bii), care s nu poat fi spart de nimeni i nimic din univers, dar acesta nu a fost nc adoptat. Din momente ce RSA este folosit doar pentru cele dou calcule mici, probabil c toat lumea ar trebui s foloseasc ntotdeauna chei de lungime militar, excepie fcnd doar PC-XT-urile nvechite. Formatul unui mesaj PGP este prezentat n figura 29. Mesajul are trei pri, coninnd cheia IDEA, semntura i respectiv mesajul. Partea care conine cheia mai include, de asemenea, un identificator de cheie, deoarece utilizatorilor li se permite s aib mai multe chei publice. Partea cu semntura conine un antet, de care nu ne vom ocupa aici. Antetul este urmat de o amprent de timp, identificatorul pentru cheia public a emitorului, care este folosit pentru a decripta codul semnturii, unele informaii care identific algoritmul folosit (pentru a permite folosirea algoritmilor MD6 i RSA2 atunci cnd acetia vor fi inventai) precum i codul de dispersie criptat. Partea de mesaj conine de asemenea un antet, numele implicit care va fi folosit pentru fiier n cazul n care utilizatorul dorete s-l salveze pe disc, o amprent de timp pus la crearea mesajului i, n sfrit, mesajul n sine.
Baz 64 Cheia de mesaj Semntura Compresat, ncriptat cu IDEA Mesajul

ID din EB K M

Antet

T ID i p lui

T Codif. i MD5

Antet msg.

Nume T Mesaj de fiier i m p


ncriptat cu

m EA p

EB

DA

Pagina 64 din 96

Fig. 29. Un mesaj PGP. Administrarea cheilor a primit o foarte mare atenie n PGP, deoarece acesta este clciul lui Ahile pentru sistemele de securitate. Fiecare utilizator menine dou structuri de date locale: un inel cu chei private i unul cu chei publice. Inelul cheilor private conine una sau mai multe chei perechi personale private-publice. Motivul pentru care se accept mai multe chei pentru un utilizator este pentru a permite acestora s-i schimbe cheile publice periodic sau cnd se consider c acestea au fost compromise, fr a invalida mesajele aflate n pregtire sau n tranzit. Fiecare pereche are un identificator asociat, astfel nct un emitor de mesaj constau din ultimii 64 de bii ai cheii publice. Cheile private de pe disc sunt criptate folosind o parol special (arbitrar de lung) pentru a le proteja mpotriva unor atacuri. Inelul cheilor publice conine cheile publice ale corespondenilor utilizatorului. Acestea sunt necesare pentru criptarea cheilor de mesaj asociate cu fiecare mesaj. Fiecare intrare n inelul cheilor publice conine nu doar cheia public, ci i identificatorul su pe 64 de bii i o indicaie asupra ncrederii pe care o are utilizatorul n cheie. Problema care trebuie rezolvat aici este urmtoarea. S presupunem c cheile publice sunt meninute n grupurile de tiri. O metod pentru Trudy de a citi e-mail secret al lui Bob este de a ataca grupul de tiri i de a nlocui cheia public a lui Bob cu una la alegerea sa. Cnd Alice va lua mai trziu aa-zisa cheie a lui Bob, Trudy poate monta o mulime de atacuri la adresa lui Bob. Pentru a preveni astfel de atacuri, sau cel puin pentru a minimiza consecinele lor, Alice trebuie s tie ct de mult se poate ncrede n obiectul numit cheia lui Bob din inelul su de chei publice. Dac ea tie c Bob personal i-a dat o dischet coninnd cheia, atunci poate acorda valoarea maxim de ncredere. Totui, n practic, oamenii primesc cheile publice ntrebnd un server de chei sigur, din multele aflate n funciune pe Internet. Cnd un server de chei primete o cerere pentru cheia public a unei persoane, el genereaz un rspuns coninnd cheia public, o tampil de timp i data de expirare a cheii. El amestec acest rspuns cu MD5 i semneaz rspunsul cu cheia sa privat, astfel nct cel care a fcut cerea s poat verifica proveniena rspunsului. Rmne la latitudinea utilizatorului s asocieze un nivel de ncredere cheilor meninute de administratorul local de sistem, de compania de telefoane, de ACM, de Asociaia Bar, de guvern sau de oricine altcineva care decide s intre n afacerea meninerii de chei publice.

Pagina 65 din 96

5.3.2 PEM- Privacy Enhanced Mail (pota cu confidenialitate sporit) Spre deosebire de PGP, care a fost iniial opera unui singur om, celui de-al doilea exemplu al nostru, PEM (Privacy Enhanced Mail), este un standard oficial Internet i este descris n patru RFC-uri: RFC 1421 pn la 1424. Foarte pe scurt, PEM acoper acelai teritoriu ca i PGP: secretul i autentificarea sistemelor de e-mail bazate pe RFC 822. Cu toate acestea, el prezint i anumite diferene fa de abordarea i tehnologia PGP. n continuare vom descrie PEM i apoi l vom compara i pune n contrast cu PGP. Mesajele trimise folosind PEM sunt mai nti convertite ntr-o form canonic, astfel nct ele au acelai convenii referitoare la spaii albe (de exemplu tab-uri, spaiile de la sfrit de text) i folosirea caracterelor line feed i carriage return. Aceast transformare este fcut pentru a elimina efectele agenilor de transfer de mesaje, care modific mesajele care nu sunt pe placul lor. Fr aducere n form canonic, astfel de modificri ar putea afecta codurile de dispersie construite din mesaje la destinaiile lor. Apoi este calculat un cod al mesajului, folosind MD2 sau MD5. Acest pas nu este opional ca n PGP. Dup aceasta, ,concatenarea codului de dispersie i a mesajului este criptat folosind DES. n lumina unei cunoscute slbiciuni a unei chei de 56 de bii, aceast alegere este n mod sigur suspect. Mesajul criptat poate fi apoi codificat utiliznd o codificare n baza 64 i transmis destinatarului. Listele de pot sunt acceptate n mod explicit. Ca i n PGP, fiecare mesaj este criptat cu o cheie unic, inclus i ea n mesaj. Cheia poate fi protejat fie cu RSA, fie cu DES triplu folosind EDE. n practic toat lumea folosete RSA, aa c ne vom concentra asupra acestuia. De fapt, suntem obligai: PEM nu spune cum se face administrarea cheilor cu DES. n PEM administrarea cheilor este mult mai structurat dect n PGP. Cheile sunt certificate de o autoritate de certificare sub forma unui certificat care conine numele utilizatorului, cheia public i data de expirare a cheii. Fiecare certificat are un numr de serie unic, necesar pentru identificarea lui. Certificatele include o codificare prin dispersie de tip MD5, semnat cu cheia privat a autoritii de certificare. Ele se conformeaz recomandrilor ITU X.509 pentru certificarea de chei publice i, prin urmare, folosesc nume X.400. PGP are o schem similar (fr a folosi X.509), dar are o problem: Trebuie utilizatorul s se ncread n autoritatea de certificare? PEM rezolv aceast problem confirmnd autoritile de certificare prin aa-numitele PCA-uri (Privacy Certification Authorities Autoriti de Certificare a Politicii). Aceasta, la rndul lor sunt certificate de

Pagina 66 din 96

IPRA (Internet Policy Registration Authority Autoritatea de nregistrare a Politicii din Internet), arbitrul suprem, care decide cine este bun i cine este ru. Fiecare PCA trebuie s defineasc o politic oficial fa de nregistrarea, pe care s o pun de acord cu IPRA. Aceste reguli sunt apoi semnate de IPRA i fcute publice. De exemplu, un PCA poate insista n a fora utilizatorii aflai sub jurisdicie s se prezinte n persoan cu certificatul de natere, permisul de conducere, paaportul, dou cri de credit de la firme mari, un martor n via i o cheie public pe dischet. Alt PCA poate accepta nregistrarea prin e-mail, pentru strini. Fcnd public politicile, utilizatorii au unele baze n a decide n ce autoriti s se ncread. Nu se fac nici un fel de verificri pentru a vedea dac aceste reguli sunt ntr-adevr aplicate. Sunt planificate trei tipuri diferite de autoriti de certificare. Un tip organizaional poate emite certificate pentru angajaii si. Majoritatea companiilor vor utiliza propria autoritate de certificare. Tipul rezidenial va opera pentru cetenii particulari, cam la fel cum ofertanii de servicii Internet ofer servicii tuturor celor care sunt dispui s plteasc. n cele din urm, o necesitate de grupare a PCA-urilor este mai mult dect clar. Articol Suport criptarea? Suport autentificare? Suport nerepudiere? Suport compresie? Suport trecerea n form canonic? Suport lista de pot? Folosete codificarea base64? Algoritm de criptare a datelor curente Lungimea cheilor pentru criptarea datelor Algoritm curent pentru gestiunea cheilor Lungimea cheilor pentru gestiunea cheilor Spaiul numelui utilizatorului Conform cu X.509? Trebuie s avei ncredere n cineva? Certificarea cheilor Revocarea cheilor Pot cei care ascult s citeasc mesajele? Pot cei care ascult s citeasc semnturile? Standard Internet? Realizat de Fig. 30. Comparaie ntre PGP i PEM PGP Da Da Da Da Nu Nu Da IDEA 128 RSA 384/512/1024 Definit de utilizator Nu Nu Adhoc Hazard Nu Nu Nu Mici echipe PEM Da Da Da Nu Da Da Da DES 56 RSA sau DES Variabil X.400 Da Da (IPRA) Ierarhia IPRA/PCA/CA Mai bun Nu Da Da Comitete de standard

Pagina 67 din 96

Dei rigid ierarhic i birocratic, aceast schem are un avantaj fa de PGP prin faptul c face potenial practic revocarea certificrii. Revocarea este necesar dac un utilizator dorete s-i schimbe cheia sa public, de exemplu pentru c ea a fost compromis, sau pentru c autoritatea sa de certificare a fost spart (sau furat). Revocarea este realizat de ctre utilizator spunnd autoritii de certificare c a fost compromis cheia sa public (sau posibil vice-versa). Autoritatea de certificare adaug apoi numrul de serie al certificatului nevalid la o list a certificatelor revocat, l semneaz i rspndete lista ct mai mult i ct mai departe. Oricine dorete s trimit un mesaj PEM unui utilizator trebuie s verifice mai nti cea mai recent list de revocri, pentru a vedea dac cheia public pe care o deine mai este valid. Acest proces este analog celui n care un vnztor verific lista crilor de credit furate, nainte de a fi acceptat. Criticii PEM-ului susin c verificarea aceasta fcut tot timpul nseamn prea mult munc i c nimeni nu se va obosi s o fac. Suporterii susin c nite calculatoare nu obosesc niciodat; dac sunt programate s verifice ntotdeauna, ele o vor face. Unele dintre similitudinile i diferenele dintre PGP i PEM sunt prezentate n fig. 30. Majoritatea acestor subiecte a fost discutat, dar asupra ctorva merit s facem unele comentarii. Autentificarea pare mai important n PEM dect n PGP, deoarece este obligatorie la primul i opional la al doilea. PEM poart de asemenea informaia de autentificare n afara plicului criptat, ceea ce nseamn c reeaua poate verifica originea fiecrui mesaj. Ca o consecin, indiscreii pot contoriza cine trimite cui, chiar dac nu pot citi mesajele. Lsnd toate aceste diferene tehnice la o parte, exist de asemenea o diferen cultural surprinztoare. PGP, care nu este un standard Internet oficial, are cultura Internetului. PEM, care este oficial standard Internet, nu o are. PGP se bazeaz pe ceea ce Dave Clark a numit consens general i cod care ruleaz. Cineva (Zimmerman) s-a gndit la o soluie a unei probleme bine cunoscute, a implementat-o bine i a distribuit-o tuturor sub form de cod surs. PEM a nceput ca o ptrime de standard oficial, folosind ANS.1 pentru a defini structuri, X.400 pentru a defini nume i X.509 pentru definirea certificatelor. El folosete o structur organizaional rigid, aezat pe trei niveluri, pentru tipuri multiple de autoriti de certificare, completat cu nite reglementri oficiale de politic a certificrii i necesitatea ca toi s se ncread n IPRA. Implementrile au aprut mai trziu i erau cu mult n urma PGP din punct de vedere al calitii, cantitii i disponibilitii pe diferite platforme. Pe scurt, PGP arat ca un pachet tipic Internet, pe cnd PEM prezint majoritatea caracteristicilor unui standard OSI, pe care oamenii din Internet l ursc, iar PTT-urile l iubesc.

Pagina 68 din 96

CAPITOLUL VI Prezentarea aplicaiei, eficiena economic i fiabilitatea aplicaie 6.1 Prezentarea aplicaiei Aplicaia se prezint sub forma unui explorer cunoscut din sistemul de operare Windows, explorer folosit pentru criptarea si decriptarea fiierelor de pe hard-disk. Algoritmul de criptare folosit este algoritmul IDEA, care este un algoritm de criptare simetrica si care se aseamn cu cunoscutul algoritm de criptare DES. Lungimea chei folosite este 128 de bii, care asigura o siguran foarte bun la spargere, avnd n vedere c spargerea lui IDEA cu o lungime de cheie aa de mare, chiar cu calculatoare foarte puternice, dureaz un timp foarte mare, dac nu chiar imposibil. Criptarea se poate realiza numai pentru un singur fiier odat. Aplicaia se prezint in felul urmtor: o lista cu directoarele de pe partiie o lista cu subdirectoarele i fiierele din directorul selectat un combo-box cu driverele disponibile o serie de butoane cu icoane pentru a ajunge mai uor la anumite opiuni din meniu un meniu cu patru submeniuri Alegerea directorului unde se gsete fiierul care urmeaz a fi criptat sau decriptat se poate face uor att din lista cu directoarele din partea stng ct i din lista de fiiere i subdirectoare, unde prin dublu-click se poate ajunge la subdirectorul ales. Alegerea fiierului se poate realiza numai din lista cu fiierele directorului curent i subdirectoare acestuia. Aplicaia are i un meniu, construit din mai multe submeniuri. Primul meniu este Fiier, folosit pentru operaiile de creare director nou, deschidere, criptare, decriptare, tergerea de fiier sau subdirector obinerea proprietilor fiierelor i nchiderea aplicaiei. In meniul File este opiunea Subdirector Nou pentru crearea unui subdirector nou. In meniul File este opiunea Deschide pentru deschiderea unui director si vizualizarea coninutului ei. Tot aici avem opiunea Criptare pentru criptarea fiierului care este selectat. Dac nu este selectat nici un fiier apare un mesaj de eroare.
Pagina 69 din 96

Mai avem opiunea Decriptare pentru decriptarea fiierului care este selectat. Dac nu este selectat nici un fiier apare un mesaj de eroare. Mai avem opiunea tergere pentru tergerea fiierului sau subdirector care este selectat. Dac nu este selectat nici un fiier apare un mesaj de eroare. Mai avem opiunea Proprieti pentru aflarea proprietilor fiierului selectat sau a directorului selectat. Ultima opiune din meniul File este Ieire care nchide aplicaia. Aceast opiune are i o combinaie de taste care este F10 si cu care aplicaia poate fi nchis la orice moment. Urmtorul meniu este Editare cu ajutorul cruia putem copia fiiere, adugare, tiere, trimitere fiier, gsire fiiere Opiunea Copiere (CRTL+C) poate fi folosit pentru copierea de fiiere dintr-un director n Clipboard i adugarea dup aceea la locul ales prin selectarea opiunii Adugare tot din meniul Edit (CRTL+V). Opiunea Adugare (CTRL+V) poate fi folosit pentru adugarea unui fiier n directorul ales dac a fost n prealabil copiat un fiier (director) n Clipboard Opiunea Tiere (CRTL+X) poate fi folosit pentru tierea unui fiier sau subdirector i adugarea lui ntr-un loc ales. Opiunea Trimite face un fel de copiere i adugare ntr-un director configurat nainte din meniul Opiuni Generale. Opiunea Cutare poate fi folosit pentru cutarea unui director, fiier anume. Urmtorul meniu este Opiuni generale unde putem configura parola general valabil, suprascrierea fiierelor, directoarele de trimitere. Ultimul meniu este Ajutor pentru obinerea de informaii n legtur cu programul. Meniul de iconie permite ajungerea mult mai repede la cele mai importante operaii utilizate: criptarea, decriptarea, copierea, adugarea, tergerea, tierea sau obinerea de proprieti legate de fiiere. Pentru criptarea unui fiier se efectueaz urmtorii pai: se alege directorul unde se gsete fiierul se d click dreapta cu mouse-ul i apare un meniu derulant din care se alege opiunea Criptare apare o fereastr n care se tasteaz parola de criptare (minim 8 caractere) se apas butonul OK i ncepe criptarea apare un progres-bar care arat procentul din fiier care s-a criptat

Pagina 70 din 96

dup criptare fiierul apare cu un icon rou n lista cu fiiere artnd c fiierul a fost criptat. De observat la criptare este c dac fiierul a fost criptat deja, la alegerea opiunii criptare apare un mesaj de eroare care spune c fiierul nu poate fi criptat fiind criptat deja. Pentru decriptarea unui fiier se efectueaz urmtorii pai: se alege directorul unde se gsete fiierul se d click dreapta cu mouse-ul i apare un meniu derulant din care se alege opiunea Decriptare apare o fereastr n care se tasteaz parola de decriptare (minim 8 caractere) se apas butonul OK i ncepe criptarea apare un progres-bar care arat procentul din fiier care s-a decriptat dup decriptare fiierul apare cu un icon normal n lista cu fiiere artnd c fiierul nu mai este criptat. De observat la decriptare este c dac fiierul nu a fost criptat, la alegerea opiunii decriptare apare un mesaj de eroare care spune c fiierul nu poate fi decriptat nefiind criptat nc. Un lucru foarte important de notat este c, dac un fiier o fost criptat cu o parol i se ncearc decriptare lui cu o alt parol atunci fiierul obinut numai este identic cu fiierul ca sa supus criptrii. i acest lucru este valabil i n cazul n care parola de criptare i cea de decriptare difer doar printr-un caracter. Deci n cazul aplicaiei trebuie lucrat cu atenie cu parolele de criptare i decriptare. O metod de evitare a pierderilor care pot apare ca urmare a uitrii parolelor folosite la criptare este ca la decriptare s salvm fiierul decriptat ntr-un fiier temporar, dup care s-l verificm dac este corect decriptat, dac da atunci parola este corect i putem terge fiierul, dac ns nu s-a decriptat corect atunci trebuie s ne gndim bine la parola folosit i s ncercm i alte variante. Iar dac uitm parola definitiv, i am ncercat toate combinaiile posibile atunci putem lua rmas bun de la fiierul respectiv i informaiile din ele. Pentru o siguran sporit trebuie s fim foarte ateni la alegerea parolelor, acestea s fie ct mai complicate i s nu fie legate de numele fiierului sau aplicaiei. Criptarea unui fiier nu afecteaz dimensiunea acestuia, deci fiierul criptat va avea aceeai dimensiune ca i fiierul surs. n cazul n care se trimit fiiere prin Internet este util ca fiierul care urmeaz s fie trimis sau pus pe un server Web s fie n prealabil supus unei compresii, dup care s se fac criptarea.

Pagina 71 din 96

n concluzie, aplicaia poate fi utilizat pentru protecia fiierelor cu date secrete mpotriva ochilor curioi, sau pentru trimiterea unor fiiere importante prin Internet, sau ataate la e-mail, care s nu poat fi citite de cei care ascult reeaua. 6.2 Eficiena economic a aplicaiei Necesitatea unor produse program performante i a unor costuri de exploatare i ntreinere reduse au dus la abordarea problemelor privind fiabilitatea programelor i a produselor program n general. Motivele acestor necesiti sunt urmtoarele: softul aplicativ a devenit prioritar n multe situaii n care de fiabilitatea lui depind viei omeneti (controlul traficului aerian, conducerea produciei n timp real, sisteme medicale, sisteme meteorologice, controlul reactoarelor nucleare, controlul zborurilor cosmice etc.); scderea n valoare absolut a preurilor softului i hard-ului, creterea preului softului n raport cu cel al hard-ului Pentru calcularea eficienei economice a unei aplicaii se poate folosi urmtoarea formul: E=N*f/[Cr+N(Ca+Ce)] unde notaiile sunt urmtoare: Cr cheltuieli de elaborare a aplicaiei; Ca cheltuieli de adaptare a aplicaiei; Ce cheltuieli de exploatare; N numrul de utilizatori poteniali ai aplicaiei; f efectele economice medii la beneficiarii aplicaiei La lucrul pentru o aplicaie, generalizat, cheltuielile de realizare ale acestuia se distribuie n dou categorii: Cr=Ci+Cg unde Ci cheltuieli pentru realizarea aplicaiei; Cg cheltuieli pentru proiectarea generalizat; n general n cazul societilor comerciale cu echipe de soft independente partea Cg este suportat de acestea iar partea Ci este suportat de beneficiar. ntr-o astfel de situaie se poate vorbi despre trei coeficieni de eficien ai aplicaiei care privesc lucrarea de pe trei poziii distincte, i anume: al proiectantului, Ep; al beneficiarului, Eb;
Pagina 72 din 96

un coeficient de eficien global (generalizat), Eg. Gradul de generalitate al lucrrii se reflect, printre altele, i n costurile de adaptare ale aplicaiei. Vor exista deci i cheltuieli cu adaptarea aplicaiei. Vom lua n considerare cazul n care proiectantul aplicaiei realizeaz adaptarea fr a percepe o sum de bani pentru aceasta. Considerm cheltuielile de adaptare ale aplicaiei, Ca, ca fiind invers proporionale cu cheltuielile de proiectare generalizat: Ca=a/Cg; Considerm de asemenea c cheltuielile de exploatare, ce sunt direct proporionale cu cele de proiectare generalizat, Ce=c*Cg+d unde a, c, d sunt constante. Pentru costurile pltite de beneficiari considerm o relaie de forma Ci=Cg*(1+K)/N K fiind o constant care exprim beneficiul pentru proiectant, K*Ci. n aceste condiii pentru coeficienii de eficien Eg, Ep, Eb se obin relaiile Eg=[K(1+K)Cg+N*Cg*f]/[Cg(N*c+2+K)+N*d*Cg+N*a] Ep=[K(1+K)N*Cg]/[Cg(1+K+N)+N*a] Eb=N*f/[Cg(1+K+N*c)*N*d] Dac considerm valorile: f=4, a=1; c=0; d=1; K=1/4, iar costul proiectrii generalizate Cg=2, adic 2.000.000 lei, pentru un numr de beneficiari N=10, vom obine nlocuind n relaiile de mai sus valorile: Ep= 0,08 ; Eb= 1,6 ; Eg= 2,08; (80.000 lei; 1.600.000 lei; 2.080.000 lei;) Cheltuielile pentru realizarea produsului program Ci sunt 250.000 lei, iar beneficiul pentru proiectant K*Ci este de 62.500 lei. Cheltuielile totale de realizare a programului sunt Cr=Ci+Cg= 250.000+2.000.000 = 2.250.000 lei. Coeficientul de eficien al proiectantului, Ep, i cel al beneficiarului, Eb, reprezint interesele financiare ale acestora, reciproc contradictorii cu privire la suma alocat pentru proiectarea generalizat, Cg: Eb scade iar Ep crete cu creterea lui Cg. Tendinele n ceea ce privete preul fiind contradictorii se va ajunge la un echilibru comercial (echilibrul pieei) exprimat printr-un maxim a lui Eg. Acest maxim este din punct de vedere
Pagina 73 din 96

practic n funcie de cerinele pieei. El este mai mult sau mai puin egal cu maximul matematic. Cazul ideal este ca aceast funcie, Eg, funcie care include eforturile totale i efectele totale s fie maxim. Dac beneficiarul cumpr acest produs program la valoarea eficienei generalizate de 2.080.000 lei, atunci n regim de amortizare liniar pe 10 luni, rata amortizrii va fi de 208.000 lei lunar. Deci dup zece luni beneficiarul va putea amortiza valoarea produsului cu o rat destul de convenabil. (Toate valorile date aici sunt luate ca fiind cele minime, n schimb, ntro situaie real sumele ar putea fi chiar de zece ori mai mari.). Evident, dac produsul este vndut la mai muli de 10 beneficiari, eficiena proiectantului va scade dar eficiena beneficiarului i cea generalizat vor crete iar beneficiul proiectantului va crete proporional.

6.3 Fiabilitatea produsului program Viziunile naive i neprofesionale asupra programelor i asupra produselor program exclud orice preocupare legat de comportarea acestora n timp. O examinare chiar sumar ne arat c la elaborarea unui produs program nu putem avea o imagine complet asupra mulimii datelor de intrarea posibile. Produsele program sunt gndite i testate iniial pentru o submulime XT a datelor de intrare, inclus n mulimea X a datelor de intrare posibile. Nu este sigur c pentru orice dat x, produsul program va duce la un rezultat finit corect. Vom presupune c este posibil ca ntotdeauna s fie detectat comportarea incorect a unui produs program prin rezultatul obinut. Mulimea rezultatelor incorecte formeaz mulimea XF, inclus n mulimea tuturor rezultatelor testrii. Acest lucru este adevrat i n cazul sistemelor criptografice. Un produs program conine erori dac exist o submulime de date XF inclus n mulimea datelor iniiale posibile astfel nct pentru orice x aparinnd mulimii XF, rezultatul, z= f(x) aparine submulimii YF sau nu se poate obine n timp finit. Principalele surse ale lipsei de fiabilitate a produselor program sunt: variabilitatea datelor de intrare structura raionamentului de rezolvare a problemei. Proprietatea unui produs program de a nu conine erori poate fi neleas dinamic i static.

Pagina 74 din 96

n viziune dinamic, datele se succed n timp pn cnd apare la intrare o valoare din mulimea XF care conduce la manifestarea vizibil (la modul general) a unei erori. n viziunea static mulimea datelor de intrare este potenial prezent n ntregime la un moment dat, iar calitatea produselor program poate fi apreciat prin dimensiunea domeniului XF al datelor care conduc la rezultate eronate. Calitatea unui produs program este exprimat prin fiabilitate din punct de vedere dinamic i prin conformitate din punct de vedere static. Att fiabilitatea ct i conformitatea se refer la coninutul de erori al unui produs program, la dimensiunea XF. Din perspectiva fiabilitii aceast dimensiune se deduce prin urmrirea comportrii n timp a produsului program. Din punct de vedere al conformitii comportarea este dedus dintr-un numr restrns de testri efectuate nainte de a da produsele program n exploatare. S calculm fiabilitatea aplicaiei practice executate folosind metoda Jelinski-Moranda. Pentru aceasta s vedem n ce const metoda Jelinski-Moranda. Metoda Jelinski-Moranda se bazeaz pe urmtoarele ipoteze: intervalele de timp dintre dou defectri succesive sunt variabile aleatoare independente, distribuite dup legi exponeniale cu parametri de diferite naturi i valori; rata de defectare este direct proporional cu numrul de erori latente ale produsului program la o depanare de durat neglijabil se elimin exact eroarea care probabil a produs defectarea. Modelul de fiabilitate soft fiind un proces cu renoiri negative, rata de defectare scade la fiecare defectare. ntre dou defectri rata de defectare se consider constant. Se elimin o singur eroare. Fie N=N(0) numrul iniial de erori reziduale din produsul program. n intervalul xk dintre defectrile k-1 i k, numrul de erori este dat de relaia: N(t)=N-k-1 Rata de cdere a produsului program, z(t), este constant n fiecare interval i proporional cu numrul de erori, dat de relaia: z(t)=c*N(t)=c*(N-k+1); k=1,2N; unde numrul de erori N i constanta c sunt parametrii modelului. n intervalul k-1,k funcia de fiabilitate este dat de relaia: Rk(x)=exp[-(N-k+1)*c*x] iar media dintre defectrile k,k-1 este dat de relaia mk=1/[(N-k+1)*c]
Pagina 75 din 96

Fiind date aceste formule putem calcula fiabilitatea aplicaiei executate. Modelul de fiabilitate Jelinski-Moranda se bazeaz pe urmtoarele ipoteze: intervalele de timp dintre dou defectri succesive sunt variabile aleatoare independente, distribuite dup legi exponeniale cu parametri de diferite naturi i valori; rata de defectare este direct proporional cu numrul de erori latente ale produsului program. La o depanare de durat neglijabil se elimin exact eroarea care probabil a produs defectarea. Modelul de fiabilitate soft fiind un proces cu rennoiri negative, rata de defectare scade la fiecare defectare. ntre dou defectri rata de defectare se consider constant. Dac N=N(0) este numrul iniial de erori reziduale, n intervalul xk dintre defectrile k-1 i k, numrul de erori este dat de relaia N(t)=N-k+1. n intervalul k-1,k funcia de fiabilitate este dat de relaia: Rk(x)=exp[-(N-k+1)*c*x] unde c este un coeficient al modelului care se poate estima n funcie de N, k i xk. De obicei acesta este considerat ca fiind egal cu 1. Dac considerm numrul iniial de erori al programului N=11, intervalul de timp pentru care se calculeaz fiabilitatea x=1/8 ani (o lun jumate) i numrul de defectri n acest interval n=k-1=9 atunci: R8(1/8)=exp[-(11-10+1)*1*1/8]=exp(-2*0,125)=exp(-0,25)=0,77 Aadar, coeficientul de fiabilitate al programului calculat dup modelul JelinskiMoranda cu observare pe o perioad de o lun jumate este de 0,77 sau se poate spune c programul are o fiabilitate de 77%.

ANEXA (sursa aplicaiei practice) // ideaprj.cpp //--------------------------------------------------------------------------Pagina 76 din 96

#include <vcl.h> #pragma hdrstop USERES("ideaprj.res"); USEFORM("sursaidea.cpp", Form1); USEFORM("progress.cpp", progres); USEFORM("optiune.cpp", optiuni); USEFORM("parola.cpp", parole); //--------------------------------------------------------------------------WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->CreateForm(__classid(Tprogres), &progres); Application->CreateForm(__classid(Toptiuni), &optiuni); Application->CreateForm(__classid(Tparole), &parole); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } // idea.h #ifndef sursaideaH #define sursaideaH #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp>
Pagina 77 din 96

#include <Forms.hpp> #include <Menus.hpp> #include "cdiroutl.h" #include <ComCtrls.hpp> #include <FileCtrl.hpp> #include <Grids.hpp> #include <Outline.hpp> #include <ImgList.hpp> #include <ToolWin.hpp> #include <ExtCtrls.hpp> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <errno.h> #include <sys/stat> //--------------------------------------------------------------------------class TForm1 : public TForm { __published: // IDE-managed Components TMainMenu *MainMenu1; TPopupMenu *PopupMenu1; TMenuItem *File1; TMenuItem *Edit1; TMenuItem *Optiuni1; TMenuItem *Help1; TMenuItem *New1; TMenuItem *Open1; TMenuItem *Close1; TMenuItem *Iesire1; TListView *lista; TCDirectoryOutline *directoare; TDriveComboBox *DriveComboBox1; TDirectoryListBox *DirectoryListBox1;
Pagina 78 din 96

TFileListBox *FileListBox1; TToolBar *ToolBar1; TToolButton *ToolButton1; TToolButton *ToolButton2; TToolButton *ToolButton3; TToolButton *ToolButton4; TImageList *ImageList1; TImageList *ImageList2; TToolButton *ToolButton5; TButton *Button1; TPanel *Panel1; TMenuItem *Criptare1; TMenuItem *Decriptare1; void __fastcall Iesire1Click(TObject *Sender); void __fastcall directoareChange(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall directoareClick(TObject *Sender); void __fastcall ToolButton1Click(TObject *Sender); void __fastcall listaDblClick(TObject *Sender); void __fastcall ToolButton2Click(TObject *Sender); void __fastcall ToolButton3Click(TObject *Sender); void __fastcall ToolButton4Click(TObject *Sender); void __fastcall ToolButton5Click(TObject *Sender); void __fastcall DriveComboBox1Change(TObject *Sender); void __fastcall listaKeyPress(TObject *Sender, char &Key); void __fastcall directoareKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); void __fastcall Criptare1Click(TObject *Sender); void __fastcall Decriptare1Click(TObject *Sender); void __fastcall Optiuni1Click(TObject *Sender); void __fastcall FormActivate(TObject *Sender); void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); public:
Pagina 79 din 96

// User declarations AnsiString password; bool renuntat; __fastcall TForm1(TComponent* Owner); }; extern PACKAGE TForm1 *Form1; #endif // idea.c //funcia de inversare static uint16 inv(uint16 x) { uint16 t0,t1; uint16 q,y; if (x<=1) return x; t1=(uint16)(0x10001l/x); y=(uint16)(0x10001l%x); if (y==1) return low16(1-t1); t0=1; do { q=x/y; x=x%y; t0+=q*t1; if (x==1) return t0; q=y/x; y=y%x; t1+=q*t0; } while (y!=1); return low16(1-t1); }
Pagina 80 din 96

// funcia de creare a cheii din parola introdusa de utilizator static void en_key_idea(word16 *userkey, word16 *Z) { int i,j; /* shifts */ for (j=0;j<8;j++) Z[j]=*userkey++; for (i=0;j<KEYLEN;j++) { i++; Z[i+7]=((Z[i&7] << 9) | (Z[i+1 & 7] >> 7)); Z+=i&8; i&=7; } } //funcia de decriptare static void de_key_idea(IDEAkey Z,IDEAkey DK) { int j; uint16 t1,t2,t3; IDEAkey T; word16 *p=T+KEYLEN; t1=inv(*Z++); t2=-*Z++; t3=-*Z++; *--p=inv(*Z++); *--p=t3; *--p=t2; *--p=t1; for (j=1;j<ROUNDS;j++) { t1=*Z++; *--p=*Z++;
Pagina 81 din 96

*--p=t1; t1=inv(*Z++); t2=-*Z++; t3=-*Z++; *--p=inv(*Z++); *--p=t2; *--p=t3; *--p=t1; } t1=*Z++; *--p=*Z++; *--p=t1; t1=inv(*Z++); t2=-*Z++; t3=-*Z++; *--p=inv(*Z++); *--p=t3; *--p=t2; *--p=t1; /*copierea i distrugerea copiei temporare*/ for(j=0,p=T;j<KEYLEN;j++) { *DK++=*p; *p++=0; } } // funcia de nmulire modulo 2*16 uint16 mul(uint16 a, uint16 b) { word32 p; if (a) { if (b)
Pagina 82 din 96

{ p=(word32)a*b; b=(uint16)(low16(p)); a=(uint16)(p>>16); return b-a+(b<a); } else { return 1-a; } } else return 1-b; } #define MUL(x,y) (x=mul(low16(x),y)) #define CONST // functia de cifrare static void cipher_idea(word16 in[4],word16 out[4],register CONST IDEAkey Z) { register uint16 x1,x2,x3,x4,t1,t2; int r=ROUNDS; x1=*in++; x2=*in++; x3=*in++; x4=*in; do { MUL(x1,*Z++); x2+=*Z++; x3+=*Z++; MUL(x4,*Z++); t2=x1^x3; MUL(t2,*Z++); t1=t2+(x2^x4); MUL(t1,*Z++);
Pagina 83 din 96

t2=t1+t2; x1^=t1; x4^=t2; t2^=x2; x2=x3^t1; x3=t2; } while (--r); MUL(x1,*Z++); *out++=x1; *out++=(x3+*Z++); *out++=(x2+*Z++); MUL(x4,*Z); *out=x4; } // funcia care citete si returneaz un character din fiier char read_char_from_file(FILE *fp) { char temp=0; if ((fread(&temp,sizeof(char),1,fp))!=1) end_of_file=1; return (temp); } //funcia care citete si returneaz un word16 din fiier word16 read_word16_from_file(FILE *fp) { word16 temp=0; if ((fread(&temp,sizeof(word16),1,fp))!=1) end_of_file=1; return temp; } //funcia care scrie un character din fiier void write_char_to_file(char data,FILE *fp) { if ((fwrite(&data,sizeof(char),1,fp))!=1)
Pagina 84 din 96

{ MessageBox(NULL,"Eroare fatala la scrierea in fisier","Eroare",MB_OK); exit(-1); } } //funcia care scrie un ntreg in fiier void write_word16_to_file(word16 data,FILE *fp) { if ((fwrite(&data,sizeof(word16),1,fp))!=1) { MessageBox(NULL,"Eroare fatala la scrierea in fisier","Eroare",MB_OK); exit(-1); } } // funcia de cifrare void cipher_file(FILE *in,FILE *out,word16 *key) { word16 input[4],output[4]; IDEAkey Z; int x,y; int count=0; long length; int temp; en_key_idea(key,Z); end_of_file=0; length=filelength(fileno(in)); fwrite(&length,sizeof(long),1,out); while (!end_of_file) { x=0; while (x<4) { input[x]=((word16)(read_char_from_file(in)<<8));
Pagina 85 din 96

ramas=ramas+creste; //MessageBox(NULL,IntToStr(y).c_str(),"Eroare",MB_OK); if (ceil(ramas)==1) { progres->progresbar->Width=progres->progresbar->Width+1; progres->procentul->Caption=IntToStr(progres->progresbar->Width/2)+" %"; progres->Refresh(); ramas=ramas-1; } if (!end_of_file) { temp=read_char_from_file(in); if (temp<0) temp+=256; input[x]=input[x]|temp; x++; } if (end_of_file) { while (x<4) input[x++]=0; break; } } cipher_idea(input,output,Z); for (y=0;y<x;y++) { if (noisy) if (count++%256==0) printf("."); write_word16_to_file(output[y],out); } } } // funcia de decifrare void decipher_file(FILE *in,FILE *out,word16 *key) { word16 input[4],output[4];
Pagina 86 din 96

int x,y; IDEAkey Z,DK; int count=0; long length=0; en_key_idea(key,Z); de_key_idea(Z,DK); end_of_file=0; fread(&length,sizeof(long),1,in); while (!end_of_file) { x=0; while (x<4) { input[x]=read_word16_from_file(in); ramas=ramas+creste; //MessageBox(NULL,IntToStr(y).c_str(),"Eroare",MB_OK); if (ceil(ramas)==1) { progres->progresbar->Width=progres->progresbar->Width+1; progres->procentul->Caption=IntToStr(progres->progresbar->Width/2)+" %"; progres->Refresh(); ramas=ramas-1; } if (end_of_file) break; x++; } cipher_idea(input,output,DK); for (y=0;y<x;y++) { if (noisy) if (count++%256==0) printf("."); if (length-->0) write_char_to_file(((char)(output[y]>>8)),out);
Pagina 87 din 96

if (length-->0) write_char_to_file(((char)(output[y]&255)),out); } } } // funcia de tergere sau redenumire a fiierului temporar void swap_files_and_clean_up(char *file) { long fsize,count; FILE *fp; if ((fp=fopen(file,"w+"))==NULL) { MessageBox(NULL,"Eroare la suprascrierea fiierului vechi, securitate compromis. ","Eroare la deschidere",MB_OK); } else { fseek(fp,0l,SEEK_END); fsize=ftell(fp); fseek(fp,0l,SEEK_SET); for (count=0;count<fsize;count++) fputc('0',fp); fclose(fp); } if ((remove(file))!=0) //terge fiierul { if (errno==EACCES) MessageBox(NULL," redenumire",MB_OK); if (errno==ENOENT) MessageBox(NULL," Nu exist fiierul sau directorul specificat ","Eroare la redenumire ",MB_OK); else
Pagina 88 din 96

Nu

avei

PERMISIA

necesar

","Eroare

la

{ MessageBox(NULL,IntToStr(errno).c_str(),"Eroare la redenumire ",MB_OK); exit(-1); } } if ((rename(tempfilename,file))!=0) { MessageBox(NULL,tempfilename,"Eroare la fisier temporar",MB_OK); } } #define KBYTES 1024 // funcia de creare a cheii din parola introdus folosit la criptare sau decriptare void getuserkeyfromargv(word16 *key,char *arg) { int x; for (x=0;x<strlen(arg) && x<8;x++) { if (x==0) key[x]=arg[x]<<8; else key[x]=((arg[x]<<8)|(key[x-1]>>8)); } if (strlen(arg)>8) printf ("\nONLY first *8* characters of key used!!!\n"); if (x<8) while (x<8) key[x++]=0; } //progress.h //--------------------------------------------------------------------------#ifndef progressH #define progressH //--------------------------------------------------------------------------#include <Classes.hpp>
Pagina 89 din 96

#include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> //--------------------------------------------------------------------------class Tprogres : public TForm { __published: // IDE-managed Components TPanel *Panel1; TPanel *progresbar; TLabel *procentul; private:// User declarations public: }; extern PACKAGE Tprogres *progres; #endif // progress.cpp //--------------------------------------------------------------------------#include <vcl.h> #pragma hdrstop #include "progress.h" #pragma package(smart_init) #pragma resource "*.dfm" Tprogres *progres; //--------------------------------------------------------------------------__fastcall Tprogres::Tprogres(TComponent* Owner) : TForm(Owner) { } //parola.h
Pagina 90 din 96

// User declarations

__fastcall Tprogres(TComponent* Owner);

//--------------------------------------------------------------------------#ifndef parolaH #define parolaH #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------class Tparole : public TForm { __published: // IDE-managed Components TEdit *Edit1; TEdit *Edit2; TButton *Button1; TButton *Button2; TLabel *Label1; TLabel *Label2; void __fastcall Button1Click(TObject *Sender); void __fastcall FormActivate(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall Edit1KeyPress(TObject *Sender, char &Key); void __fastcall Edit2KeyPress(TObject *Sender, char &Key); public: }; //--------------------------------------------------------------------------extern PACKAGE Tparole *parole; //--------------------------------------------------------------------------#endif // parola.cpp //--------------------------------------------------------------------------#include <vcl.h> #pragma hdrstop #include "parola.h"
Pagina 91 din 96

// User declarations

__fastcall Tparole(TComponent* Owner);

#include "sursaidea.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" Tparole *parole; //--------------------------------------------------------------------------__fastcall Tparole::Tparole(TComponent* Owner) : TForm(Owner) { } void __fastcall Tparole::Button1Click(TObject *Sender) { if (Edit1->Text!=Edit2->Text) { MessageDlg("Parolele sunt diferite.", mtError, TMsgDlgButtons() << mbYes , 0); Edit1->Text=""; Edit2->Text=""; Edit1->SetFocus(); } else { Form1->password=Edit1->Text; parole->Close(); } } //--------------------------------------------------------------------------void __fastcall Tparole::FormActivate(TObject *Sender) { Form1->renuntat=false; Edit1->Clear(); Edit2->Clear(); Edit1->SetFocus(); } //--------------------------------------------------------------------------Pagina 92 din 96

void __fastcall Tparole::Button2Click(TObject *Sender) { Form1->renuntat=true; parole->Close(); } //--------------------------------------------------------------------------void __fastcall Tparole::Edit1KeyPress(TObject *Sender, char &Key) { if (Key==13) // daca s-a apasat ENTER Edit2->SetFocus(); } //--------------------------------------------------------------------------void __fastcall Tparole::Edit2KeyPress(TObject *Sender, char &Key) { if (Key==13) // daca s-a apasat ENTER Button1->SetFocus(); } //optiune.h //--------------------------------------------------------------------------#ifndef optiuneH #define optiuneH #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> class Toptiuni : public TForm { __published: // IDE-managed Components TButton *Button1; TButton *Button2; TEdit *Edit1; TEdit *Edit2; TRadioButton *RadioButton1; TLabel *Label1;
Pagina 93 din 96

TLabel *Label2; void __fastcall Button2Click(TObject *Sender); private:// User declarations public: }; extern PACKAGE Toptiuni *optiuni; #endif //optiune.cpp #include <vcl.h> #pragma hdrstop #include "optiune.h" //--------------------------------------------------------------------------#pragma package(smart_init) #pragma resource "*.dfm" Toptiuni *optiuni; //--------------------------------------------------------------------------__fastcall Toptiuni::Toptiuni(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------void __fastcall Toptiuni::Button2Click(TObject *Sender) { optiuni->Close(); } //--------------------------------------------------------------------------// User declarations __fastcall Toptiuni(TComponent* Owner);

CONCLUZII Securitatea pe Internet se mbuntete. Folosirea tot mai mult a Internetului pentru comer nbuntete tehnologia protejrii tranzaciilor financiare. Extinderea tehnologiei de
Pagina 94 din 96

baz pentru protecia trimiterilor de comunicaii multiple este posibil i se poate atepta ca trimitere multipl s devin tot mai rspndit. Unealta de baz pentru controlul accesului la date rmne tot controlul asupra rutrii. Implementnd politici particulare va face posibil perfecionarea protocoalelor de rutare a trimiterilor multiple. Criptarea este o unealt care poate uura multe din problemele legate de folosirea Internetului pentru comunicare. Oricum, criptografia necesit implementarea sigur a protocoalelor i ecuaiilor matematice complexe, i exist tot timpul griji n privina unei rele implementri. O grij n plus este c utilizatorii sunt eseniali pentru sigurana comunicrii, ct timp ei trebuie s furnizeze cheia apropiat. Criptografia poate fi o tehnologie care se dezvolt, dar ct timp securitatea este realizat de om, criptografia este tot att de bun ca i practica oamenilor care-l folosesc. Utilizatorii las cheile nesupravegheai, aleg chei uor de reinut, nu schimb cheile ani de zile. Complexitatea criptografiei nu permite efectiv nelegerea a foarte muli oameni i de aceea motivaii disponibile pentru practicarea siguranei criptografiei. Implicaii sociale Implicaiile securitii reelei pentru securitatea individual i a societii n general sunt ocante. Mai jos vom meniona doar cteva din cele mai importante consecine. Guvernelor nu le plac cetenii care au secrete fa de ele. n unele ri (de exemplu Frana) orice criptografie neguvernamental este pur i simplu interzis, cu excepia cazului n care guvernul primete toate cheile utilizate. Dup cum au punctat Kahn (1980) i Selfridge i Schwartz (1980), interceptarea de ctre guvern s-a practicat la o scar mult mai mare dect i-ar putea imagina majoritatea oamenilor, iar pentru eforturile lor, guvernele doresc ceva mai mult dect o grmad de bii indescifrabili. Guvernul SUA a propus o schem de criptare pentru viitoarele telefoane digitale care include o caracteristic special ce permite poliiei s asculte i s decripteze toate apelurile telefonice din SUA. Guvernul promite s nu foloseasc aceast caracteristic fr un ordin de la curtea de justiie, dar muli oameni i mai amintesc cum fostul director al FBI, J. Edgar Hoover asculta ilegal telefoanele lui Martin Luther King, Jr. i altor persoane n ncercarea de ai neutraliza. Poliia spune c au nevoie de aceast putere pentru a prinde criminalii. Exprimndu-ne moderat, putem c dezbaterea este vehement de ambele pri. Statele Unite au o lege (22 U.S. 2778) care interzice cetenilor s exporte muniii (material de rzboi), cum ar fi tancuri i avioane cu reacie, fr autorizarea DOD. Prin aceast lege, software-ul criptografic este clasificat ca i muniie. Phil Zimmerman, care a scris PGP (Prety Good Privacy), un program pentru protecia potei electronice, a fost acuzat c a nclcat
Pagina 95 din 96

aceast lege, chiar dac guvernul admite c el nu l-a exportat (dar l-a dat unui prieten pentru a-l pune pe Internet de unde putea fi obinut de strini). Muli oameni au privit acest incident larg mediatizat ca o nclcare total a drepturilor unui cetean american ce lucreaz pentru mbuntirea siguranei oamenilor.

Pagina 96 din 96

S-ar putea să vă placă și