Securitatea plăților CRIPTOGRAFIA în sisteme electronice de plățiVictor-Valeriu Patriciu Așa cum am promis în numerele anterioare ale gazetei, ne vom opri asupra unor aplicații ale sistemelor criptografice, simetrice sau cu chei publice, în serviciile de rețea. Vom începe cu unele dintre cele mai importante aplicații în contextul folosirii tehnologiilor informatice în comerț și e-comerț: sistemele de plăți electronice. Extraordinara dezvoltare a interconectivității calculatoarelor în Internet, în toate segmentele societății, a condus la o tendință tot mai evidentă a companiilor de a folosi aceste rețele în aria unui nou tip de comerț, comerțul electronic în Internet, care să apeleze, pe lângă vechile servicii amintite și altele noi. Este vorba, de exemplu, de posibilitatea de a se efectua cumpărături prin rețea, consultând cataloage electronice "on" pe Web sau cataloage "off" pe CD-ROM și plătind prin intermediul cărților de credit sau a unor portmonee electronice. Pentru alții, comerțul Internet reprezintă relațiile de afaceri care se derulează prin rețea între furnizori și clienți, ca o alternativă la variantele de comunicații "tradiționale" prin fax, linii de comunicații dedicate sau EDI pe rețele cu valoare adăugată. Acest nou tip de comerț a stimulat însă cererea pentru noi metode adecvate de plată. În cadrul noului concept, denumit sugestiv "satul global" (global village), dezvoltarea unor activități comerciale între participanți situați la mari distanțe geografice unii de alții nu poate fi concepută fără folosirea unor sisteme electronice de plăți. Aceste noi mijloace de plată permit transferarea comodă, sigură și foarte rapidă a banilor între partenerii de afaceri. De asemenea, înlocuirea monedelor și bancnotelor, actualele forme tradiționale de numerar, prin ceea ce denumim bani electronici, conduce, pe lângă reducerea costurilor de emitere și menținere în circulație a numerarului, și la o sporire a flexibilității și securității sistemelor de plăți. Sistemele electronice de plăți trebuie să atingă niveluri ridicate de securitate, viteză, caracter privat și confidențial, descentralizare și internaționalizare și să fie unanim acceptate atât de cumpărători cât și de comercianți sau afaceriști. O trăsătură comună a majorității acestor soluții o constituie utilizarea tehnicilor criptografice, care asigură confidențialitatea, autenticitatea și integritatea mesajelor transferate între entitățiie implicate. O prezentare a metodelor criptografice clasice (cu cheie simetrică secretă) și a celor cu chei publice, am făcut în numerele trecute ale lui G-Info.
Cardul în sistemele electronice de plățiBank Americard (în prezent VISA International), emis de Bank of America, reprezintă primul card emis în 1960 pentru revoluționarea modului de achiziționare de bunuri și servicii. În zece ani s-a ajuns la peste 20 milioane de deținători de astfel de carduri, în 1980 numărul a crescut la 73 milioane, iar în 1991 peste 100 milioane. În anul 1966, 17 bănci finanțează Asociația Interbancară de Carduri, care se ocupa cu procedurile de autorizare, clearing și decontare. În 1979 ea devine Mastercard, care cunoaște, la fel cu VISA, o dezvoltare rapidă: peste 90 de milioane de utilizatori în 1990. De ce a cunoscut acest nou instrument de plată o așa de mare dezvoltare? - Pentru deținătorii de carduri: ușurința în utilizare, renunțarea la purtarea numerarului, renunțarea la inconvenientele folosirii cecurilor, obținerea de credite instantanee, amânarea plăților cu circa o lună, sumele cheltuite se pot urmări cu ușurință la sfârșit de lună etc. - Pentru comercianți: ușurința încasărilor, autorizarea simplă a vânzărilor, creșterea volumului vânzărilor, acordarea de fapt de vânzări pe credit la scară foarte mare. - Pentru bănci: cardul reprezintă o modalitate simplă de a acorda credite și a încuraja clienții să se împrumute, veniturile băncii sporesc prin dobânzile încasate și prin comisioanele pecepute comercianților pentru serviciile de prelucare și decontare a tranzacțiilor cu carduri și pot avea clienți ce locuiesc la mari distanțe de bancă etc. La nivel mondial, se folosesc următoarele sisteme de carduri mai cunoscute: - VISA International - este o organizație non-profit, alcătuită din organisme financiare cum ar fi bănci comerciale, case de economii etc. VISA este o marcă înregistrată, cu faimoasele benzi colorate în albastru, alb și galben și care permite decontarea tranzacțiilor internaționale. VISA domină actualmente piața internațională a cardurilor. Principalele tipuri de carduri VISA existente la ora actuală sunt VISA Classic, VISA Business, Gold/Premier, VISA Cash, VISA Travellers Cheques. - Europay International - este o organizație non-profit care cuprinde MasterCard International (cu sediul în SUA) și Eurocard International (cu sediul în Belgia). Se emit două tipuri de carduri: MasterCard și Eurocard. Principalele tipuri de carduri Europay existente la ora actuală sunt MasterCard/Eurocard Classic, Eurocard, Eurocheque, Maestro, Europay CLIP. - American Express - este un sistem global de plăți prin carduri, promovat de banca americană American Express. Principalele tipuri de carduri Europay existente la ora actuală sunt Business, Gold, Classic.
Tipuri de carduri Cardurile reprezintă instrumente de decontare care permit posesorului achiziționarea de bunuri și servicii, fără prezența efectivă a numerarului. Indiferent de tip și funcții, cardurile au anumite trăsături comune: - Suport fizic de plastic, cu dimensiuni standard; - Numele emitentului, numărul cardului, perioada de valabilitate, numele posesorului - inscripționate pe avers prin tipărire, gofrare sau gravare cu laser; - Sigla emitentului, holograma de securitate, logo-ul organizației, pe avers; - Banda magnetică pentru criptarea elementelor de securitate și un spațiu pentru semnătura posesorului, pe revers.
Cardurile se pot clasifica pe mai multe criterii: A. În raport cu modul de stocare a caracteristicilor de securitate: - Cardurile cu bandă magnetică conțin pe 3 piste, informații criptate despre utilizator, emitent, algoritmul de codare etc; - Cardurile cu microprocesor (inteligente) - smart-carduri - au stocate în chip datele de securitate și permit funcționarea ca portofel electronic.
B. În raport cu sursa de acoperire a cheltuielilor: - Debit-Cardurile asigură utilizatorului achiziționarea de bunuri sau servicii sau retrageri de numerar, cu condiția prezervării unor fonduri într-un cont de card, și efectuarea de cheltuieli în limita soldului disponibil; deși aceste carduri funcționează pe principiul lichidității existente în cont, băncile stimulează în mod "prudent" unele cheltuieli pe credit. - Credit-Cardurile care asigură utilizatorului achiziționarea de bunuri sau servicii sau retrageri de numerar, pe baza unei linii de credit acordate posesorului de card. La rândul lor, ele pot fi de 2 tipuri: Ț Charge - caz în care posesorul trebuie ca, în termen de circa o lună, să acopere depășirea de sold înregistrată sau creditul acordat; Ț Full - cu funcțiuni depline, caz în care posesorul poate cheltui fără opreliști, în limita unui plafon sau credit negociat anterior.
C. În raport cu calitatea emitentului: - Carduri emise de bănci; - Carduri emise de societăți non-bancare (lanțuri de magazine, cluburi, parcaje etc).
În domeniul plăților prin card, transferul electronic de fonduri poate fi realizat cu ajutorul a două tipuri de echipamente: - Puncte electronice de vânzare la comercianți (EFT POS-Point of Sale) reprezintă medii electronice de efectuare a tranzacțiilor comerciale, sub forma unor automate ce prelucrează în timp real autorizarea operațiunilor și stocarea informațiilor financiare și chiar decontarea tranzacțiilor. Autorizarea în timp real se asigură printr-o tastatură specială atașată la POS (numită PIN PAD) unde deținătorul cardului introduce numărul personal de identificare (PIN). La sfârșitul unei zile, memoria POS (în realitate un PC) se descarcă la bancă și astfel fondurile tranzacționate sunt înregistrate în contul comerciantului. Astăzi unele sisteme POS permit alimentarea instantanee a contului comerciantului, pe măsura efectuării vânzărilor. Operarea POS implică 2 carduri: al clientului și al vânzătorului (pentru identificarea acestuia). - Ghișeul automat de bancă (ATM, cash dispenser ) este un dispozitiv care înlocuiește operatorul uman în operații, implicând cardul ca instrument de plată sau metodă de autentificare a clienților. Operarea ATM implică un card pe care utilizatorul îl introduce pentru identificare. Apoi acesta poate beneficia de anumite servicii: eliberarea de numerar din contul clientului, obținerea extrasului de cont, eliberarea de numerar din portofel electronic, alimentarea contului etc.
Sistem de plăți de tip POS Vom analiza spre exemplu, modul în care poate funcționa un sistem care să permită utilizatorilor să plătească pentru bunuri și servicii prin transfer electronic direct de fonduri cu echipamente de tip POS - Point of Sale. Analiza se va face pe un sistem fictiv întrucât cele reale, din motive de securitate lesne de înțeles, nu sunt supuse publicării. Sistemul constă din terminale, localizate la ieșirile din magazine care comunică cu calculatorul băncilor asociate. Fiecare utilizator (client) al sistemului are un card și un număr personal de identificare (PIN), eliberate de o bancă. Pe cardul din plastic este fie un strat magnetic fie o memorie integrată care conține datele personale ale clientului, numărul de cont al posesorului și altele, printre care și data de expirare a cartelei. PIN-ul are tipic 4-6 cifre zecimale și reprezintă "semnătura" deținătorului cardului pentru autentificare; el nu trebuie să-l divulge unei alte persoane. În același timp deținătorul cardului trebuie să fie convins că PIN-ul este protejat în mod adecvat de autoritatea care-l știe. Vom face ipoteza că la calculator există o bază de date completă pentru fiecare card emis de băncile asociate: informații asupra PIN-urilor și datelor de pe card, pentru toate cardurile emise. În acest fel se poate aproba orice tranzacție făcută cu card. Când un client dorește să plătească bunuri sau servicii, prezintă cardul, care este citit pe terminal. Acesta furnizează date despre deținător și identifică tranzacția. Utilizatorul, separat, introduce PIN-ul. Vânzătorul introduce detalii ale cumpărăturilor apoi terminalul comunică cu calculatorul pe baza unui protocol, în urma căruia plata este aprobată sau nu. La calculator se verifică dacă cartela este validă, dacă contul are bani pentru tranzacție și dacă PIN-ul și cartela corespund. Apoi terminalul informează calculatorul că tranzacția a fost operată. Este esențial ca: - PIN-ul să fie ținut secret; - mesajul să fie protejat împotriva unor eventuale schimbări în timpul transmisiei; - cele două părți să se poată autentifica reciproc. Aceste cerințe pot fi satisfăcute utilizând funcții criptografice bazate pe un cifru bloc ca DES, IDEA etc. Problema esențială nu este aceea a performanțelor algoritmului, cât a gestiunii cheilor de cifrare, care devine complicată, deoarece în sistem există sute de mii de terminale comunicând cu sute de calculatoare. Astfel, problema distribuirii și schimbării periodice a unei multitudini de chei criptografice este foarte grea. În consecință, dacă se utilizează cifrarea, este de dorit ca sistemul să conțină o procedură care să actualizeze automat cheile. Prin urmare este necesar ca sistemul să genereze chei noi pentru fiecare tranzacție de plată - numită cheie de tranzacție. Pentru simplificarea descrierii, protocolul este prezentat prin fluxul de mesaje cerere-răspuns dintre terminalul POS și calculator. Protocolul începe după ce clientul a făcut cumpărăturile, a prezentat cardul în cititor la casă și a tastat PIN-ul, iar vânzătorul (casierul) a calculat valoarea bunurilor.
- Cum se generează cheia pentru o tranzacție de plată Se folosește un principiu cunoscut, acela al punerii pe card și a unei date personale, dependente de proprietar - care să constituie așa-zisa cheie card. Această informație este citită, dar nu este transmisă. În plus, terminalul conține un registru cheie pentru fiecare bancă cu care este autorizat să comunice. Să presupunem că o persoană este gata să cumpere și prezintă cardul de plastic la terminal. Terminalul citește cheia card și numărul de cont al proprietarului (NC) și identifică calculatorul (banca) pentru acel card. Cheia de tranzacție (CT) se generează apoi la terminal cu o funcție "one-way" aplicată cheii card și registrului acelui calculator. Dacă funcția "one-way" se bazează pe algoritmul DES, cheia de tranzacție se poate genera astfel: Cheia de tranzacție=DESregistru cheie(Cheie card)ĆCheie card
Terminalul va trebui să-i furnizeze calculatorului suficientă informație pentru ca acesta să poată genera și el cheia de tranzacție. De aceea, mesajul cerere de la terminal va include în textul clar valoarea NC și identitatea terminalului. Calculatorul menține un registru cheie pentru fiecare terminal POS din sistem (având conținut identic cu registrul cheie din terminal). De asemenea, calculatorul are o listă cu cheile card asociate fiecărui NC. În acest fel calculatorul este capabil să construiască cheia de tranzacție, identificând cheia card din NC și registrul cheie din identificarea terminalului. Prin urmare, cheia de tranzacție are un caracter aleator, determinat de cheia card. Actualizarea registrului cheie de la sfârșitul tranzacției va spori securitatea sistemului și va face ca fiecare cheie de tranzacție să fie diferită.
- Generarea mesajului cerere de către terminalul POS După ce terminalul citește cardul și calculează cheia de tranzacție, se construiește un mesaj cerere (figura 1). El trebuie să conțină în clar: - NC-ul proprietarului. - Identificarea terminalului.
Se mai adaugă PIN-ul tastat de utilizator, cifrat cu cheia de tranzacție, precum și alte informații cifrate. După construirea mesajului cerere, terminalul trebuie: - să-i adauge alte date care să-l protejeze împotriva unor schimbări; - să conțină o procedură de autentificare a calculatorului; - să conțină o cale de a verifica dacă răspunsul calculatorului se referă la mesajul cerere anterior emis. Cele trei cerințe se ating prin generarea unui bloc de autentificare (BA) sub controlul cheii de tranzacție, în felul următor. Mesajul este divizat în n blocuri B1,B2,...,Bn, fiecare de 64 de biți. Cu ajutorul algoritmului DES se prelucrează pe rând fiecare bloc sub controlul cheii de tranzacție: C1 = DESCT(B1),C2 = C1 Ć DESCT(B2),...,Cn = = Cn-1 Ć DESCT(Bn) = BA
Jumătatea din stânga a lui BA formează codul de autentificare al cererii CACer. Acesta este inserat în mesajul cerere și permite calculatorului să verifice că mesajul nu a fost schimbat în timpul transmisiei. Ceilalți 32 de biți ai lui BA formează restul cererii (RC). Acesta este reținut în terminal și folosit ulterior pentru autentificarea mesajului răspuns.
- Verificarea mesajului cerere la calculator Când calculatorul primește mesajul cerere, el va genera cheia de tranzacție, extrage CACer al cererii din mesaj; apoi generează cu același algoritm BA-ul pentru restul de mesaj (figura 2). Se verifică rezultatul obținut cu CACer-ul cererii pentru a se confirma integritatea mesajului. Dacă cele două valori coincid, se autentifică terminalul de către calculator. Partea dreaptă a BA-ului calculat este reținută pentru mesajul răspuns.
- Generarea mesajului răspuns de către calculator Atunci când calculatorul a terminat de verificat elementele tranzacției, el va pregăti un mesaj de răspuns (figura 2) și va genera BA-ul sub controlul cheii de tranzacție. El va adăuga la mesajul de răspuns restul cererii, iar apoi va construi BA-ul pentru întreg mesajul extins. Acest lucru va permite terminalului să autentifice calculatorul ca fiind originea răspunsului și să confirme că răspunsul corespunde cererii emise. Partea stângă a BA-ului de răspuns este codul de autentificare al răspunsului (CARas). Acesta este inserat în mesajul răspuns după ce restul cererii a fost șters și servește terminalului să autentifice mesajul. Cealaltă parte a CARas-ului este restul răspunsului (RR); el este reținut la calculator împreună cu restul cererii pentru actualizarea registrului cheie.
- Verificarea mesajului răspuns la terminalul POS Când terminalul primește mesajul răspuns, scoate CARas-ul, adaugă restul cererii la începutul mesajului și generează BA-ul pentru mesajul extins. Partea stângă este comparată cu CACer-ul cererii obținut din mesajul de răspuns. Dacă acestea coincid, terminalul a identificat atât mesajul (integritatea lui) cât și calculatorul cu care comunică și confirmă că răspunsul primit corespunde la cererea de mesaj emisă. Apoi terminalul reține partea dreaptă a BA-ului ca restul răspunsului și încheie tranzacția (fig. 3)
- Actualizarea registrului cheie pentru următoarele tranzacții După ce calculatorul a transmis răspunsul, cheia de tranzacție este distrusă, se memorează valoarea curentă a registrului cheie și registrul cheie este actualizat la o nouă valoare, după următoarea procedură: Registru cheie = DESregistru cheie(rest cerere || rest răspuns) Ć rest cerere || rest răspuns
În acest fel noua valoare a registrului cheie, depinzând de mesaje și de valoarea cardului, este nereproductibilă.
La terminal actualizarea registrului cheie se realizează identic. Dacă însă la terminal nu se confirmă mesajul sau apare o eroare pe linie, se ajunge la situația în care la calculator registrul e actualizat, pe când la terminal nu. De aceea se reține la calculator ultima valoare înscrisă în registrul cheie, pentru a se putea reface situația inițială. În concluzie, se pot sublinia câteva caracterisitci ale sistemului:
- cheia de tranzacție este unică pentru o tranzacție de plată; ca urmare, chiar dacă cineva cunoaște cheia și cardul, nu poate deduce următoarea cheie, deoarece cheia depinde de card și de registrul cheie, care depinde la rândul său de cardul cumpărătorului precedent;
- chiar dacă cineva fură terminalul POS sau îl reproduce, nu îl poate folosi, deoarece pe lângă card trebuie cunoscut și PIN-ul; ca urmare nu e necesară o securitate fizică a terminalelor.
Inițializarea sistemului se poate face cu un card de test, pe care-l posedă vânzătorul și care precede toate tranzacțiile. Acest card stabilește prima valoare a registrului cheie și poate fi folosit și în caz de cădere a sistemului, la reinițializare.
Exemplul prezentat este doar una din nenumăratele aplicații pe care criptografia computațională le are în variate domenii conexe cu informatica. Sistemele electronice de plăți, instrumentul viitorului, care va înlocui incomodul și costisitorul numerar, este doar unul din acete domenii. În acest context, este suficient să amintim cardurile inteligente cu microprocesor, ce vor constitui adevărate portofele electronice, cu funcțiuni și cararcteristici de securitate mult superioare celor ce se folosesc astăzi.
Domnul prof. dr. Victor-Valeriu Patriciu este cadru didactic la Universitatea Tehnică Militară. Poate fi contactat prin e-mail la adresa: vip@mta.ro [cuprins] |