Securitatea este un motiv de îngrijorare pentru dezvoltarea oricarui tip de aplicatie. Cu toate acestea, aplicatiile web dezvaluie anumite caracteristici care trebuie luate în considerare la proiectarea functionalitatilor de securitate si care solicita mai multe tehnici de securitate, comparativ cu alte tipuri de aplicatii. De exemplu, spre deosebire de programele care sunt instalate pe o singura masina gazda, aplicatiile web sunt accesibile publicului, pe Internet, pentru a ajunge la o numar mare de potentiali utilizatori. De exemplu, autentificarea si autorizarea utilizatorilor trebuie sa fie implementate în mod diferit pentru sistemele folosite de un singur utilizator.
Termenul în sine de securitate este destul de abstract, iar furnizorii de servicii si clientii unei aplicatii Web pot avea pareri diferite despre acestea. Acest lucru, include aspecte p 414b114e rivitoare la intimitate, prevenirea "eavesdropping" atunci când mesajele sunt schimbate pe canalele accesibile publicului, precum si asigurarea serviciilor de încredere.
De multe ori, obiectivul principal al procesului de proiectare al aplicatiilor web este functionalitatea, asa-numita logica a afacerii (business logic), usurinta în folosire, precum si capacitatea lor de a atrage clienti. Cu toate acestea, tratarea problemelor de securitate are si un impact asupra succesului (comercial) al aplicatiilor web. Clientii se asteapta ca aplicatiile web sa fie securizate si astfel datele lor private sa fie pastrate în siguranta.
Figura 11.1 ilustreaza diferite aspecte legate de securitate, care de obicei, se aplica în cazul asigurarii unei aplicatii Web de catre un furnizor de servicii si invocarea acesteia, printr-un client.
Cerere
. securitatea masinii gazda . disponibilitatea serviciului
Figura 11.1 Aspecte ale securitatii aplicatiilor web
. Securizarea calculatorului utilizatorului si a datelor personale stocate pe acesta. Calculatorul clientului si documentele stocate în sistemul de fisiere trebuie sa fie protejate împotriva accesului neautorizat de catre parti terte, posibil rau intentionate. Pentru client, datele personale, cum ar fi informatiile de contact sau numerele cardurilor de credit sunt deosebit de importante si trebuie sa fie pastrate private.
. Securizarea informatiilor în tranzit. Trebuie prevenite eavesdropping si modificarea mesajelor. Securizarea mesajelor include si autentificarea si autorizarea partilor care comunica si non-repudierea mesajelor.
Securizarea serverului si a datelor stocate pe el. Trebuie sa se asigure disponibilitatea serviciului, prin eliminarea atacurilor de tip DoS (denial-of-service). Mai mult decât atât, partile neautorizate trebuie sa fie împiedicate în obtinerea accesului la informatiile personale ale clientilor, angajatilor si la alte resurse critice ale afacerii (de exemplu, bazele de date locale).
Securizarea comertului electronic implica securizarea mesajelor pe canalele nesigure, cum este Internet-ul. În acest sens, securizarea mesajelor schimbate între doua entitati (sa presupunem Marcel si librarie), implica ca acestea sa fie cele implicate si sa se împiedice eavesdropping-ul si modificarea datelor transmise (vezi Figura 11.2).
Figura 11.2 Exemplu de tranzactie pentru a comanda o carte
În afara de securizarea mesajelor, trebuie pastrata intimitatea si securitatea resurselor locale. Securitatea aplicatiilor web poate fi defalcata astfel:
Confidentialitatea
Confidentialitatea comunicarii implica ca datele schimbate între un client si un furnizor sa nu poata fi citite de catre un tert. Criptarea este tehnologia de baza pentru schimbul de mesaje confidentiale de pe canalele nesigure de comunicatie. Dintre abordarile cele mai comune, mentionam utilizarea canalelor private sau retelelor private virtuale (VPN).
Integritatea
Notiunea stricta de integritate se refera la faptul ca nimeni nu trebuie sa modifice schimbul de informatii. În ceea ce priveste comunicarea pe retelele nesigure, accesibile publicului, falsificarea nu poate fi exclusa, în general, dar este posibila detectarea datelor modificate.
Non-repudierea
Non-repudierea este un aspect important al contractelor electronice. Autorii mesajelor (de exemplu, clientii care comanda carti la un magazin online) nu ar trebui sa aiba posibilitatea sa refuze comenzile realizate de acestia.
Autentificarea
Autentificarea este procesul de verificare a identitatii unei persoane sau a unui subiect general (care poate fi o alta aplicatie care invoca un serviciu în numele unui utilizator uman). Autentificarea are loc de cele mai multe ori printr-un mecanism de login/parola. Deoarece tehnologiile (cum sunt serviciile web) sunt proiectate pentru comunicarea aplicatie-la-aplicatie inter-organizationala si nu se bazeaza pe interactiunea cu utilizatorul uman, autentificarea bazata pe chei publice devine, în aceasta situatie, foarte importanta.
Autorizarea
Autorizarea este utilizata pentru a decide ce privilegii vor fi acordate utilizatorilor autentificati. Autorizarea poate depinde de identitatea solicitantilor si/sau de atributele lor caracteristice, cum este vârsta (de exemplu, în cazul unui magazin on-line specializat pe distribuirea de filme). Listele de control al accesului (ACL) sunt folosite pe scara larga, desi reprezinta o tehnica destul de precara pentru o organizatie.
Disponibilitatea
Garantarea disponibilitatii aplicatiilor web are o relevanta economica, deoarece nefunctionarea serviciilor implica pierderi financiare.
Intimitatea
Intimitatea se refera la manipularea datelor de încredere, cum ar fi informatiile cu caracter personal (de exemplu, datele de contact sau numerele cardurilor de credit), dar si la fisierele stocate în sistemul de fisiere local. Aceste date nu trebuie sa fie accesibile pentru parti terte neautorizate, care ar putea abuza de acestea prin furtul de identitate.
Criptarea este o tehnologie de baza care permite schimbul securizat de mesaje. Criptare (sau cifrarea) implica utilizarea de functii matematice prin care un simplu text este transformat într-un text cifrat. Decriptarea (sau decifrarea) descrie procesul invers, adica transformarea textului codificat înapoi în textul original simplu. Cei mai multi algoritmi de criptare se bazeaza pe chei secrete pentru cifrare si decifrare. Fara a cunoaste cheile respective, sistemele de calcul nu pot decripta mesajele, desi cei mai puternici algoritmi de criptare sunt accesibili publicului. Analiza criptarii descrie eforturile si tehnologiile implicate pentru a "sparge" o criptare (de exemplu, prin gasirea modalitatilor de a sparge o criptare pe baza unui text cifrat si a textului simplu corespunzator). Un algoritm este considerat puternic, în cazul în care o cautare "brute force" (adica, procesul de încercare a oricarei chei posibile), este singura posibilitate de atac cunoscuta. În continuare vom discuta algoritmii de criptare simetrici si asimetrici.
Criptografia simetrica
Utilizând criptarea simetrica, receptorul unui mesaj foloseste aceeasi cheie pentru a procesa textul simplu din textul cifrat pe care expeditorul l-a folosit pentru al cripta. În exemplul urmator, Marcel cripteaza un mesaj cu cheia S, care este cunoscuta doar de librarie si de el, asa cum se observa în figura 11.3. Pentru a decripta textul cifrat, Librarie.com utilizeaza aceeasi cheie S. De aceea, S este de asemenea numit, secret distribuit. Principalii reprezentanti ai algoritmilor de criptare simetrici sunt DES si AES.
Figura 11.3 Criptarea simetrica
DES (Data Encryption Standard), a reprezentat initial recomandarea guvernului SUA pentru criptarea simetrica si utilizeaza chei de 64 biti lungime. Fiecare al optulea bit este un bit pentru verificarea paritatii, utilizat pentru detectarea erorilor. Astfel, net-cheie este de lungime 56. DES enciphers un bloc de date pe 64 biti la un moment dat. Mai mare de date este împartita în blocuri de aceasta lungime si aceste blocuri sunt codificate separat.
Thus, the net key length is 56. DES enciphers one 64 bit data block at a time. Larger data is split into blocks of this length and these blocks are encoded separately.
|