Autentificarea si autorizarea web

  • View
    3.848

  • Download
    3

Embed Size (px)

Text of Autentificarea si autorizarea web

  • 1. AutentificareaiAutorizarea WEBCezar DerevleanAndrei Popescu

2. Autentificarea Confirmarea unei entiti i a veridicitii acesteia Poate s implice confirmarea identitii unei persoane,asigurarea c un produs este ceea ce susine c este sauasigurarea c o aplicaie este de ncredere n domeniul informatic procedura se mai numete login, logoni implic adesea folosirea unui user i a unei parole 3. Autentificarea autentificarea depinde de secretul partajat care, cel maintlnit, este sub form de parol Odat autentificat, un utilizator poate executa diversecomenzi, sarcini, etc. n funcie de autorizare Cnd autentificarea nu mai este necesar, utilizatorul poatenchide sesiunea (logoff, logout) 4. AutentificareaSistemele de autentificare ofer rspunsuri la interogri degenul: Cine este utilizatorul, calculatorul, sau productorul? Careanume este produsul? Este adevrat c utlizatorul este chiar acela care pretinde a fi?Sistemele de autentificare pot fi de mai multe tipuri: Simplu (nesecurizat) - unde parola este transmis n formtextual n clar, fr cifrare/codificare Complicat (sofisticat) ca de ex. la sistemle Kerberos 5. Autentificarea n domenii mai riscante, cum ar fi tranzaciile online, utilizareaunui user i a unei parole nu este suficient, caz n care pentruautentificare ar putea fi necesare date suplimentare (cod PINetc.) n toate cazurile sistemele de autentificare depind de oinformaie, cunoscut (disponibil) individului care seautentific, precum i sistemului de autentificare un secretpartajat. Autentificarea poate fi nesecurizat (tradiional) sausecurizat 6. Autentificarea tradiional(nesecurizat) Este cea mai simpl i cea mai comun metod deautentificare Informaiile despre un utilizator sunt stocate local pe unserver Utilizatorii trimit numele de utilizator i parola n clar (plaintext) sistemului, care la rndul su compar informaia deautentificare cu baza de date local. 7. Autentificarea tradiional - puncteslabe: n multe cazuri, parolele utilizatorilor sunt stocate n clar pe unserver. Oricine are acces la baza de date a serverului are accesla informaiile oricrui utilizator autentificabil. n cazurile n care parolele utilizatorilor sunt stocate codificat(encrypted) pe server, parolele n clar sunt probabil trimiseprin reele nesigure de la client la server. Fiecare sistem separat trebuie s dein o copie a informaieide autentificare a utilizatorului. Autentificarea nu este refolosibil. Utilizatorii trebuie s seautentifice pe fiecare sistem sau aplicaie pe care ei doresc sl/o acceseze. 8. Certificate Funcia principal a unui certificat este aceea de a asocia uneiidentiti o chei public. Certificatele sunt publice i conininformaie referitoare la subiectul certificatului, cheia publica certificatului, entitatea care a emis acest certificat isemnatura acesteia. Asocierea cheie-identitate (certificatul) este recunoscut igarantat de un ter, entitatea care semneaz certificatul icare este numit Autoritate de Certificare. 9. Certificate Un certificat poate fi obinut printr-o cerere fcut unei astfelde Autoriti de Certificare. Cel care dorete s dein un astfel de certificat va generalocal o pereche de chei, public si privat, va arata cheiapublic Autoritii de Certificare care i va creea i semna uncertificat coninnd aceea cheie public. Un certificat al unui client va fi verificat pe lanul de semnturipn ce se ajunge la o Autoritate de Certificare de increderesau se va stabili ca un astfel de lan nu exist, caz n care,autentificarea va eua. 10. Certificate Certificatele n formatul X.509 sunt un standard ITU-T pentruInfrastructura cu Chei Publice. Un certificat X.509 conine cel puin urmtoarele date: Versiunea, Numr Serial, Algoritm de Semnare, Emitent, Perioada de Valabilitate, Data, Subiectul, Cheia Public Semnatura Emitentului 11. SSL - istoric SSL a fost dezvoltat de Netscape Communications scopulurmrit fiind realizarea de tranzacii sigure, cu cari de creditpe Internet utiliznd un browser i un server web. Versiunile 1i 2 ale protocolului s-au dovedit a avea slbiciuni desecuritate, nsa n 1995 odat cu lansarea SSl v3, protocolul s-aimpus ca un standard de facto. 12. SSL SSL este un protocol de securitate care reunete toate acestemecanisme. Prin intermediul su se poate asiguraconfidentialitatea, integritatea mesajelor i autentificareaparilor. SSL acioneaz peste un flux TCP i ofer servicii nivelelorsuperioare. Protocolul SSL este format din doua etape: handshake sitransfer. 13. Tehnici pentru programare sigur Parolele trebuie inute n memorie nu ca String, ci ca array decaractere; Parolele trebuie suprascrise cu zero imediat dup folosirepentru a preveni memmory sau disk snooping. Atunci cnd se serializeaz obiectele, se folosete cuvntulcheie transient pentru ca informaia de pe aceste canale s nufie trimis n streamul de date. De exemplu, informaia ar putea s fie citit usor atunci cndmaina este obligat s fac swapping. 14. Password-Based Encryption Password-Based Encryption (PBE) creeaz o cheie de criptare dintr-oparol. Pentru a minimaliza ansele ca un atacator s ghiceascparola prin fort bruta, implementrile de PBE implementationsfolosesc n plus un numar aleator (salt) pentru a creea cheia. Exemplu: Pe orice sistem unix care are pachetul opensslinstalat, putei realiza scripturi care s realizeze PBE. Pentru criptare folosind idea-cbc: >openssl enc -idea-cbc -e -in plaintext_filename -out ciphertext_filename Pentru decriptare: >openssl enc -idea-cbc -d -in ciphertext_filename 15. Autorizarea Mecanismul prin care un sistem informaional determinnivelul de accces al unui utilizator pentru a accesa resursesecurizate A nu se confunda cu autentificarea! Autentificarea este primaetap prin care se identific cine este utilizatorul, dup careurmeaz autorizarea, care determin ce poate face utilizatorul Utilizatorii de tip anonim sau guest nu trebuie s seautentifice, ns au autorizare limitat 16. AutorizareaSistemele de autorizare ofer rspunsuri la urmtoareleinterogri: Utilizatorul X este autorizat de a accesa resursele R? Utilizatorul X este autorizat de a efectua operaia P? Utilizatorul X este autorizat de a efectua operaia P pe resursaR? 17. OpenID OpenID este un protocol de autentificaredescentralizat, rapid, sigur i uor Scopul: autentificarea pe diverse site-uri web folosind aceleaidate de conectare ne mai fiind nevoie s te nregistrezi defiecare dat sau s ii minte multe parole 18. OpenID - istoric A fost dezvoltat n 2005 de creatorul comunitii LiveJournal Prin 2007-2008 giganii precum Yahoo! sau Google au nceputs colaboreze i chiar s adopte standardul OpenID n decembrie 2009 aproximativ 9 milioane de site-uri aveauintegrat standardul OpenID i existau peste un miliard deconturi activate Momentan este integrat de Google, Yahoo!, Blogger,Wordpress, Aol, Flickr i muli alii 19. OpenID - obinere Cel mai probabil majoritatea au deja un OpenID chiar fr a ficontieni de acest fapt URL-ul de la profilul Google, cel de la blogul de pe Blogspotsau Wordpress toate reprezint un OpenID Dac totui vrei s-i creezi manual un OpenID o poi face deexemplu pe http://myopenid.com 20. OpenID - conectare n funcie de interfaa pus la dispoziie de site-ul ceintegreaz conectarea cu OpenID te poi conecta fie dnd clickpe butoanele de tip Connect with Google sau withFacebook, etc. fie introducnd URL-ul menionat slide-ulanterior La prima ncercare va aprea o fereastr pentru a autorizaaccesul. 21. OpenID - implementare Oricine poate implementa OpenID pentru site-ulpropriu, pentru asta avnd la dispoziie diverse biblioteci opensource pe www.openid.net Pe acelai site se gsete i o colecie link-uri ctre plug-in-uripentru varii CMS-uri 22. OpenID - furnizare Poi deveni i furnizor de OpenID-uri, cea mai uoar metodfiind tot utiliznd bibliotecile sau plug-in-urile de pe site-ulOpenID 23. OpenID similar n Romnia, pe toate site-urile din reeaua Intact Interactive sefolosete un serviciu asemanator OpenID numit iDunic -https://www.idunic.ro 24. OAuth Un protocol pentru autorizare Ofer acces la un site pentru partajarea de resurse privatestocate pe acesta fr a fi nevoit s dezvluie sau s facschimb de informaii precum user sau parol (credentials) OAuth este un serviciu complementar cu, dar distinctde, OpenID 25. OAuth istoric A fost dezvoltat n 2006 cnd se ncerca implementareaOpenID pentru Twitter De la jumtatea anului 2010, toate aplicaiile third-party ceimplic autentificarea la Twitter trebuie s foloseasc OAuth 26. OAuth Protocolul OAuth se bazeaz pe: Resurse sunt obiectele private ale unui utilizator la care se doreteaccesul selectiv de ctre alte site-uri sau aplicaii Furnizorul de Servicii este cel care suport toate aspectele aleimplementrii protocolului, cel care urmeaz s ofere acces laresursele care le are n administrare ctre ali clieni. Poate fi, ngeneral, orice serviciu care ofer stocarea de informaii private iaccesibile selectiv. Utilizatorul este cel pentru care s-a inventat acest protocol.Utilizatorul are resurse n cadrul unui furnizor de servicii (imagini,video, contacte, mesaje) care nu vrea s le fac publice, dar carevrea s le foloseasc i pe alte site-uri Consumatorul este site-ul de pe care se dorete accesarearesurselor aflate la furnizorul de servicii. Jetonul sau tokenul este identificatorul prin care furnizorul deservicii va comunica cu consumatorul. 27. OAuth cine folosete n primul rnd: Twitter API-ul Graph de la Facebook suport OAuth 2.0 Google a implementat OAuth 2.0 la unele API-uriexperimentale Poate fi folosit pentru protejarea coninutului de tip feed 28. OAuth similar Protocoale similare ce se folosesc n prezent sunt GoogleAuthSub, AOL OpenAuth, Yahoo BBAuth, Upcoming API, FlickrAPI, Amazon Web Services API, etc. OAuth a fost creat prin alegerea a celor mai bune caracteristiciaparinnd fiecreia dintre aceste protocoale cu sperana de acrea un protocol universal 29. OAuth implementare Pe site-ul oficial, www.oauth.net, se gsesc tot felul de resursepentru cele mai comune limbaje de progra