Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Exista o permanenta nevoie de masuri pentru a garanta intimitatea, integritatea si valabilitatea a resurselor in sistemele distribuite. Atacurile de securitate iau forme in care consta in interceptari, mascarade, falsificari si servicii de respingere. Designerii sistemelor distribuite trebuie sa coopteze cu interfete expuse si retele nesecurizate intr-un mediu unde atacatorii deobicei cunosc algoritmi folositi si folosesc resurse de calcul.
Cripografia ofera bazele autentificarii mesajelor deasemenea si secretul si integritatea; este nevoie de o exploatare a protocoalelor de securitate atent concepute. Selectia algoritmilor de criptografiere si managamentul cheilor este critica in performanta efectiva si uzuabilitatea mecanismelor de securitate. Cheia publica de criptografie face usor distributia de chei criptografice dar performanta este inadecvata pentru criptarea cantitatii de date. Criptografia cheii secrete este cea mai buna pentru sarcini de encriptare cantitative. Protocoale hibride precum SSL (Secure Sokets Layer) stabilesc un canal sigur folosind cheie publica de criptografie iar apoi o foloses pentru a face schimb chei secrete pentru folosirea schimburilor de date in subsecventa.
Informatia digitala poate fi semnata, producand certificate digitale. Certificatele da posibilitatea increderii intre utilizatori si organizatii.
Introducere
Masurile de securitate trebuie sa fie incorporate in sistemele de calculatoare indifferent ca ele sunt tinte potentiale de atacuri maligne sau suspecte. Aceasta este in special valabil pentru sisteme care se ocupa de tranzactii financiare sau confidentiale, secrete sau alte informatii a carei secret si integritate sunt critice. In figura 1.7, se sumarizeaza evolutia nevoii securitatii in sisteme de calculatoare de cand ele s-au dezvoltat cu avansarea datelor impartasite in sisteme multi-user ai anilor 1960-70. Astazi avansul sistemelor de arie larga, deschise si distribuite a rezultat in probleme de securitate de scara larga.
Nevoia de a proteja integritatea si intimitatea informatiei si alte posesii de resurse individuale si a organizatiilor este cuprinsa in ambele lumi fizica si digitala. Se ridica din dorinta de a impartasi resurse. In lumea fizica, organizatiile adopta polite de securitate care ofera impartasirea resurselor in anumite limite. De exemplu, o companie sa-si poata permite accesul in cladirile sale angajati si vizitatori acreditati. O polita de securitate pentru documente poate specifica grupuri de angajati care pot avea acces la clase de documente sau poate fi definit pentru documente individuale si utilizatori.
Polite de securitate sunt imputernicite cu ajutorul mecanismelor de securitate. De exemplu, accesul la o cladire poate fi controlat de un receptioner, care se ocupa cu insigne pentru vizitatorii acreditati si cu ajutorul unui paznic sau a unui incuietor de usa. Accesul la documente fiind deobicei controlat de o intelegere si o distributie restrictive.
In lumea electronica, distinctia intre politicile de securitate si mecanismele ramane important; fara ea, ar fi dificil de determinat daca un system este sigur. Politicile de securitate sunt independente prin tehnologia folosita, chiar si prezenta unui lacat pe o usa nu asigura securitatea a unei cladiri decat daca este o politica pentru folosirea lui. (de exemplu , daca acea usa va fi inchisa indifferent daca nu este pazita de nimeni la intrare). Mecanismele de securitate care le vom descrie nu asigura ele singure securitatea unui system. In sectiunea 1.2 vom sublinia necesitatile pentru securitate in scenarii simple variate de comert electronic, ilustrand nevoia de politici in acel context. De exemplu securitatea unui fisier de server al retelei a carui interfata este accesibila clientilor. Pentru a asigura acel control de acces, este nevoie de o politica in care toate cererile trebuie sa include identitatea utilizatorului authentic.
Provizia mecanismelor pentru protectia datei si a altor resurse bazate pe computerizate si pentru tranzactii din retea securizate este preocuparea acestui capitol. Noi vom descrie mecanismele care activeaza politicile de securitate pentru a fi intarite in sistemele distribuite. Mecanismele pe care le vom descrie sunt destul de puternice pentru a rezista la majoritatea atacurilor.
Distinctia dintre politcile de securitate si mecanismele de securitate sunt folositoare in conceperea sistemelor secure, dar de obicei este dificil pentru a fi sigure de aceea un set dat de sisteme de securitate implementeaza in total politicile de securitate dorite. In sectiunea 2.3.3, am introdus un model de securitate care este conceput sa ajute in analiza potentialelor amenintari la securitate in sistemele distribuite. Putem sumariza modelul de securitate al capitolului 2 astfel:
procesele incapsuleaza resurse (ca obiecte de programarea de limbaj-nivel si alte resurse definite-system) si permit utilizatorilor sa le acceseze prin interfatele lor. Principiile (utilizatori sau alte procese) pot fi axplicit autorizate pentru a opera resurse. Resursele trebuie protejate impotriva accesului neautorizat.
Procesele interactioneaza printr-o retea care este impartasita de multi utilizatori. Inamicii (atacatorii) pot accesa reteaua. Ei pot copia sau sa incerce sa citeasca mesaje transmise prin retea sis a poata injecta mesaje arbitrare, adresate oricarei destinatii si sa presupuna ca ar veni din oricare sursa, din retea
Acel model de securitate identifica calitatile ale sistemelor distribuite care se expun atacurilor. In acest capitol, vom detalia aceste atacuri si tehnicile de securitate care sunt disponibile pentru a le apara.
Urgenta criptografiei in domeniul public <>. Criptografia ofera bazele pentru majoritatea mecanismelor de securitate ale calculatoarelor. Criptografia are o lunga si fascinanta istorie. Armata avea nevoie de informatie securizata si nevoia corespunzatoare a inamicului pentru a intercepta si de a decripta , a adus la investiia a multor eforturi intelectuale a celor mai bune minti matematiciene a acelui timp. Cititorii interesati in explorarea acelei istorii vor gasi teme foarte interesante de carte in acest domeniu de David Kahn (1967,1983,1991) si Simon Singh (1999). Whitfield diffie, unul din inventatorii criptografiei cheii publice [Diffie 1988, Diffie and Landau 1998] si prefata cartii lui Schindler [1996].
Dar este numai criptografia timpurilor recente care s-au ivit din hartiile anterior plasate de asezarile politice si militare care obisnuiau sa controleze dezvoltarea si folosirea. Acum subiectul este deschis cercetarii libere de o comunitate larga si active, cu rezultatele publicate in multe carti, jurnale si conferinte. Publicatia cartea lui Schneider criptografia aplicata [1996] a fost piatra de temelie in deschiderea cunostintei in acest camp. A fost prima carte care a publicat multi algoritmi importanti cu cod sursa - un pas curajos, deoarece, cand prima editie a aparut in 1994 situatia legala a acestei publicatii era neclara. Schneier ramane referinta definitive in majoritatea aspectelor al criptografiei moderne. Menezes et al. [1997] deasemenea ofera o carte buna si practica cu o baza teoretica buna.
Deschiderea noua este un rezultat lar al cresterii intereselui in aplicatiile nonmilitare ale criptografiei si necesitatile de securitate a sistemelor distribuite. Aceasta a rezultat in extensia pentru prima data a unei autosustinute cumunitati de cercetatori in domeniul criptografiei in afara de domeniul military.
Ironic, deschiderea criptografiei la accesul public si folosire ei a rezultat la o imbunatatirea semnificativa la tehnicile de criptografie, ambele in taria si rezistenta atacurilor de inamici si in convenienta cu care ei pot fi desfasurate. Criptografia prin cheia publica este unul din fructele deschiderii. Ca un alt exemplu, noi subliniem ca . algoritmul criptografiei standard DES a fost initial un secret military. Publicarea sa eventuala si eforturile incoronate cu success in al sparge a rezultat in dezvoltarea a unei chei mai puternice.
O alta dezvoltare cu success facuta a fost terminologia commune prin apropiere. Un exemplu al scrisorii este adoptarea unui set de nume familiare pentru protagonisti (principali) implicati in tranzactii care sunt deasemenea securizate. Folosirea numelor familiare pentru principiali si atacatori ajuta la clarificarea si aducerea la viata descriptia protocoalelor de securitate si a potentialelor atacuri asupra lor, care este un important pas inainte la identificarea vulnerabilitatilor. Numele aratate in Figura 2 sunt folosite extensive in literatura securitatii si le vom folosi liber aici. Nu am putut descoperi originea lor; ocurenta cea mai recenta a carei noi o cunoastem este in foaia cheii de criptografie publica originala RSA [Rivest et al. 1978]. Un comentariu asupra folosirii poate fi gasit in Gordon [1984].
1.1 atacurile si amenintarile
Cateva ameninteri sunt elocvente - de exemplu, majoritatea tipuri a retelei locale este usor de construit si a rula un program la un calculator conectat care obtine copii a mesajelor transmise intre alte calculatoare. Alte amenintari sunt mai subtile daca clientii nu reusesc sa autentifice servere, un program s-ar putea instala intr-o zona unde fisierele autentice ale serverului si astfel obtin copii a informatiei confidentiale in care clientii fara sa doreasca trimit in acea zona pentru a le stoca.
In completare cu pericolul pierderii sau avarierea informatiei sau resurselor prin violari directe, aclamari violente mop fi facute impotriva proprietarului sistemului care nu e securizat demonstrative. Pentru evitarea acestor aclamri, proprietarul trebuie sa fie in pozitia de a dovedi aclamarea prin aratarea ca sistemul este securizat impotriva acestor violari sau prin producerea unui jurnal al tuturor tranzactiilor pentru perioada ceruta. O instanta comuna este problema fantomei retragerii in distribuitoarele de cash (casa de socotit). Cel mai bun raspuns pe care o banca poate sa-l ofere este sa ofere o inregistrare a tranzactiei care este digital semnata de detinatorul contului intr-o maniera care nu poate fi uitata de partea terta.
Scopul principal al securitatii este sa restrictioneze accesul la informatia si resurselor la doar acei principali care sunt autorizati sa aiba acces. Amenintarile la securitate se disting in 3 categorii:
Scurgere - achizitia informatiei de receptori neautorizati
Falsificarea - alterarea neautorizata a informatiei
Vandalism - interferenta cu operatie corecta a sistemului fara voia autorului
Metode de atac pot fi clasificate in felul in care fiecare canal este abuzat:
Trasul cu urechea - obtinerea de copii ale mesajelor fara autoritate.
Mascarada - trimiterea sau receptionarea mesajelor folosind identitatea a altui principal inafara de autoritatea lor.
Alterarea mesajelor - interceptarea mesajelor si alterarea continuturile lor inaintea sa fie trimise in recipientul intentat. Omul in mijlocul atac este o forma de alterare a mesajului in care atacatorul intercepteaza primul lui mesaj intr-un schimb de chei de criptare pentru a stabili un canal securizat. Atacatorul substituie cheile compromise care face posibila sa decripteze mesaje subsecvente inainte de recriptarea lor in cheile corecte si trimiterea lor.
Replica - patrarea mesajelor interceptate si trimiterea lor la o data mai tarzie. Acest atac poate fi afectiv chiar cu mesaje autentice si criptate.
Serviciul de respingere - inundarea unui canal sau a altei resurse cu mesaje pentru a respinge accesul pentru altii.
Acestea sunt pericolele in teorie, dar cum atacurile sunt purtate in afara practicii? Atacurile de success depend de descoperirea gaurilor de bucla ale securitatii sistemelor.
Din pacate, aceastea sunt raspandite in sistemele actuale si ele nu sunt necesar particulare obscure. Cheswick si Bellovin [1994] identifica 42 slabiciuni care ele sunt considerate pozate ca riscuri serioase in sisteme si componente de internet folosite larg.
Ele variaza de la furturi de parole la atacuri la programe care efectueaza protocoale de prototocl de timp sau manipuleaza transmisia de mail-uri. Cateva din acestea a adus la atacuri bine publicate [Stoll 1989, Spafford 1989], si majoritatea pot fi exploatate pentru scopuri criminale si ticaloase.
Cand sistemele de internet care sunt conectate la ele care au fost proiectate, securitatea nu a fost o problema. Creatorii probabil nu aveau conceptii la o scara a carui internet ar creste, iar proiectarea initiala a sistemelor ca UNIX predestinate retelelor de calculatoare advente. Vom vedea deasemenea, incorporarea nevoile masurilor de securitate pentru a fi atent gandite la stagiul de proiectare initial, materialul in acest capitol este intentionat sa ofere bazele pentru aceasta gandire.
Am evidentiat asupra amenintarilor la sistemele distribuite care se inalta din expunerea canalelor lor de comunicare si interfata lor. Pentru multe sisteme, ele sunt numai amenintari care au nevoie sa fie considerate (alte decat cele care se inalta din eroarea umana - mecanismele de securitate nu pot fi aparate impotriva unei parole prost alese sau una care dizolcata fara grija). Dar pentru sisteme care include programe mobile si steme a caror securitate sunt sensibil particulare la scurgerea de informatie, sunt amenintari mai profunde.
Amenintari din codul mobil <> Multe limbaje de programare recent dezvoltate au fost proiectate pentru a permite programelor sa fie incarcate intr-un process de la un server telecomandat si au fost executate locale. In acel caz interfetele interne si obiectele din precesul in executie pot fi expuse atacului prin cod mobil.
Java este cel mai larg folosit limbaj de aces tip, si producatorii au platit atentie considerabila la ddesign si constructie a limbajului si mecanismele de incarcare de la distanta intr-un effort pentru a restricta expunerea (modelul cutiei de nisip a protectiei impotriva codului mobil).
Masinaria Virtuala Java (JVM) este proiectata cu cod mobil in vedere. El da fiecarei aplicatii mediul propriu in care sa ruleze. Fiecare mediu are un manager de securitate care determina ce resurse sunt disponibile la aplicatie. De exemplu, managerul de securitate ar putea opri o aplicatie citind si scriind fisiere sau sad ea acces limitat la conexiunile de retea. Odata ce managerul de securitate a fost setat, nu mai poate fi reinlocuit. Cand un utilizator ruleaza un program ca un browser care downloadeaza codul mobil care ruleaza coduri maligne care sterg fisiere sau acceseaza informatie privata. Pentru a proteja utilizatorii de cod nesigur, majoritatea browserilor specifica ca, appleturile nu pot accesa fisierele locale, imprimantesau soket-uri de retea. Unele aplicatii ale codului mobil sunt in stare sa-si atribuie nivele variate de incredere in codul downloadat. In acest caz, managerii de securitate sunt configurati sa ofere mai mult acces la resursele locale.
JVM ia 2 masuri adanci pentru protejarea mediul local:
clasele downloadate sunt stocate separate de clasele locale, prevenind-ule de reinlocuirea claselor locale cu alte versiuni ;
codurilebyte sunt verificate de validitate. Bytecodul Java valid este compus al instructiunilor Java Virtual Machine dintr-un set specific. Instructiile sunt deasemenea verificate sa asigure daca ele nu vor produce erori anume cand programul ruleaza, ca si cand se acceseaza adrese ilegale de memorie.
Securitatea Java a fost subiect a investigatiei tot mai subsecvente, in cursul al carui a devenit clar ca mecanismele originale au adoptate, au fost fara gauri de bucla [McGraw si Felden 1999]. Gaurile de bucla identificate au fost corectate si protectia Java a fost refinat sa permita codul mobil sa acceseze resurse locale cand autorizate sa o faca [java.sun.com V].
In ciuda incluziei mecanismului verificarii tiparirii si validarii codului, mecanismele de securitate incorporate in sistemele de codul mobil nu produc acelasi nivel de confidenta in efectivismul lor si acelea au fost folosite sa protejeze comunicarea canalelor si interfatelor. Aceasta exista din cauza constructiei al mediului pentru executia programelor ofera multe oportunitati la erori, si este dificil sa fie confident, din aceasca cauza au fost evitate. Volpano si Smith [1999] au adus la lumina ca o abordare apropiata, bazata pe dovezi care comportamentul codului mobil suna, ar oferi o solutie mai buna.
Scurgerea de informatii<> Daca transmisia unui mesaj intre 2 procese pot fi observate, cateva informatii pot fi spicuita din simpla existenta - de exemplu, o inundatie de mesaje la un dealer intr-un stoc particular ar indica un nivel inalt de schimb intr-un stoc. Sunt mai multe forme subtile de scurgeri de informatii, cateva maligne si alte inaltari din eroarea inadverente. Potentialul pentru ridicarea scurgerilor indiferenet de rezultate a computatiei pot fi observate. Munca a fost terminatain preventia a acestui tip de amenintare de securitate cu tintirea asigurarii ca informatia de nivel inalt nu poate curge in canalele de nivel scazut. O metoda pentru controlul securizat a curgerii informatiei a fost pentru prima data descries de Bell si LaPadula [1975]. Extensia acestei abordari la sistemele distribuite cu dezancredere mutuala intre componente este subiectul a cercetarii recente [Myers si Liskov 1997].
1.2 securizarea tranzactiilor electronice
Multi utilizatori ai internetului in industrie, comertului si in alta parte implica tranzactii care depend crucial de securitate. Ca de exemplu:
Email: cu toate ca sistemele email nu includ original support pentru securitate, exista multe folosiri ale email-ului in care continuturile mesajelor trebuie sa fie tinute in secret (de exemplu, cand se trimite un numar de carte de credit) sau continuturi a expeditorului a unui mesaj trebuie sa fie autentificat (de exemplu in trimiterea unei oferte de licitatie de email).
Securitatea criptografica bazata pe tehnicile secrise in acest capitol este acum inclus in multi clienti de mail.
Achizitionarea de bunuri si servicii: Tranzactii ca acestea sunt acum un lucru obisnuit. Cumparatorii aleg bunuri si platesc flosind Web-ul si le primesc printr-un mechanism specific de furnizare. Produse software si alte produse digitale (ca inregistrari si filme) pot fi furnizate prin downloadarea prin internet.bunuri tangibile ca CD-uri, carti si aproape orice tip de produs sunt deasemenea vandute de vanzatori pe internet; acestea sunt stocate printr-un service de furnizare.
Tranzactii bancare: bancile electronice ofera acum utilizatorilor virtual toate facilitatile oferite de bancile conventionale. Ele pot sa-si verifice balantele si platile banilor intre dintre conturi, sa-si efectueze plati si asa mai departe.
Micro tranzactii: Internetul se imprumuta din mici cantitati a informatiei si a altor servicii la multi clienti. De exemplu, majoritatea paginilor web nu sunt taxate, dar dezvoltarea web-ului ca un mediu de inalta calitate depinde sigur de extensia in care furnizorii de informatie pot obtine plati pentru clienti pentru informatie. Uzul internetului pentru voce si videoconferinta ofera alt exemplu de serviciu care este deobicei fusrnizat numai atunci cand este platit pentru utilizatorii finali. Pretul pentru unor asa servicii este proportional numai cu o fractiune de un cent, si plata de regie trebuie sa fie mica. In general, schemele bazate pe implicarea unei banci sau serverului de carte de credit pentru fiecare tranzactie nu pot atunge aceast lucru.
Tranzactii ca acestea pot fi effectuate sigur numai atunci cand sunt protejate de politicile de securitate adecvate si de mecanisme. Un comparator trebuie sa fie protejat impotriva dezvaluirii codurile de credit (numere de card) in timpul transmisiei si impotriva vanzatorului fraudulent care optine plata cu neintentia de a furniza bunurile. Vanzatorii trebuie sa obtina plata inainte de a da drumul bunurilor iar pentru produsele downloadabile ei trebuie sa asigure ca numai clientul obtine data intr-o forma uzuala. Protectia necesara trebuie obtinuta la un cost si este rezonabil in comparative cu valoarea tranzactiei.
Politicile sensibile de securitate pentr vanzatorii de pe internet si cumparatori duc la urmatoarele cerinte in asigurarea achizitiile web.
autentificarea vanzatorului si a cumparatorului, astfel incat cumparatorul poate fi increzator ca, cheile sunt in contact cu un server operat de vanzator si sunt intentionate sa se faca afacerea.
pastrarea numarului cartii de credit ale cumparatorului si alte detalii de plata la distanta de caderea in mainile unei parti terte si asigurarea ca ei sunt transmisi nealterat de la cumparator la vanzator.
daca bunurile sunt intr-o forma potrivita pentru downloadat, sa se asigure daca continutul lor este trimis la comparator fara alterare
autentificarea identitatii si contul de banca inainte de a se da acces la contul lor.
odata cu importanta securitatiii pentru comertul pe internet si cresterea rapida in comertul pe internet, am ales sa ilustram folosinta tehnicile criptografiei descriind in sectiunea 6 protocolul standard facto folosit in majoritatea comertului electronic Secure Sockets Layer (SSL) si Milicent, un protocol specific creat pentru microtranzactii.
1.3 proiectarea sistemelor secure
Pasi imensi au fost facuti in anii recenti in dezvoltarea tejnicile criptografice si aplicarea lor, si astazi proiectarea lor ramane essential o sarcina dificila. In miezul dilemei faptul este ca proiectantii tintesc sa excluda toate atacurile posibile.
Securitatea are rolul sa minimizeze ghinioanele. Cand este proiectata pentru securitate este necesar sa se gandeasca la ce este mai rau. Cutia de la pagina 260 arata un set cu cele mai folositoare asumari si ghiduri de proiectare.
Pentru a demonstra validitatea mecanismelor de securitate inginerii sistemului trebuie sa construiasca o lista cu amenintari metode prin care politicile de securitate ar putea fi violate sis a arate ca fiecare este prevenita de mecanismele implicate..
Proiectarea sistemelor securizate este un exercitiu in balansul costurilor impotriva amenintarilor. Plaja tehnicilor care pot fi desfasurate pentru protectia comunicarii proceselor si interprocesele este indeajuns de puternica sa faca fata aproape oricarui atac, dar aceste masuri consta in costuri si inconveniente.
un cost (in efortul computational si in folosirea retelei) este creat pentru uzul lor. Costurile trebuie sa fie balansate impotriva amenintarilor.
masuri inadecvate specifice pot exclude utilizatorii legitimi in efectuarea actiunilor necesare.
Asumari de cel mai rau caz si ghiduri de proiectare
Interfetele sunt expuse: sistemele distribuitesunt compuse din procese care ofera servicii sau informatie partajata. Interfetele de comunicare sunt necesare sa deschida (sa permita clientilor noi sa le acceseze) un atacator poate trimite un mesaj la oricare interfata.
Retelele sunt insecure: de exemplu sursele de mesaj pot fi falsificate mesaje pot fi facute astfel incat sa provina de la Alice pe cand defapt ele au fost trimise de Mallory. Adresele gazda pot fi potlogarite Mallory poate sa se conecteze cu aceeasi adresa ca a lui Alice sis a primeasca copii ale mesajelor menite pentru ea.
Limitarea vietii si scopul pentru fiecare secret: cand o cheie secreta este generata noi putem fi increzatori ca nu a fost compromisa
Algoritmii si codurile program . Cu cat folosim mai mult cu atat mai mult este cunoscut, cu atat mai mare e riscul.
Atacatoriipot avea acces la resurse mari: costul puterii de calcul este in scadere rapida. Trebuie tinut cont de faptul ca atacatorii au acces la cele mai puternice si cele mai mari calculatoare.
Minimizarea bazei de incredere: portiunile unui istem care este responsabil de implementarea securitatii, si toate componentele hardware si software pe care se bazeaza trebuie sa fie de incredere aceasta este deobicei referita ca o baza de calcul sigura.orice defect sau eroare de programare in aceasta baza de incredere poate produce slabiciune in securitate, deasemenea noi trebuie sa tintim minimizarea marimii sale. De exemplu, programele aplicatie nu ar trebui sa fie de incredere in protejarea datelor utilizatorilor lor.
2 privirea de ansamblu a tehnicilor de securitate
Scopul sectiunii este de a introduce cititorului mai multe tehnici si mecanisme pentru securizarea sistemelor distribuite si a aplicatiilor. Aici le vom descrie informal, rezervand mai multe descrieri riguroase pentru sectiile 3 si 4..Vom folosi nume familiare pentru principalele introduse in figura 2 si notatiile pentru criptarea si lucrurile semnate aratate in figura 3
2.1 criptografia
Incriptarea este procesul de codare a mesajului intr-o maniera in care sa ascunda continutul sau. Criptografia moderna include mai multi algoritmi de securizare pentru incriptarea si decriptarea mesajelor. Sunt bazate pe folosirea unor secrete numite chei.
Sunt 2 clase principale de algoritmi de ecriptare in uz general. Primele folosiri de chei secrete partajate, expeditorul si destinatarul trebuie sa cunoasca cheia fara ca niciunul sa stie. A doua clasa de algoritmi de criptare foloseste perechi de chei publice/private - expeditorul unui mesaj foloseste o cheie publica - una care deja a fost publicata de destinatar - de a cripta mesajul. Destinatarul foloseste cheie corespunzatoare cheie private de decriptare a mesajului.
Algoritmii de criptare cu cheie publica, deobicei necesita de la 100 pana la 1000 de ori la fel ca puterea de procesare ca algoritmi de cheie secreta, dar sunt situatii unde convenienta lor depaseste acest dezavantaj.
3 algoritmi de criptografie
Un mesaj este incriptat de un expeditor aplicand regula sa transforme un text la un ciphertext ( o alta secventa de biti). Destinatarul trebuie sa stie inverse regula pt transformarea ciphertextului in text original. Transformarea ecriptarii este definite cu 2 parti, o functie E si o cheie K. rezultatul mesajului criptat este scris k
E(K,M) = k
Functia E de criptare define un algoritm care transforma obiecte de date in text plan in data criptata prin combinarea lor cu cheia si transportarea intr-o maniera care este dependent de valoarea cheii. Decriptarea este purtata folosind o functie inverse D, care ia o cheie ca parametru. Pentru criptarea cheii secrete, cheia folosita la decriptare este la fel ca cea folosita pentru criptare
D(K,E(K,M)) = M 22 of 58
Din cauza folosintei simetriei cheiilor, criptografia cheilor secrete este deseori referita ca o criptografie simetrica, in care criptografia cu cheie publica este referita ca asimetrica deoarece cheile folosite in criptare si decriptare sunt diferite, cum vom vedea. In sectiunea urmatoare, vom descrie mai larg functiile de criptare al ambelor tipuri.
Algoritmi simetrici <> daca noi scoatem parametrul cheii din consideratie prin definirea Fk([M]) = E (K,M) atunci cand este o proprietate de functii de criptare puternice in Fk ([M]) este relative usor de com[utat, unde inversul Fk -1([M])este asa de greu incat calcularea nu prea este fezabila. Functii ca acestea sunt functii de o singura cale. Efectivitatea oricarei metode de criptare depinde de folosirea unei functii de criptare Fk care are o prorietate de o singura cale. Este cea care protejeaza impotriva atacurilor menite sa descopere M dat k.
Pentru algoritmii bine proiectati simetric ca acestea descries in sectiunea urmatoare, puterea lor impotriva incercarilor de a descoperi K date, un text plan M si ciphertextul k depind de marimea lui K. Aceasta este din cauza ca multe forme de atac sunt cele mai crude, stiute ca atac de forta bruta. Atacurile de forta bruta au rolul de a executa print ate valorile posibile ale lui K calculand E pana cand rezultatele se potrivesc valorii lui k care este deja stiuta. Daca K are N biti atunci un astfel de atac necesita 2N-1 iteratii in medie, si un maxim de 2N iteratii, pentru a gasi K.
De aici timpul de spargere K este exponential in numarul de biti in K.
Algoritmii asimetrici <> cand o cheie publica/private este folosita, functiile de o singura cale sunt exploatate intr-o alta cale. Fezabilitatea cheii publice a fost propusa intai de Diffie si Hellman [1976] ca o metoda criptografica care elimina nevoia de increde intre partile comunicatoare. Baza pentru toate schemele de chei publice este existenta functiilor usii capcane. O dunctie usa capcana este o functie de sens unic cu o iesire secreta este usoara de calculate intr-o directie dar este infezabila de calculate inversul decat daca un secret este cunoscut. A fost posibilitatea de gasire a acestor functii si folosirea lor in criptografia practica care au fost sugerate de Diffie si Hellman. De atunci mai multe scheme de chei publice au fost propuse si dezvoltate. Toate depend de folosirea functiile de numere largi ca functiile usa capcana.
Perechea de chei necesara pentru algoritmii asimetrici este derivate din radacina comuna. Pentru algoritmul RSA, descries in sectia 7,3.2, radacina este o pereche de numere prime arbitrar aleasa. Derivarea perechilor de chei din radacina este o functie de un singur sens. In cazul algoritmului RSA, numerele primele sunt multiplicate impreuna o computatie care ia doar cateva secunde, chiar si pentru folosirea numerelor prime mari. Produsul rezultat , N, este desigur mai mare decat inmultitorii. Folosirea multiplicarii este o functie de sens unic in sensul ca este nefezabil de derivat multiplicantii din produs care este de factorizat produsul
Una din perechile de chei sunt folosite in criptare. Pentru RSA, functia criptarii obscureaza textul prin tratarea fiecarui bloc de biti ca un numar binary si ridicandu-l la puterea cheii, modulo N. numarul rezultat este corespunzatorul blocului ciphertext.
Dimensiunea lui N si cel putin o pereche de chei este mult mai mare decat dimensiunea cheii de siguranta pentru cheile simetrice ca sa asigure ca N este infactoriabil. Pentru acest motiv, potentialul pentru atacurile de forta bruta de pe RSA este scazut; rezistenta sa depinde de infezabilitatea de factorizare N. vom discuta marimile de siguranta pentru N in sectiunea 3.2
Codurile lock <> Majoritatea algoritmilor de criptare opereaza pe blocuri de marime fixa de date ; 64 biti este o dimensiune populara pentru blocuri. Un mesaj este subdivizat in blocuri, si ultimul bloc este captusit la lungimea standardizata daca este necesar si fiecare bloc este criptat independent. Primul bloc este disponibil de transmisie la fel de repede cat a fost criptat.
Pentru fiecare cod simplu, valoarea fiecarui bloc de codtext (ciphertext) nu depinde de blocurile precedate. Aceasta constituie o slabiciune, de cand atacatorul poate recunoaste modelul repetat si deduce implicarea lor in relatie cu textul plan. Nici integritatea mesajelor este garantata numai daca un control sau un mecanism de digerare secura este folosire. Majoritatea algoritmilor de cod bloc folosesc inlantuiri de coduri bloc pentru a preintampina aceste slabicuni.
Inlantuirea de cod bloc: In modul de inlantuirea de cod bloc, fiecare bloc de text este combinat cu blocul cod precedent folosind sau exclusive (XOR) inainte de criptare (figura 6). la decriptare, blocul este decriptat si apoi blocul precedent criptat (care ar fi trebuit sa fie stocat pentru scopul acesta) este XOR-at cu el sa obtina blocul de text plan. Aceasta da rezultate deoarece XOR este ambipotent sa ruleze 2 aplicatii simultan de ale sale care produce valoarea originala.
CBC este intentionata sa previna portii identice de text plan cripandu-le in bucati identice de text cod. Dar este o slbiciune la inceputul fiecarei secvente de bloc - daca deschidem conecxiunile criptate la 2 destinatii si trimitem acelasi mesaj secventele criptate ale blocurilor vor fi la fel, si ascultarea poate sa obtina ceva informatie folositoare de aici. Pentru a preveni, avem nevoie sa inseram o alta bucata de textplan in fata fiecarui mesaj. Acest text este numit vector de initializare. Stampila de timp face o buna initializare a vectorului, fortand fiecare mesaj sa porneasca cu un bloc de text plan diferit. Aceasta combinata cu operatia CBC, va rezulta in texte cod diferite, eventual 2 texte plane identice.
Folosirea CBC este restrictionata la criptarea datei care este transferata prin conexiune. Decriptarea va esua daca unele blocuri ale codului text sunt pierdute, decand procesul va fi inapt sa decripteze alte blocuri. Este deci necorespunzator pentru folosirea lui in aplicatii ca cele descries in capitolul 15, in care cateva pierderi de date sunt tolerate. Un suvoi de cod ar trebui folosit in aceste circumstante.
Suvoi de coduri <> Pentru unele aplicatii, ca, criptarea conversatiei telefonice, criptarea in blocuri este improprie deoarece suvoiul de date sunt produse in timp real in bucati mici. Monstrele de date pot fi chiar si de 8 biti sau chiar si de 1 bit, si ar fi fost de prisos sa fie captusite fiecare dintre ele in 64 de biti inainte de criptare si transmiterea lor. Suvoaiele de cod sunt algoritmi de criptare care fac criptarea incrementar, convertizand in cate un bit de text plan in acelasi timp.
Suna dificil de obtinut, dar de fapt este foarte simplu. Smecheria este construirea uni generator de cheie suvoi. Cheie suvoi este o secvente de lungime arbitrara de biti care pot fi folositi sa intunece continutul suvoiului de date prin XOR-area cheii suvoi cu suvoiul de date (figura 7). daca cheia suvoi este secura, asa este si rezultatul.
Idea este analoaga la o tehnica folosta intr-o comunitate de spionaj pentru a impiedica interceptorii unde un zgomot alb este pus sa ascunda conversatia intr-o incapere in timp ce se inregistreaza conversatia. Daca sunetul galagios din camera si zgomotul alb sunt inregistrate separate, conversatia poate fi redata fara zgomot prin scaderea inregistrarii zgomotoului alb din camera galagioasa.
Un generator de cheie poate fi construit prin iterarea unei functii matematicii asupra unei plaje de valori de intrare care sa produca suvoi cintuu de valori de intrare. Isirea sunt apoi concatenate sa produca blocuri de text plan, blocurile sunt criptate folosind o cheie impartasita de emitator si receptor.
Astfel in principiu, suvoaiele de date in timp real pot fi criptate.
Proiectia algoritmilor criptografici <> Sunt mai multi
algoritmi criptografici bine proiectati ca E (K,M) =
k ascunde valoarea lui M si o face practice imposibil sa
receptioneze K mai repede decat forta bruta. Toti algoritmii
de criptare se bazeaza pe manipulari de prezervarea informatiei ai lui M
folosind principii bazate pe teoria informatii [
Confuzie: operatii nondestructive ca XOR si deplasarea circulara sunt folosite pentru a combina blocuri de texteplan cu cheia, producand o structura noua de biti care intuneca relatia intre blocurile in M si k . Daca blocurile sunt mai mari decat caracterele aceasta va apara analiza bazata pe cunostinta frecventei caracterelor. (Masina Enigma al WWII Germana) folosea blocuri inlantuite de litera singura, si putea fi aparata de anazliza statica.)
Difuzie: Este o repetitiesi o redundata obisnuita in textul plan, difuzia disipa tiparele regulare care rezulta din transpunearea portiunilor a fiecarui bloc de text plan. Daca CBC este folosit, redundanta este distribuita deasemenea prin tot textul lung. Suvoiul de Cod text nu poate folosi difuzie doar pana cand nu mai sunt blocuri.
In sectiunile 2 urmatoare vom descrie proiectia algoritmilor importanti si practice. Toate au fost proiectate in lumina principiilor a caror subiect al analizelor riguroase au fost considerate ca fiind secure impotriva a tuturor atacurilor cu marja de siguranta. Cu exceptiile algoritmului TEA care este descries pentru scopurile illustrate, algoritmii descris aici sunt printer ce mai larg folositi in aplicatii unde este necesara securitate puternica. In unele roman mici slabiciuni sau zone de facut griji. Vom sumariza si descrie securitatea si performantele algoritmilor in sectiunea 5.1.
Cititorii care nu necesita o intelegere a operatiei algoritmilor criptografici pot omite sectiunile 3.1. si 3.2.
Functia de criptare TEA
26 of 58
3.1 algoritmii (simetrici) de cheie secreta
Multi algoritmi publicati si dezvoltati in anii recenti. Schneier [1996] descriu mai mult de 25 de algoritmi simetrici. Vom discuta algoritmii DES si IDEA in detaliu mai putin. DES a fost un standard American pentru multi ani, dar dar acum este un interes istoric deoarece cheile sale de 56 biti s prea mici pentru a rezista atacurilor de forta brutacu hardware modern. IDEA foloseste 128 biti si probabil cel mai efectiv algoritm de bloc simetric si bun la toate alegerile pentru criptarea in volum.
In 1997, Anstitul American de Standarde si Tehnologie (NIST) a invitat o invitatie pentru propunerile unui algoritm pentru adoptare ca un nou Standard de Criptare Avansat (AES). Vom sa cateva somformatii mai jos.
TEA <> Principiile de proiectare pentru algoritmii simetrici subliniati sunt ilustrati bine in algoritmul mic de criptare dezvoltat la universitatea Cambridge [Wheeler si Needham 1994]. Functia criptarii, programata in C, este data in intreagul sau in Figura 8
Figura 9 Functia de decriptare TEA
26 of 58
Figura 9 TEA in uz
27 of 58
Algoritmul TEA foloseste runde de adunare intregi, XOR (operatorul ^) si deplasarea manierei bitilor logice (<<si>>) pentru a obtine difuzie si confuzie a tesaturii bitilor in text plan. Textul plan este un bloc de 64 de biti reprezentati ca intregi de 32 de biti in textul vector[]. Cheia e de 128, reprezentata ca intregi de 32 de biti.
La fiecare 32 runde, cele 2 jumatati ale textului sunt repetat combinate cu portiunile deplasate ale cheii si fiecare in linia 5 si 6. folosirea XOR si portiunile deplasate ale textului ofera confuzie, si deplasarea si inversarea celor 2 portiuni de text ofera difuzie. Cosntanta delta nonrepetitiva este combinata cu fiecare portiune a textului pe fiecare ciclu pentru a ascunde cheia in cazul in care ea ar putea dezvaluita de o sectiune a textului care nu variaza. Functia decriptarii este inversul celei pentru criptare si este dat in Figura 9.
Acest program scurt ofera criptare secura rezonabila si cheie secreta rapida. Porformanta sa a fost masurata de aproximativ de 3 ori fata de algoritmul DES, si concisetea programului duce de sine la optimizare si implementare hardware. Cheia de 128 biti este secura impotriva atacurilor de forta bruta.
In figura 10 este prezentata o procedura simpla cu TEA in criptare si decriptare
DES<> Standardul Criptarii de Date [Biroul National de Standarde 1977] a fost dezvoltat de IBM si subsecvential adoptat ca un standard US American pentru govern si aplicatii business. In acest standard , hartile functiilor de criptare, o intrare de text plan de 64 de biti intr-o iesire de 64 de biti criptata folosind o cheie de 56 biti. Algoritmul are 16 stagii dependente numite runde, in care data de criptare este bit rotate de un numar de biti determinati de cheia si 3 transpozitii independente de chei.
Algoritumul a consumat mult timp pentru a fi executat in softaware-ul de pe calculatoarelor din nii 70-80, dar a fost implementat in hardware-ul rapid VLSI si astfel putand fi usor incorporate in interfata de retea si alte chip-uri de comunicatie.
In iunie 1997, a fost spart intr-un larg mediatizat atac prin forta bruta.
Atacul a fost efectuat in contextul unei competitiipentru a demonstra lipsa criptarii de securitate cu chei mai scurte de 128 biti. [www.rsasecurity.com]. un consortiu de utilizatori de internet au rulat o aplicatie client pe un numar de calculatoare si statii de lucru, care au crestut de la 1000 pana la 14000 [Curtin and Dolske 1998].
Programul client a fost folosit in spargerea cheii particulare folosita intr-o mostra de textplan/textcod si apoi folosit pentru a decripta un mesaj secret. Clientii interactionau cu un singur server, care coordona munca lor, emitand fiecarui client o serie de valori ale cheii pentru verificarea si a receptionarea progreselor lor. Calculatorul client tipic a rulat programul client odata numai ca o activitate de fundal si a avut o performanta de aproximativ egala cu a unui processor Pentium de 200Mhz. cheia a fost Sparta in aproximativ 12 saptamani, ulterior aproximativ 25% din posibilul de 256 sau 6X 1016 valori au fost parcurse. In 1998 o masina a fost dezvoltata de Electronic Frontier Foundation [EFF 1998] care poate sparge cu success cheile DES in aproape 3 zile.
Desi
este utilizata in multe aplicatii comerciale si alte
aplicatii, DES in forma sa de baza ar trebui considerata invechita pentru
protectia tuturor inafara de informatia de valoare scazuta. O solutie care este frecvent utilizata este cunoscuta ca DES triplu (3DES)
[ANSI 1985, Schneier 1996]. Aceasta implica aplicarea DES de 3 ori cu 2 chei K1
si
Aceasta da o putere impotriva atacurilor de forta bruta echivalente cu o cheie de lungime de 112 biti, oferind putere adecvata pentru viitorul apropiabil, dar are dezavantajul unei performante scazuta rezultata din tripla aplicare a unui algoritm care este deja incetinit de standardele moderne.
IDEA<> International Data Encryption Algorithm a fost devoltat la inceputul anilor 90 ca un successor la DES. La fel ca TEA, foloseste o cheie pe 128 biti pentru criptarea blocurilor de 64 bit. Algoritmul sau este bazat pe algebra grupurilor si are 8 parti de XOR, suma modulo 216 si inmultire. Pentru ambele DES si IDEA, aceeasi functie este folosita in criptare si decriptare: o proprietate folositoare pentru algoritmi sta sa fie implementata fizic.
Puterea IDEA a fost intensive analizata, si nu au fost gasite slabiciuni semnificative. Ea efectuea criptare si decriptare in aproximativ de ori mai repede decat DES.
AES<> In 1997 NIST a emis propuneri pentru un algoritm de securitate si efficient spre a fi adoptat ca un nou standard (AES) [NIST 1999]. Evaluarea va continua pana in mai 200, cand un standard preliminar va fi ales, si standardul final va fi publicat in 2001.
15 algoritmi au fost trimisi de comunitatea de cercetare criptografica in raspuns invitatiei AES. Urmarind recapitulare intensive tehnica, 5 din ele au fost selectate pentru a le inainta la o faza a doua a evaluarii. Toti candidatii sprijina marimi de chei de 128 192 si 256 biti, ultimii 5 sunt pentru performanta inalta.
Odata anuntat, AES pare a deveni aproape cel mai lar utilizat algoritm simetric de criptare.
Algoritmii de criptare cu cheie publica (asimetrica)
Numai o parte din chemele practice cu
cheie publica au fost adoptate pana la data stabilita. Ei depend de folosirea functiilor
O dorinta principala de a participa in comunicatia sigura cu altii face ca pereche de pereche de chei Ke si Kd si tine decriptarea cheii Kd un secret. Criptarea cheii Ke poate fi publica pentru utilizare pentru oricine vrea sa comunice. Criptarea Ke poate fi vazuta ca o parte a functiei de criptare de un singur sens E, si decriptarea cheii Kd este piesa cunoasterii secrete care permite principalul p pentru inverse criptarea. Oricare detinator al Ke care este disponibil poate cripta mesajele Ke, dar numai cel care are cheia secreta Ke poate decripta mesajul.
Utilizarea
functiilor numerelor largi duce la costuri mari de
procesare in calcularea functiilor D si
RSA<> Proiectul The Rivest, Shamir si Adelman (RSA) pentru un cod cheie publica este bazat pe utilizarea produsului a doua numere prime foarte mari ( mai mari de 10100 ), bazandu-se pe faptul ca determinarea factorilor primi a acestor numere mari este asa de dificil de calculate aproape imposibil.
In ciuda investigatiilor intensive, nici un defect nu a fost gasit in el si este acum larg utilizat. O schita a metodei este prezentata. Pt gasirea unei pereche de chei e, d:
N=PxQ
Z P-1)x(Q-1)
2.Pentru d alege orice numar care este relativ prim cu Z (adica nu are nici un factor comun cu Z).
Noi ilustram calculele imlicate folosind valori intregi mici pentu P si Q:
P = 13, Q = 17 → N = 221, Z = 192
d = 5
3. Pentru a-l gasi pe e rezolva ecuatia:
e x d = 1 mod Z,
unde e x d este cel mai mic element divizibil cu d in seriile Z + 1, 2Z + 1, 3Z + 1, . .
e x d = l mod 192 = l, 193, 385, . .
385 este divizibil cu d
e = 385/5 = 77
Pentru a cripta un text folosind metoda RSA textul inteligibil este divizat in 2 blocuri egale de lungime k biti unde 2k< N (deci valoarea numerica a unui bloc este intotdeauna mai mica decat N; in aplicatiile practice k este cuprins intre 512 si 1024).
k = 7 cand 27 = 128
Functia pentru criptarea unui singur bloc de text inteligibil M este:
E'(e,N,M) = Me mod N,
pentru un mesaj M, textul cifrat este M77 mod 221
Functia pentru decriptarea unui bloc de text criptat c pentru a obtine blocul de text decriptat original este:
D'(d,N,c) = Cd mod N
RSA a demonstrat ca E' si D' sunt mutual inverse ( asta inseamna ca E'(D'(x)) = D'(E'(x)) = x) pentru toate valorile lui P cuprinse intre 0≤ P ≤ N.
Cei 2 parametri e si N pot fi priviti ca o cheie pentru functia de criptare si, similar, d si N reprezintand o cheie pentru functia de decriptare. Deci noi putem scrie Ke =<e,N> si Kd =<e,N> primim functiile de criptare E(k..,M) = k (notatia indica faptul ca mesajul criptat poate fi decriptat numai de detinatorul cheii private kd) si
D(Kd, k ) = M.
Nu conteaza ca are o potentiala slabiciune pentru toti algoritmii cu chei publice deoarece cheia publica este disponibila pentru atacatori, ei pot usor genera mesaje criptate. Astfel ei pot incerca sa decripteze un mesaj necunoscut criptand complet secventele de biti arbitrare pana cand se realizeaza o potrivire cu mesajul tinta. Acest atac, cunoscut ca atacul textului inteligibil ales, este invins prin asigurarea ca toate mesajele sunt mai mari decat lungimea cheii, deci aceasta forma de atac este mai putin realizabila decat atacul direct asupra cheii.
Un presupus destinatar a informatiei secrete trebuie sa publice sau sa distribuie perechea (e,N) in timp ce d este pastrata secret. Publicarea perechii (e,N) nu compromite secretul d deoarece orice incercare de a determina d cere cunoasterea numerelor prime originale P si Q , iar acestea pot fi obtinute doar prin factorizarea lui N.
Factorizarea numerelor mari (reamintim ca P si Q sunt alese a fi >10100, deci N >10200) consuma foarte mult timp chiar si pe calculatoare foarte peformante. In 1978 Rivest si altii au concluzionat ca facturizarea unui numar mai mare ca 10200 ar lua mai mult decat 4 miliarde de ani cu cel mai cunoscut algoritm pe un computer ce realizeaza un milion de instructiuni pe secunda.
Calculatoare mult mai rapide si metode de factorizare din ce in ce mai bune au fost dezvoltate inca din 1978, sustine Rivest si altii. RSA a emis o serie de modificari pentru a efectua factorizari de numere mai mari de 100 decimale. Numere pana la 155 decimale in lungime au fost, cu succes, factorizate de utilizatorii unui consortiu distribuit pe internet ce au lucrat intr-o maniera similara cu eforturile de spargere ale DES descrise in sectiunea precedenta. In acel timp, situatia era ca acele numere de 155 digiti ( sau, echivalent 500 binary digiti) ce au fost cu succes factorizate au dat nastere de dubii referitor la securitatea cheilor de 512 biti. Efortul de procesare necesar pentru factorizarea a unui numar de155 digiti nu a fost publicat, dar un numar de 140 digiti a fost necesar 2000 de MIPS-ani in februarie 1999. Un an MIPS reprezinta efortul de procesare generat de un procesor cu o viteza de un milion de instructiuni pe secunda ruland un an. Cipurile cu un singur procesor de astazi au viteze de ordinul a 200 MIPS permitandu-le sa efectueze aceste sarcini in aproximativ 10 ani, dar aplicatiile de factorizare distribuita si procesoarele paralele pot reduce timpul la 2 zile. Corporatia RSA ( detinatorul patentului de algoritm RSA) recomanda o cheie de lungime de cel putin 768 de biti, sau aproximativ 230 digiti decimali pentru un termen lung (aprox 20 ani) de securitate. Chei de 2048 biti sunt utilizate in unele aplicatii.
Toate calculele puternice de mai sus duc la concluzia ca algoritmii de factorizare recent cunoscuti sunt cei mai accesibili. RSA cat si alte forme de criptografie asimetrica care folosesc inmultire cu numere prime ca singura functie ar fi vulnerabile atunci cand un algoritm de factorizare mai rapid ar fi descoperit.
Algoritmi in curbe eliptice.
O metoda pentru generarea de perechii de chei publice/private a fost bazata pe dezvoltarile si testele pe proprietatile curbelor eliptice. Detalii complete pot fi gasite in cartea lui Menezes dedicata acestui subiect. Cheile deriva din ramuri diferite ale matematicii, iar spre deosebire de RSA securitatea lor nu depinde de dificultatea factorizarii numerelor mari. Cheile mai scurte sunt securizate iar cerintele procesarii criptarii si decriptarii sunt mai mici decat cele pentru RSA. Algoritmii de criptare in curbe eliptive sunt adegvate pentru a fi adoptate mai mult in viitor, in special in sisteme cum ar fi acele dispozitive mobile incorporate care au resure de procesare limitate. Matematicile relevante implica unele proprietati destul de complexe ale curbelor eliptice care depaseste scopul acestei carti.
Protocoalele criptografice hibride
Criptografia cu chei publice este avantajoasa comertului electronic deoarece nu avem nevoie de un mecanism de distributie a cheii securizate. (Este nevoie de autentificare cheile publice dar este mai putin greoi, cerand certificatul si cheia publica). Dar costurile procesarii criptografiei cu chei publice sunt prea mari chiar si pentru mesaje de marime medie normal intalnite in comertul electronic. Solutia adoptata in cele mai multe sisteme distribuite la scara larga este de a folosi o schema de criptare hibrida in care criptografia cu chei este folosita pentru a autentifica partile si a cripta un schimb de chei private, care sunt folosite pentru toate comunicatiile urmatoare. Noi descriem implementarea protocoului hibrid in cazul SSL in sectiunea 6.3.
Semnaturile digitale
Semnaturile digitale puternice sunt niste cerinte esentiale pentru securitatea sistemului. Ele sunt necesare pentru a certifica bucati de informatie, ca de exemplu sa furnizeze formulare veridice legand identitatile utilizatorilor de cheile lor publice sau legand cateva drepturi de acces sau roluli de identitatile utilizatorilor.
Nevoia de semnaturi in multe feluri de afaceri si tranzactii personale este dincolo de disputa. Semnaturile de mana au fost utilizate ca intelesuri de verificare documentelor atat timp cat documentele inca exista. Semnaturile de mana sunt utilizate pentru a satisface nevoile destinatarilor documentelor pentru a verifica daca acest document este:
Autentic: el convinge destinatarul ca este semnatorul deliberat ce a semnat documentul si nu a fost alterat de nimeni altul.
Nefalsificabil: acesta furnizeaza dovada ca cel care semneaza si nimeni altcineva, a semnat deliberat documentul. Semnatura nu poate fi copiata si plasata pe alt document
Nerepudiabil: cel care semneaza nu poate nega semnatura lor.
In realitate, nici una din proprietatile semnaturilor dorite nu sunt obtinute in totalitate de semnaturile conventionale falsificarile si copierile sunt greu de detectat, documentele pot fi alterate dupa semnatura si semnatarii sunt cateodata amagiti in semnarea documentului involuntar sau neintentionat dar noi suntem doritori de a trai cu imperfectiunea lor datorita dificultatii trisarii si a riscului detectiei. Ca si semnaturile de mana semnaturile digitale depind de legatura cu un atribut unic si secret a semnatarului unui document. In cazul semnaturilor de mana, secretul este tiparul semnaturii de mana a semnatarului.
Proprietatile documentelor digitale sunt depozitate in fisiere sau mesaje complet diferite de documentele de hartie. Documentele digitale sunt deobicei usor de generat, copiat si transformat. Simpla adaugarea identitatea creatorului, indiferent ca este un sir de text, fotografie sau o imagine scris de mana, nu are nici o valoare pentru verificare.
Este nevoie de o legatura irevocabila a identitatii semnatarului la intreaga secventa de biti care sa reprezinte un document.
Aceasta trebuie sa satisfaca prima cerinta deasupra, pentru autenticitate. Ca si semnaturile de mana, data unui document nu poate fi garantata de o semnatura. Destinatarul documentului semnat stie doar ca documentul a fost semnat inainte de a-l primi.
Privind non-repudierea, aici este o problema datorita faptului ca nu ridica semnaturi de mana. Ce s-ar intampla daca semnatarul ar scoate la iveala cheia lui privata si ulterior sa respinga ca a semnat, spunand ca altii ar fi semnat in locul sau, deoarece cheia nu a fost secreta? Unele protocoale au fost dezvoltate pentru a adresa aceasta problema sub titlul de semnaturi digitale nenegate, dar ele adauga considerabil la complexitate.
Un document cu semnatura digitala poate fi considerat mult mai rezistent la falsificare decat unul de mana. Dar cuvantul original are inteles mic cu referinta la documente digitale. In masura ce vom vedea in discutia noastra despre necesitatile comertului electronic, semnaturile digitale singure nu pot de exemplu sa previna dubla cheltuiala a cash-ului electronic- alte masuri sunt necesare sunt necesare oentru prevnirea acestui lucru. Vom descrie acum 2 tehnici de semnatura digitala a documentelor, legand
Figura 11 Semnaturile digitale cu chei publice
principiul identitatii la document. Ambele depind de utilizarea criptografiei.
Semnatura digitala <> un document electronic sau un mesaj M poate fi semnat de un principal A prin criptarea unei copie a M cu cheia KA atasandu-l la o copie de text necifrat a lui M si identificatorul lui A. Documentul semnat consta din M,A [M] KA . semnatura poate fi verificata de un responsabil care ulterior primeste documentul la verificare daca a fost creat A si de continutul sau M, nu a fost ulterior alterat.
Daca o cheie secreta este folosita la criptarea documentului, numai responsabilii care impart secretul pot verifica semnatura. Dar daca criptografia cu cheie publica este folosita atunci semnatarul foloseste cheia lui privata si oricine are cheia publica corespondenta poate verifica semnatura. Aceasta este cea mai buna analogie pentru semnaturi conventionale si satisface mai multe nevoi ale utilizatorilor.
Functii rezumat<> Functii rezumat se mai numesc functii de hash de securitate si se noteaza H(M). Ele trebuie proiectate cu atentie pentru a asigura ca H(M) este diferit fata de H(M') pentru toate perechile de mesaje M si M'. Daca exista cateva perechi de mesaje M si M; astfel incat H(M)=H(M'), atunci un responsabil duplicitar poate trimite o copie semnata a lui M, dar cand este confruntat cu el
Semnaturi digitale cu chei publice
Criptografia cu chei publice este, in particular, bine adoptata de generatia de semnaturi digitale deoarece este relativ simpla si nu cere nici o comunicatie intre destinatarul unui singur document si semnatar sau orice terta parte.
Metoda pentru A de a semna un mesaj M, si B de a verifica mesajul este prezentata in continuare ( si este ilustrata in figura 11):
Algoritmul RSA chiar indicat pentru folosire in realizarea semnaturilor digitale. De notat ca cheia privata a semnatarului este folosita pentru a cripta semnatura, spre deosebire de utilizarea cheii publice a destinatarului pentru criptare acolo unde tinta este transmiterea informatiei in secret.
Explicatia pentru aceasta diferenta este urmatoarea - o semnatura trebuie creata folosind un secret cunoscut numai de semnatar si trebuie sa fie accesibila pentru toti pentru verificare.
Semnaturi digitale cu chei secrete MACs
Nu exista nici un motiv tehnic pentru ca un algoritm de criptare cu cheie secreta sa nu fie folosit pentru a cripta o semnatura digitala, dar pentru a verifica asemenea semnaturi cheia trebuie dezvaluita si aceasta poate cauza unele probleme cum ar fi:
Pentru toate aceste motive, metoda cheii publice pentru generarea si verificarea semnatturilor ofera cea mai convenabila solutie in majoritate a situatilor.
O exceptie este atunci cand un canal de securitate este folosit pentru a transmite mesaje necriptate dar este o nevoie de a verifica autenticitatea mesajelor. De cand un canal sigur ofera comunicatie sigura intre 2 parti a unui proces subliniat in sectiunea 3.3 si folosit sa produca semnaturi la cost redus. Aceste semnaturi sunt denumite coduri mesaj de autentificare (MAC) menite sa reflecte scopul lor mai limitat - ele autentifica comunicarea intre perechi de responsabili bazati pe un secret impartasit
O tehnica de semnatura de cost scazut bazata pe chei secrete impartasite care au securitate adegvata pentru multe scopuri este ilustrata in figura 12 si explicata mai jos. Metoda depinde de existenta unui canal sigur prin care cheia secreta impartasita poate fi distribuita:
1. A genereaza o cheie aleatoare K pentru semnare si o distribuie folosing canale sigure catre unu sau mai multi responsabili care vor avea nevoe de mesaje autentificate receptionate de la A.responsabilii nu sunt de incredere sa destainui cheia partajata.
2. pentru orice document M care A doreste sa semneze, A concateneaza M cu K calculand rezumatul rezultatului" h = H (M+K) si trimite documentul semnat [M]k catre oricine doreste sa revendice semnatura. (Rezumatul este un MAC). K nu va utea fi compromis de divulgarea lui h, atat timp cat functia hash i-si are valoara in totalitate ascunsa.
3. destinatarul, B, concateneaza cheia secreta K cu documentul receptionat M si calculeaza rezumatul h' = H(M+K). Semnatura este verificata daca h = h'.
Desi metoda sufera de dezavantajele listate mai sus, ea are un avantaj performanta deoarece nu implica criptare. Protocolul canalului securizat SSL descris in sectiunea 6.3 suport folosirea unei varietati mari de MAC-uri incluzand schema descrisa aici. Aceasta metoda este deasemenea utilizata in protocoul de cash electronic Millicent descris in sectiunea 6.4, care este important pentru a tine costul de procesare cat mai scazut pentru tranzactii de valori scazute.
4.3 functii rezumat securizate
Exista multe cai de a produce un tipar cu lungime fixa de bit care caracterizeaza un mesaj de marime arbtrara sau un document. Probabil ca cel mai simplu de folosit operatia XOR repetat pentru a combina piese de lungime fixa a documentului sursa. O astfel de functie este utilizata deobicei in protocoale de comunicatie pentru a produce un hash scurt de lungime fixa pentru a caracterixa un mesaj in scopurilor detectiei erorilor, dar este inadegvat ca bazele schemei semnaturii digitale. O functie de rezumat h securizata h= H(M) ar trebui sa aiba urmatoarele proprietati:
cu un M dat este usor de calculat h
cu un h dat este usor de calculat M
cu un M dat este greu de gasit in alt mesaj M', astfel incat H(M)=H(M').
Asemenea functii sunt deasemenea numite functii hash de un singur sens. Motivul pentru acest nume este evident bazat pe primele 2 proprietati. Proprietatea 3 cere o insusire aditionala: chiar daca stim ca rezultatul functiei hash, nu poate fi unic ( deoarece rzeumatul este o informatie redusa prin transformare), avem nevoie sa fim siguri ca un atacator, dat fiind un mesaj M care produce un hash h, nu poate descoperi un alt mesaj M' care deasemenea produce h. Daca un atacator poate face acest lucru atunci ei pot falsifica un document semnat M' fara a cunoaste scheia de semnatura ci doar copiand semnatura de la documentul semnat M si atasarea sa la M'.
Evident, setul de mesaje pe care hashul pe aceeasi valoare .. este restictionata si atacatorul ar avea dificultatea sa produca falsificare semnificative, dar cu rabdare ar putea reusi, deasemenea ar trebui sa fie pazita. Fezabilitatea este considerabil imbunatatita in cazul unui atac surpriza.
Alice prepara 2 versiuni M si M' a unu contract pentru Bob. M este favorabil lui Bob si M' nu.
alice face mai multe versiuni subtile pentru ambele M si M' care sunt vizual imperceptibile de la oricare din ei prn metode ca adaugarea de spatii la sfarsiturile liniilor. Ea compara hashurile pentru toate M-urile daca ea gaseste 2 care sunt la fel, ea poate trece la urmatorul pas; daca nu ea se duce la producerea versiunilor vizual imperceptibile ale celor 2 documente pana cand ea gaseste o potrivire.
cand are o pereche de documente M si M' unde hashul are aceeasi valoarea, ea va da un document favorabil M lui Bob sa-l semneze cu o semnatura digitala folosing cheia lui privata. Cand el i-l returneaza, ea va substitui versiunea potrivita M' nefavorabila, pastrand semnatura de la M.
Daca valorile noastre de hash au lungime de 64 de biti noi cerem numai 232 versiuni pentru M si M' in medie. Aceasta este prea mica pentru usurinta. Avem nevoie sa facem valorile noastre lui h de cel putin 128 biti pentru a le apara de atacuri.
Atacul cosnta intr-un paradox statistic cunoscut ca un paradox surpriza - probabilitatea gasirii perechii potrivite intr-un set dat este de departe cea mai mare decat gasirea potrivirii intr-o pereche individuala data. Stallings [1999] da derivatia statistica pentru probabilitatea ca vor fi 2 oameni cu aceeasi zi de nastere intr-un set de n oameni. Rezultatul este ca pentru un set de numai 23 de oameni sansele sunt egale, unde avem nevoie de un set de 253 de oameni pentru o sansa in care va si unul cu o zi de nastere intr-o zi data.
Pentru a satisface proprietatile afisate deasupra, o functie securizata rezumat necesita sa fie proiectata cu atentie. Operatii la nivelul bitilor folosite si secventionarea lor sunt similare cu cele gasite in criptografia simetrica, dar in acest caz operatiile nu necesita sa fie stocate, pana cand functia este definitiv intentionata sa fie reversiva, deci o functie rezumat securizata poate sa sa se foloseasca de o serie intreaga de operatii aritmeice si logice binare. Lungimea textului sursa este deobicei inclus in data rezumat.
Doua functii rezumat larg utilizate pentru aplicatii practice sunt algoritmul MD5 (numit asa deoarece este al cincilea dintr-o secventa a algoritmilor de mesaje rezumat dezvoltat de Ron Rivest) si SHA (Secure Hash Algoritm) adoptat pentru standardizare de catre US National Institute for Standards and Technology (NIST). Ambele au fost testate cu atentie si analizate si pot fi considerate secure adegvat pentru viitorul apropiat, in timp ce implementarile lor sunt rezonabil de eficiente. Noi le descriem scurt inainte Schneier [1996] si Mitchel et al. [1992] cercetare a tehnicilor de semnatura digitala si functii de mesaj rezumat in profunzime.
MD5 <> algoritmul MD5 [Rivest 1992] foloseste 4 runde, fiecare aplicand una din 4 functii nonlineare petru fiecare 16 segmente de 32 de biti a unui bloc de 512 biti a textului sursa. Rezultatul este un rezumat de 128 biti. MD5 este unul dintre cei mai eficienti algoritmi existenti.
SHA <> SHA este un algoritm care produce un rezumat de 160 biti. Este bazat pe algoritmul MD4 (care este similar cu MD5) cu unele operatii adaugate. Este substantial mai lent decat MD5, dar rezumatul de 160 de biti ofera o securitate mai puternica impotrova atacurilor surpriza.
Folosirea unui algoritm in creearea unu rezumat <> este posibila folosirea unui algoritm ca cele detaliate in sectiunea 3.1 care produce un rezumat securizat. In acest caz, cheia ar trebui publicata astfel incat algoritmul rezumat poate fi aplicat de catre oricine care doreste sa verifice semnatura digitala. Algoritmul de criptare este folosit in modul CBC, iar rezumatul este rezultatul unei combinari a valorii penultime a CBC-ului cu blocul final criptat.
4.4 standarde de certificate si autoritati de certificare
X.509 este cel mai larg utilizat format standard pentru certificate [CCITT 1988b]. Cu toate ca formatul certificatului X.509 este o parte a standardului X.500 pentru construirea directoriloarelor globale a numelor si atributelor [CCITT 1988a]. Este deobicei folosit in criptografie ca o definitie format pentru certificate liber folosite. Descriem standardul X500 in capitolul 9.
Structura si continutul unui certificat X.509 este ilustrat in Figura 13. dupa cum se poate vedea, el leaga o cheie publica de o entitate numita subiect. Lagura este in semnatura, care este emisa de o alta entitate numita emitator. Certificatul are o perioada de valabilitate care este definita de o pereche de dati. Intrarile <Nume Distins> sunt planuite a fi un nume a unei persoane, organizatie sau alta entitate impreuna cu informatia contextuala suficienta pentru a o livra unica. Intr-o implmentare X.500 completa aceasta informatie contextuala poate fi desemnata dintr-o ierarhie de directoare in care apare entitatea denumita, dar in absenta implementarilor X.500 globale ea poate fi doar un sir descriptiv.
Acest format este inclus in protocolul SSl pentru comertul electronic si este largh utilizat in practia pentru autentificarea cheilor publice, a serviciilor si a clientilor lor. Cateva companii si organizatii bine cunoscute si-au stabilit sa actioneze ca fiind autoritati de certificare (exemplu Verisign, CREN si altele, iar persoanele pot obtine certificatele de cheie publica X 509 de la ei prin sustinerea evidentei si identitatii lor. Aceasta duce la o procedura de verificare in 2 pasi pentri oricare certificat X.509:
sa obtina certificatul de cheie publica de la un emitator ( o autoritate de certificare) de la o sursa de incredere.
validarea semnaturii
Abordarea SPKI.
Abordarea X.509 este bazata pe unicitatea globala de nume distincte. A fost indicat ca fiind o tinta impracticabila ce nu poate reflecta realitatea legii actuale practica comerciala in care identitatea persoanelor nu este presupusa a fi unica dar este facuta unica de referinta catre alte persoane si organizatii. Aceasta poate fi vazuta in folosirea permisului de conducere sau intr-o scrisoare de la o banca ce autentifica numele unei persoane si adresa ( un nume singur este putin probabil a fi unic printre populatia lumii). Aceasta duce la un lant lung de verificare deoarece exista multi posibili emitenti de certificate de chei publice, iar semnatura lor trebuie validata prin intermediul unui lant de verificare care duce inapoi catre cineva cunoscut si de incredere fata de un responsabilul care efectueaza verificarea. Dar verificarea rezultata este in mare parte mai convingatoare, si multi din pasii acestui lant pot fi ascunsi la un proces prescurtat in ocazii viitoare.
Argumentele prezentate mai sus sunt baza dezvoltarilor recente ale protocoalelor SPKI (Simple Public-Key Infrastructure). Aceasta este o schema pentru creatie si management a seturilor de certificate publice. Ea permite lantului de certificate sa fie procesat folosind deductia logica de a produce certificate dobandite. De exemplu "Bob crede ca cheia publica a lui Alice este KApub" si "Carol are incredere in Bob ca cheia e a lui Alice" implica "Carol crede ca cheia publica a lui Alice este KApub".
Practicile criptografiei
In sectiunea 5.1 comparam performanta criptarii cu algoritmii hash-ului securizat descrise mai sus. Consideram ca algoritmii de criptare sunt alaturi de functiile hash-ului securizat deoarece criptarea poate fi uneori folosita ca o metoda pentru semnatura digitala.
In sectiunea 5.2 vom discuta unele probleme non-tehnice inconjurate de folosirea criptografiei. Nu este loc pentru a face dreptate intr-o vasta cantitate a discutiei politice care a avut loc pe acest subiect de cand algoritmii puternici de criptografie au aparut pentru prima data pe domeniul public, nici dezbaterile nu au atins inca multe concluzii definitive. Tinta noastra este de a aduce la cunostinta cititorului asupra acestor neintrerupte dezbateri.
5.1 Performanta algoritmilor criptografici
Figura 16 arata ca marimea cheii (sau marimea rezultatului pentru functiile rezumatului securizat) si viteza algoritmilor de criptare si a functiilor rezumat securizat pe care le-am discutat in acest capitol. Unde se permite , noi acordam doua masuri de viteza; cele din columna etichetata "extinderea vitezii" sunt bazate pe cifrele lui Schenier (cu exceptia lui TEA care este bazata pe Wheeler and Needhman 1994). In columna etichetata "PRB obtimizat" noi dam cifre bazate pe acelea publicate in Preneel 1998. In ambele cazuri noi am ajustat figurile de a lua socoteala imbunatatirilor in performanta procesorului intre acea data si sfarsitul lui 1999; cifrele pot fi luate ca estimari brute a performantei algoritmilor pe un procesor Pentium 2 la 330 Mhz. Lungimile fiecarei chei da o indicatie bruta a puterii algoritmilor - in realitate cheia da numai o indicatie a costului de calcul unui atac asupra cheii; adevarata putere a algoritmului criptografic este mult mai greu de evaluat si continua sa fie pe motivul succesului algoritmului in ascunderea sa in textului necifrat . Diferenta dintre 2 coloane de performanta este descris de faptul ca cifrele lui Schneiersunt bazate pe codul sursa C publicat in 1996 , fara nici o incercare in a optimiza codul, cifrele PRB rezultatele unui efort de cercetare substantial patentat, neimplementand optimizarea algoritmilor intr-un limbaj de asamblare. Preneel si altii [1998] au oferit o discutie folositoare asupra puterii si performanta algoritmilor principali simetrici.
Noi am oferit numai cifrele de performanta a software-ului. Eforturile considerabile sunt capabile sa produca performanta inalta si implementari ieftine hardware (pe un singur chip) si acestea sunt asteptate sa ofere o performanta mai mare.
6 Studii de caz: Needham-Schroeder, Kerberos, SSL&Millicent
Protocoalele de autentificare publicate de Needham si Schroeder[1978] sunt miezul multor tehnici de securitate. Le vom relata in sectiunea 6.1. una dintre cele mai importante aplicatii a protocolului de autentificare cu cheie secreta este sistem Kerberos, care este subiectul cazului de studiu secundar (Sectiunea 6.2). Kerberos a fost proiectat pentru a furniza autentificare intre clienti si servere in retele care formeaza un domeiu de managment singular (intraneturi).
Noi deasemenea avem 2 studii de caz ce descriu protocoalele de securitate la nivel de aplicatie care sunt importante pentru comertul electronic. Primul studiu de caz pe nivel aplicatie trateaza protocolul SSL. Aceasta a fost proiectat specific pentru a intimpina nevoia de tranzactii electronice securizate. El este sustinut de majoritatea browserilor web si servere si este angajat in majoritatea tranzactiilor comerciale care au ajut loc pe web. Studiul de caz secundar descrie protocolul Millicent, care a fost proiectat, in special pentru a intampina nevoia pentru o metoda de plata pentru microtranzactii.
6.1 protocolul de autentificare Needham-Schroeder
Protocoalele descrise in continuare au fost dezvoltate in respuns la necesitatea de a managerea cheile (si parolele) intr-un mod securizat. In acel timp lucrarea lui [Needham-Schroeder 1978] a fost publicata, serviciile de retea tocmai aparuse si era o necesitate urgenta pentru cai mai bune de a administra securitatea in retelele locale.
In retele care sunt integrate pentru scopuri de administrare, aceasta nevoie poate fi intampinata de un serviciu cu cheie care emite chei de sesiune in forma de provocari (sectiunea 2.2). Acesta este scopul protocolului cu cheie dezvoltat de Needham-Schroeder au stabilit un protocol bazat pe folosirea cheilor publice si distributia cheii care nu depinde de existenta serverelor cu cheie si este si pe viitor mai potrivite in folosirea lor in retele cu multe domenii de management independente, Internetul. Nu descriem versiunea cheie publica in acest curs, dat protocolul SST descris in sectunea 6.3 este o variatie a lui.
Needham-Schroeder au propus o solutie de autentificare si distribuirea de cheie bazata pe un server de autentificare care furnizeaza chei secrete catre clienti. Functia serverului de autentificare este de a furniza o cale sigura pentru procese pereche de a obtine chei partajate. Pentru a face acest lucru serverul trebuie sa comunice cu clientii lui folosind mesajele criptate.
Needham-Schroeder cu chei secrete<> In modelul lor, desfasurarea unui proces din partea unui responsabil A care doreste sa initieze o comunicatie sigura cu un alt proces actionand in numele unui responsabil B care poate obtine o cheie pentru acel scop. Protocoul este descris pentru 2 procese arbitrare A si B, dar in sistemele client server, A este mai mult a fi un client initiand o secventa de cereri catre un oarecare server B. Cheia este furnizata catre A in 2 forme, una , aceea ca A poate sa o foloseasca pentru a cripta mesajele care le trimite catre B, iar cealalta varianta este aceea ca cheia poate fi transmisa securizat catre B. (ultima varianta este criptata intr-o cheie care este cunoscuta de B si nu de A, de aceea B poate sa o decripteze si astfel nu este compromisa in timpul transmisiei).
Serverul de autentificare S pastreaza un tabel continand un nume si o cheie secreta pentru fiecare responsabil cunoscut sistemului. Cheia secreta este folosita numai pentru autentificarea proceselor client de catre serverul de autentificare si de a transmite mesaje securizat intre procese client si serverul de autentificare.Cheia nu este niciodata dezvaluita catre o parte terta si este transmisa prin retea cel putin odata, cand este generata. (Ideal, o cheie ar trebui intotdeauna sa fie transmisa prin alte mijloace, ca hartie, mesaj oral, evitand orice expunere in retea). O cheie secreta este echivalentul unei parole utilizata pentru a autentifica utilizatori in sisteme centralizate. Pentru responsabili umani, numele este memorat in rubrica 'user name' si 'password'. Amandoua sunt furnizate de utilizator la raspunsul proceselor client actionand in numele utlizatorului.
Protocolul este bazat pe generarea si transmiterea tichetelor de serverul de autentificare. Un tichet este un mesaj criptat continand o cheie secreta intr-o comunicare intre A si B. Noi aranjam mesajele intr-un protocol de Needham-Schroeder. Serverul de autentificare este S.
NA si NB sunt nonce-uri. Un nonce este o valoare intreaga care este adaugata unui mesaj pentru a demonstra prospetimea sa. Nonces-uri sunt folosite doar odata si sunt generate la cerere. De exemplu, nonces-urile pot fi generate ca o secventa de valori intregi sau prin citirea ceasului la masina de trimis.
Daca protocolul este cu succes complet, A si B pot fi sigure ca nici un mesaj
criptat in KAB receptioneaza mesaje venite de la alte persoane, si ca orice mesaj criptat in KAB pe care ei i-l trimit pot di intelesi numai de altii sau de S (si S este asumat demn de incredere). Aceasta este deoarece singurele mesaje care au fost trimise continand continand KAB au fost criptate in cheia secreta lui A si chea secreta lui B.
Exista o problema in acest protocol si anume ca B nu are nici un motiv de a crede ca mesajul 3 este recent. Un intrus care reuseste sa obtina cheia KAB si face o copie a tichetului si autentificatorului KB (ambele care ar fi putut fi lasate intr-o locatie de depozitare expusa de catre un program client esuat sau neglijent care rula sub autoritatea lui A), le poate utiliza pentru a initializa un schimb ulterior cu B, dandu-se drept A. Pentru ca acest atac sa aibe loc, valoarea veche a lui KAB trebuie sa fie compromisa; in terminologia de astazi, Needham-Schroeder nu au inclus aceasta posibilitate in lista lor cu amenintari, iar consensul opiniei este ca ar trebui sa fie facut. Problema poate fi remediata prin adaugarea unui "nonce" sau stampila cu data la mesajul 3, astfel incat el devine: KBpub .B decripteaza mesajul si verifica t daca este recent. Aceasta este solutia adoptata in Kerberos.
6.2 Kerberos
Kerberos a fost dezvoltat de MIT in anii 1980 ca sa ofere o gama de facilitati de autentificare si facilitati de securitate pentru utilizarea in reteaua de campus al lui MIT sau alte retele intranet. A trecut prin multe revizii si imbunatatiri in mica experienta si reactia din partea organizatiilor de utilizatori. Versiunea 5 al lui Kerberos, pe care noi le vom descrie in continuare, este calea catre standardele internetului (RFC 1510) si este in prezent folosita in multe companii si universitati. Codul sursa pentru o implementare a lui Kerberos este pusa la dispozitie de catre MIT; este inclusa in OSF Distribuited Computing Environment (DCE) si in Microsoft Windows 2000 ca un serviciu de autentificare.
O extensie a fost propusa pentru a incorpora folosirea certificatelor cu cheie publica pentru autentificarea initiala a responsabililor (pasul A sin Figura 16).
Figura 16 evidentiaza arhitectura procesului. Kerberos trateaza 3 tipuri de obiecte de securitate:
Tichet: Un simbol emis catre un client de serviciul Kerberos de recunoastere a tichetului pentru prezentare la un server particular, verficand faptul ca emitatorul tocmai a fost autentificat de Kerberos. Tichetele includ un timp de expirare si o cheie sesiune nou generata pentru folosirea ei de catre client si de catre server.
Autentificarea: un simbol construit de catre un client si trimis catre un server pentru a oferi identitatea utilizatorului si valabilitatea oricarei comunicatii cu un server. Un autentificator poate fi folosit numai o singura data. Ea contine numele clientului si o stampila de timp si este criptata cu cheia de sesiune adegvata.
Cheia de sesiune: o cheie secreta aleator generata de catre Kerberos si emisa de un client pentru utilizare cand se comunica cu un erver particular. Criptarea nu este mandatara pentru toate comunicatiile cu serverele; cheia sesiune este folosita pentru criptarea comunicatiei cu acele servere care o cer si pentru criptare toti autentificatorii (a se vedea deasupra).
Procesele client trebuie sa aiba un tichet si cheie sesiune pentru fiecare server pe care ei o folosesc. Ar fi impracticabil sa se furnizeze un tichet nou si o cheie noua pentru fiecare intercatiune client server. De aceea majoritatea tichetelor sunt garantate clientilor cu un timp de viata in jur de cateva ore, de aceea ei pot fi folositi in interactiunea cu un responsabil a unui server pana cand expira.
Un server Kerberos este cunoscut ca un centru de destributie a cheii (KDC). Fiecare KDC ofera un serviciu de autentificare (AS) si un serviciu de recunoastere a tichetului TGS. La logare utilizatorii sunt identificat de AES folosind o variatie a retelei securizate pentr-o metoda de parola, si procesul client care actioneaza in numele utilizatorului este furnizat cu un tichet de recunoasterea tichetului si o cheie de sesiune pentru comunicarea cu TGS. Ulterior procesul client original si descendentii lui poate folosi un tichet de garantare a tichetului pentru a obtine tichete si chei de sesiune pentru servicii specifice de la TGS.
Protocolul Needham-Schroeder este urmat indeaproape in Kerberos, cu valori de timp ( intregi reprezentand o data si un timp) folositi ca "nonces". Acestea servesc 2 scopuri:
In continuare vom descie protocoale Kerberos in detaliu folosinf notatie definita. Prima data, vom descrie protocolul pe care clientul obtine un tichet si o cheie de sesiune pentru a accesa TGS.
Un tichet Kerberos are o perioada fixa de valabilitate incepand la timpul de start t1, si terminandu-se la t2. un tichet pentru un client C de accesare a unui server S ia forma:
KS , care le vom nota ca KS
Numele clientului este inclus in tichet pentru a evita o posibila utilizare da catre impostori, cum vom vedea mai tarziu. Pasul si numerele mesajului in figura 16 corespund celor din descrierea tabelului de mai jos. De notat ca mesajul 1 nu este criptat si nu include parola lui C. Contine o nonce care este folosit sa verifice valabilitatea unui raspuns.
Mesajul 2 este cateodata numit provocare deoarece el prezinta doritorul cu informatia care este folositoare numai daca el cunoaste cheia secreta a lui C, KC. Un impostor care incearca sa se dea drept C prin trimiterea unui mesaj 1 nu poate sa ajunga mai departe , deoarece ei nu pot decripta mesajul 2. Pentru responsabii care sunt utilizatori, KC este o versiune legata de versiunea parolei utilizatorui. Procesul client va cere utilizatorul sa tipareasca parola lor si va incerca sa decripteze mesajul 2 cu ea. Daca utilizatorul da parola corecta procesul client obtine cheia de sesiune KCT si un tichet valid pentru serviciul de recunoastere a tichetului; daca nu, el va obtine ceva nedeslusit.
Serverele au chei secrete pentru ele insasi, cunoscute numai de procesul server pincipal si de serverul de autentificare.
Cand un tichet valid a fost obtinut de la un serviciu de autentificare clientul C il poate folosi pentru a comunica cu serviciul de recunoastere a tichetului pentru a obtine tichete pentru alte severe in orice perioade de timp pana la expirarea tichetului. Astfel, pentru a obtine un tichet pentru orice server S, C construeste un autentificator criptat in KCT de forma:
KCT care va fi notat ca KCT si trimite o cerere catre T:
Apilcatia lui Kerberos. Kerberos a fost dezvoltat pentru utilizarea in proiectul Athena la MIT - o facilitate de calcul legata intr-o retea la marime de campus, pentru educarea studentilor cu multe statii de lucru si servere furnizand un serviciu pentru un numar mai mare de 5000 de utilizatori. Mediul este realizat astfel incat nici increderea meritata a clientilor si nici securitatea retelei si a masinilor de lucru care ofera servicii de retea nu pot fi asumati - de exemplu, statiile de lucru nu sunt protejate impotriva instalarii sistem software dezvoltat de utilizarori, iar masinile server (altele decat serverul Kerberos) nu este necesar sa fie securizate impotriva interferentelor fizice cu configuratia lor software.
Kerberos ofera virtual toata securitatea in sistemul Athena. Este folosit pentru a autentifica utilizatori si alti responsabili. Majoritatea serverelor care ruleaza pe retea au fost extinse astfel incat sa ceara un tichet de la fiecare client la inceputul fiecarei intercatiuni client-server. Acestea includ fisiere de stocare (NFS si Andrew File System), posta electronica, si logare la distanta si printare. Parolele Userilor sunt cunoscute numai de catre utilizator si serviciul de autentificare. Serviciile au chei secrete care sunt cunoscute numai de catre Kerberos si de catre serverele care furnizeaza serviciul.
Noi vom descrie felul in care Kerberos este aplicat autentificarii utilizatorilor la logare. Folosirea lui este de a securiza serviciul de fisiere NFS descris in capitolul 8.
Logarea cu Kerberos <> Cand un utilizator se logheaza la o statie de lucru, programul de logare trimite numele utilizatorului catre serviciul de autentificare Kerberos. Daca utilizatorul este cunoscut de serviciul de utilizare si raspunde cu o cheie de sesiune si un nonce criptat in parola utilizatorului si un tichet pentru TGS. Programul de logare incearca apoi sa decripteze cheia de sesiune si nonce-ul folosind parola pe care utilizatorul a tiparit-o pe prompterul de parola. Daca parola e corecta programul de logare obtine cheia de sesiune si nonce-ul. Programul verifica nonce-ul si va stoca cheia de sesiune cu tichetul pentru urmatoarea utilizare cand comunica cu TGS. Din acest punct programul de logare poate sterge parola user-ului din memoria lui, deoarece tichetul serveste la autentificarea utilizatorului. O sesiune de logare este apoi pornita pentru utilizator pentru utilizator. Nota: Parola nu este niciodata expusa interceptarii pe retea - ea este retinuta in statia de lucru si stearsa din memorie imediat ce este introdusa.
Accesarea serverelor cu Kerberos <> De fiecare data cand un program ruleaza pe o statie de lucru, el cere un tichet pentru serviciu de la serviciul de recunoastere a tichetului. De exemplu cand un utilizator UNIX doreste sa se logheze la un computer la distanta, programul de comanda rlogin de pe statie de lucru a utilizatorului obtine un tichet de la serviciul de recunoastere a tichetului pentru a accesa serviciul de retea rlogind. Programul de comanda rlogind trimite tichetul impreuna cu un nou autentificator. Intr-o cerinta la procesul rlogin pe un calculator unde utilizatorul doreste sa se logheze. Programul rlogind decripteaza ichetul cu cheia secreta a serviciului r login si verifica validitatea tichetului ( daca viata tichetului nu a expirat). Masinile server trebuie sa aiba grija sa stocheze cheile lor secrete intr-un depozit care este inaccesibil intrusilor.
Programul rlogind foloseste apoi cheia de sesiune inclusa in tichet pentru a decripta autentificatorul si verifica daca autentificatorul este nou. Odata ce programul rlogin este satisfacut de faptul ca tichetul si autentificatorul sunt valide, atunci nu este nevoie sa verifice numele utilizatorului si parola deoarece identitatea userului este cunoscuta de programul rlogind iar o sesiune de logare este stabilita petru acei useri pe masina distanta.
Implementarea lui Kerberos <> Kerberos este implementat ca server ce ruleaza pe o masina securizata. Un set de librarii este furnizat pentru folosirea lor in aplicatii client si servicii. Algoritmul de criptare DES este folosit, dar este implementat ca modul separat care poate fi usor inlocuit.
Serviciul Kenberos este scalabil - lumea este divizata in domenii separate de autoritate, numite domenii, fiecare cu serverul seu Kerberos. Majoritatea responsabililor sunr inregistrati intr-un singur domeniu, dar serviciile de recunoastere a tichetelor Kerberos sunt inregistrate in toate domeniile. Responsabili se pot autentifica singuri la servere in alte domenii prin serverul lor local de recunoastere a tichetelor.
In interiorul unui singur domeniu pot fi cateva servere de autentificare, fiecare dintre acestea au copii ale aceleiasi baze de date de autentificare. Baza de date de autentificare este copiata de o tehnica master-slave simpla. Actualizarile sunt aplicate copiei principale (master) de un serviciu de managament a bazei de date Kerberos (KDBM) care ruleaza numai pe o masina master. KDBM administreaza cerintele de la utilizatori pentru a schimba parolele lor si cerintele administratorilor de sistem de adauga sau sterge responsabili si sa le schimbe parolele.
Pentru a face aceasta schema transparent utilizatorilor, timpul de viata a tichetelor TGS trebuie sa atat de lungi cat cea mai lunga sesiune de posibila de logare, deoarece folosirea unui tihet expirat va rezulta o respingere in cerintele serviciului si singurul remediu este pentru utilizatori sa reautentifice la sesiunea de logare si apoi sa ceara tichete server pentru toate serviciile aflate in functiune. In practica, viata tichetului dureaza aproximativ 12 ore.
Criticile Kerberos <> Versiunea 5 al protocolului Protocolul descris mai sus contine cateva imbunatatiri proiectate de a trata criticile versiunilor anterioare. Cea mai importanta critica a vresiunii 4 a fost ca nonce-urile folosite in autentificatori sunt implementati ca stampile de timp, si protectia impotriva reluarea autentificatorilor depinde de ultima sincronizare slabita a clientilor si ceasurilor serverelor. Mai mult de atat, daca un protocol de sincronizare este utilizat sa aduca un client si niste ceasuri de servere intro sincronizata slabita, protocolul de sincronizare trebuie sa fie el insusi securizat impotriva atacurilor de securitate. A se vedea capitolul 10 in legatura cu protocoalele de sincronizare de ceas.
Securitatea lui Kerberos depinde de viata cu sesiune limita - perioada validitatii tichtelor TGS sunt general limitate la cateva ore; perioada trebuie sa fie aleasa sa fie indeajuns de lunga ca sa evite intreruperi inconveniente a serviciului dar indeajuns de scurte sa ofere ca utilizatori care tocmai au fost de-registrati sau subgradati sa nu continua sa foloseasca resursele pentru o perioada de cel mult scurta. Aceasta ar putea cauza dificultati in unele medii comerciale, deoarece necesitatea urmatoare pentru utilizator sa furnizeze un set de detalii de autentificare la un punct arbitrar in interactiune ar putea intruziona in aplicatie.
6.3 securizarea tranzactiilor electronice cu socluri sigure
Protocolul Secure Socket Layer (SSL) a fost original dezvoltat de Netscape in 1996 si
propus ca un standard spefic sa faca fata nevoilor descrise in sus. O versiune extinsa al lui SSL a fost adoptata recent ca un standard Internet sub protocolul Transport Layer Security (TLS), descris in RFC 2246 [Dierk and Allen 1999]. SSL este suportat de majoritatea browserelor si este larg folosit in comertul pe Internet. Trasaturile sale sunt:
Algoritmi Negociabili si de autentificare de criptare <> Intr-o retea deschisa nu ar trebui sa asumam ca toate partile folosesc acelasi software client sau ca tot software-ul client si server includ un algoritm particular de criptare. In realitate, legile unor tari incearca sa restrictioneze utilizarea unor algoritmi anumiti acelor tari singure. SSL a fost proiectat astfel incat algoritmii folosit la criptare si autentificare sunt negociate intre procese si cele 2 sfarsituri conexiunii in timpul darea de mana initiala. Ar putea iesi ca ei nu au algoritmi suficienti in comun si in acel caz conexiunea va cade.
Comunicarea securizata <> Pentru a face fata nevoii comunicarii securizate fara negocierea anterioara sau ajutorul din partile terte, canalul securizat este stabilit folosind un protocol similar cu schema hibrida descrisa anterior. Comunicatia unencriptata este folosita la schimburile initiale, si criptografia cu cheie publica si schimband in final la criptografie cu cheie secreta odata cand o cheie partajata a fost stabilita. Fiecare comutatie este optionala si precedata de o negociatie.
Astfel canalul securizat este pe indeplin configurabil, permitand comunicarea in fiecare directie ca sa fie criptata si autentificata dar nenecesitand-o, astfel resursele de calcul nu e nevoie sa fie consumate in efectuarea criptarii nonnecesare.
Detaliile protocolului SSL sunt publicate si standardizate si sunt mai multe librarii software si scule care sunt disponibile sa o suporte, cateva dintre ele in domeniul public. El a fost incorporat intr-o gama larga de software de aplicatie si securitatea lor a fost verificata de revizie independenta.
SSL consta din 2 straturi (Figura 17): din stratul SSL Record Protocol, care implementeaza un canal securizat, criptand si autentificand mesaje transmise prin oricare protocol orientat pe conexiune: si un strat de dare de mana, continand protocolul SSL de dare de mana si alte 2 protocoalerelationate care stabilesc si mentin o sesiune SSL (care este, un canal securizat) intre un client si un server. Ambele sunt deobicei implementate de librariile software si nivelul aplicatiei in client si server. Protocolul SSL de inregistrare este un strat de nivel sesiune; el poate fi folosit sa transfere date de nivel de aplicatie transparent intre o pereche de procese in timp ce garanteaza secretul ei, integritatea si autenticitatea. Acestea sunr exact proprietatile care le specificam pentru canalele securizate in modelul nostru de securitate (Sectiunea 2.3.3), dar in SSL sunt optiuni pentru partenerii de comunicare sa aleaga oricare sau sa nu desfasoare decriptare si autentificare a mesajelor in fiecare directie.fiecare sesiune securizata este data un identificator si fiecare partener poate sa depoziteze identificatori de sesiune intr-un cufar pentru o ulterioara reutilizare, evitand globalizarea stabilirii unei sesiuni noi cand o alta sesiune securizata cu acelasi partener este necesara.
SSL este larg utilizat sa adauge un strat de comunicatie securizat deasupra protocoalelor de nivel la aplicatie. Protocolul a fost prima data publicat in 1994, si reviziile au fost incorporate sa produce 2 versiuni. SSL 3.0 este subiectul unei standardizari propuse Netscape. Este probabil cel mai larg folosit sa securizeze interactiunile HTTP pentru utilizarea comertului in Internet si altor aplicatii sensibile la securitate. Protocolul este implementat pe cale virtuala de toti browserii web si serverele web: folosul prefixului procolului https: in URLs initiaza stabilirea unui canal SSL securizat intre un browser si un server web. El deasemenea a fost larg desfasurat sa ofere implementatie sigure al lui Telnet, FTP si alte mai multe protocoale de aplicatii. SSL este standardul de facto pentru utilizarea in aplicatie care cer canale securizate, si acolo este o alegere larga a implementarilor disponibile, ambele domeniu public si comercial, cu APIs pentru CORBA si Java.
Protocolul de dat mana SSL este ilustrat in figura 18. Darea de mana este efectuat asupra unei conexiuni existente. Incepe clar si stabileste o sesiune SSL prin tranzactionarea optiunilor acceptate si parametrii necesari sa efectueze criptarea si autentificarea. Secventa darii de mana variaza depinzand indiferent ca autentificarea serverului si clientului este necesara. Protocolul darea de mana poate deasemenea sa fie invocat mai tarziu sa schimbe specificarea unui canal sigur, de exemplu, comunicatia poate incepe cu autentificarea mesajului folosind coduri de autentificarea mesajelor numai. Ulterior, criptarea poate fi adaugata. Aceasta este obtinuta prin efectarea protocolului darea de mana din nou ca sa negocieze unei specificatii de cod folosind canalul existent.
Darea de mana initiala SSL este potential vulnerabil atacurilor om prins la mijloc descrise in sectiunea 2.2, scenariul 3. Pentru a proteja impotriva lor, cheia publica folosita sa verifice primul certificat receptionat poate sa fie transmis de un canal separat de exemplu, browserele si alte softuri de internet distribuite pe un CD ROM pot include un set de chei publice pentru cateva autoritati certificate bine cunoscute. Alta aparare pentru clienti ale serviciilor bine cunoscute este bazata pe includerea numele domeniu de serviciu in lor cu cheie publica certificate-client ar trebui sa se ocupe numai cu serviciul la adresa IP corespunzand numelui domeniu.
SSL suporta o varietate de optiuni pentru functiile de criptografie. Acestea sunt cunoscute colectiv ca o suita de cod. O suita de cod include o singura alegere pentru fiecare din atribute aratate in figura 19
O varietate de suite cod sunt preincarcate, cu identificatori standard in client si server. In timpul baterii de mana, serverele ofera clientul o lista de identificatori suita cod care o are valabila si clientul raspunde selectand una din ele ( sau da o indicatie de eroare daca nu are nici una care se potriveste). In nivel ei deasemenea sunt de acord cu o metoda de compresie optionala si o valoare de inceput aleator pentru functii bloc CBC de criptare (sectiunea 3).
In continuare, partenerii se autentifica pe fiecare optional prin tranzactia certificatelor semnate cu cheie publica in format X.509. aceste certificate pot fi obtinute dintr-o autoritate de cheie publica sau ei pot fi generati temporar generati pentru acel scop. In orice caz, macar o cheie publica trebui es a fie valabila pentru utilizare in urmatorul nivel de dare de mana.
Un partener genereaza ulterior un secret pre-master si o trimite celuilalt partener criptata cu cheia publica. Un secret pre master este o valoare aleatoare mare care este folosita de ambii parteneri ca sa genereze cele 2 chei sesiune (numite chei de scriere) pentru criptarea datelor in fiecare directie si secretele autentificare a mesajelor sa fie folosite pentru autentificarea mesajului. Cand totul este gata, o sesiune securizata incepe.
Aceasta este declansata de mesajele ChangeCipherSpec tranzactionate intre parteneri. Acestea sunt urmate de mesajele terminate. Odata ce mesajele terminate au fost tranzactionate, toata comunicatia ulterioara este criptata si semnata conform suitei cod alese cu cheile in acord.
Figura 20 arata operatia protocolului de inregistrare. Un mesaj pentru transmisie este initial fragmentat in blocuri de o dimensiune realizabila, iar apoi blocurile sunt compresate optional. Compresia nu este strict o carcateristica a comunicatiei securizate, dar este oferita aici deoarece un algoritm de compresie poate impartasi util ceva din munca procesarii datei cu criptarea si algoritmii digitali de semnatura. Cu alte cuvinte, o elaborare de transformari de date poate fi setata in stratul de inregistrare SSL care va efectua toate transformarile necesare mai eficient care ar putea fi facute independent.
Sumar<>SSL ofera o implementare practica a unei scheme de criptari hibride cu autentificare si tranzactie de cheie bazate pe chei publice. Deoarece codurile sunt negociate in darea de mana, ea nu depinde de valabilitatea a unui algoritm particular. Nici nu depinde de serviciile securizate in timpul stabilirii sesiunii. Singura cerinta este pentru certificatele de cheie publica emise de o autoritate care este recunoscuta de ambele parti.
Deoarece protocolul si implementarea de referinta au fost publicate [Netscape 1996], a fost subiectul de dezbatere si de analiza. Cateva amendamente au fost facute la schitele recente, si au fost aprobate larg ca un standard de valoare. SSL este integrat in majoritatea serverelor web si browserelor web si sunt folosite in alte aplicatii ca Telnet si FTP securizate. Implementarii domeniu public si comerciale [www.rsasecurity.com, Hirsch 1997, www.openssl.org] sunt larg valabile in forma librariilor si pluginurilor browserilor.
6.4 Tranzactii electronice de valoare-mica: protocolul Millicent
Un sistem de plata pe internet este necesar sa fie eficient in cost si convenient pentru achizitionarea a serviciilor de pret mic si accesul resurselor electronice la preturi in jurul de 0.1-100 centi, ca de exemplu sa puna utilizatorii sa plateasca pentru accesul paginilor web, transmisii email sau convorbiri telefonice pe internet. Majoritatea schemelor de plata ca tranzactii prin carte de credit sunt prea scumpe pentru aceste scopuri.
Aici descriem solutia oferta de schema Millicent [Glassman si altii 1995]. Schema angajeaza forma simpla a pe baza semnaturii cu cheie secreta pentru a reduce costul de calcul. Criptarea este folosita numai unde intimitatea este necesara.
Sistemele de plata existente si lipsele lor <> autorii protocolul Millicent au sumarizat lipsurile metodelor de plata disponibil actual ca urmatoarele. Toate vor necesita securitate criptografica, costurile de calcul si comunicatie variaza, dar sunt semnificative in toate cazurile.
Cartile de credit: problema folosirii cartilor de credit pentru tranzactii mici este costul tranzactiilor inalte rezultand din nevoia de a interactiona cu sistemul central al companiei cartii de credit, care este exacerbata de costurile aditionale create sa asigure tranzactiile electronice si de alte caracteristici ca pregatirea specificarilor date clientilor.
Clientii mentin conturi cu vanzatori: clienti au nevoie sa stabileasca un cont cu un vanzator in fata primei tranzactii. Costurile tranzactiei sunt mici. Un vanzator trebuie sa mentina intrarea clientului intr-o baza de cont intr-o perioada destul de lunga.
Agregarea tranzactiilor: cand un client face mai multe achizitii vanzatorul poate tine inregistrari si sa le factureze la sfarsitul unei perioade. Aceasta este similar intretinerii conturilor dar poate sa salveze ceva din costurile de aranjare. Vanzatorul trebuie sa tina inregistrarile chiar pentru clienti care fac o singura tranzactie , si costul acesteia poate depasi venitul.
Cash digitali: asemanator Cashului conventional, cashul digital - ca de exemplu luari de valori digitale, emise de banca sau broker - ar trebui sa ofere sensuri eficiente de plata pentru tranzactii mici, dar dezvoltatorii cash-ului digital trebuie sa rezolve problema cheltuirii duble. Cheltuiala dubla este o consecventa a faptului ca detinatorul unui semn digital poate sa faca oricare numar de copii nedetectabile. Asadar, dovezile trebuie sa fie unic identificate si ele trebuie sa fie validate ca necheltuite in timpul utilizarii. Provocarea este sa se planuiasca o schema de validare care este scalabila, sigura si efectiv la cost in toate circumstantele.
Schema Millicent <> proiectul Millicent a dezvoltat o schema pentru distributia securizata si utilizarea adeverintei o forma specializata a cash-ului digital care este proiectat pentru utilizarea tranzactiilor de valori mici. Millicent este in afara interesului aici deoarece implica mai multe tehnici de securitate descrise in acest capitol cu un efect care este destul de diferit de cele SSL-ului si alte sisteme de securitate.
Adeverinta este o forma de cash-ului digital care este valid numai pentru un vanzator specific. Ea este proiectata sa ofere urmatoarele caracteristici:
Proiectarea schemei Millicent este scalabila deoarece viecare server al vanzatorului este resonsabil numai pentru validarea adeverintei care este emisa. Clientii pot achizitiona adeverinta direct de la vanzator, sau de la un broker care detine adeverinta pentru multi vanzatori, de o tranzactie conventionala in executie.
Adeverinta, cursul valutar specific vanzatorului introdus de Millicent, este reprezentat de semnele digitale cu urmatorul format:
Campul de proprietati este disponibil pentru utilizari determinate de vanzator - ar putea de exemplu sa includa tara clientului sau statul de rezidenta, astfel incat cea mai buna taxa sa fie aplicata. Certificatul este o semnatura digitala protejand toate campurile in adeverinta impotriva modificarilor. Semnatura este produsa de metoda MAC descrisa in Sectiunea 4.2. Scopul campurilor ramase vor iesi la iveala in urmatoarea descriere.
Adeverinta este generata si distribuita de Brokeri - Brokerii sunt servere care trateaza adeverinta in cantitate, usurand clienti si vanzatori ai implicati. Brokerii tranzactioneaza adeverinta in schimbul banilor reali, cumparand adeverinta (sau dreptul de a genera adeverinta) din vanzatori la un discount si vanzarea adeverintei la clienti impotriva cartii de credit sau alte plati. Clienti pot cumpara adeverinta oentru mai multi vanzatori de la un singur broker, totalitarizand platile si platind la sfarsitul unei perioade.
Scenariu <> Asa se face o tranzactie de achizitionare electronica folosind adeverinta: un client Alice este interesata sa cumpere un produs mic sau serviciu ( de exemplu un apel telefonic sau o pagina web) de la un vanzator Venetia. Alice poate deja sa detina adeverinta potrivita pentru tranzactii cu Venetia care este lasata de la tranzactiile anterioare; daca nu, Venetia i-i da ei URL-ul unui broker, Bob, care se ocupa in adeverinta Venetiei ( noi o vom numi adeverinta-V). Alice compara ceva adeverinta-V de la Bob.
Alice care trimite Venetia o cerinta de achizitie, atasand o bucata de adeverinta-V cu o valoare indeajuns mare sa acopere achizitia care ea doreste sa faca. Venetia valideaza verificarea-adeverintei care este ID-ul adeverintei nu este in lista ei de adeverinta care este deja platita si unde ID-ul clientului in adeverinta este ID-ul lui Alice. Daca valoarea este mai mare ca plata necesara , Venetia face o bucata noua de adeverinta sa acopere diferenta si o trimite lui Alice ca schimbare.
Brokerii pot obtine adeverinta vanzatorului in mai multe cai. In cel mai simplu caz, Venetia produce adeverinta si o vinde lui Bob la un discount intr-o tranzactie in cantitate. Alternativ, Venetia i-l imputerniceste pe Bob sa produca adeverinta in numele ei. In acest model, Venetia nu stie de adeverinta pana cand ea o primeste in plata de la clienti. Din cand in cand ea i-l contacteaza pe Bob si i-i trimite identificatorii adeverintei care a primit-o de la clienti si Bob i-i plateste un pret redus.
Tinte <> 55 of 58
Copyright © 2024 - Toate drepturile rezervate