http://ssc.users.ro Curs 2 – Cloud si bazele criptografiei Bogdan Carstoiu 1
http://ssc.users.ro
Curs 2 – Cloud si bazele criptografiei Bogdan Carstoiu 1
‹#›
Cloud computing (definitii) „Cloud computing” - dezvoltarea si folosirea de tehnologie de calcul prin intermediul retelei Internet. „Cloud computing” - paradigma de calcul in care informatia este permanent stocata pe servere de pe Internet si adusa temporar pe dispozitivele clientilor, cum ar fi: desktop-uri, notebook-uri, senzori, monitoare, smart phone, etc. Def. Buyya - Cloud este un tip de sistem paralel si distribuit alcatuit dintr-o colectie de calculatoare virtual interconectate care sunt dinamic dimensionate si prezentate ca una sau mai multe resurse unificate bazate pe un nivel de serviciu agreat stabilit in timpul negocierii dintre furnizorul de servicii si consumator. 2
‹#›
Caracteristici cloud Avantaje: Minimizarea costurilor si predictibilitatea lor Independenţa de locaţie si echipament de conectare Monitorizarea performantelor si asigurarea consistentei - (SLA) Disponibilitate ridicata – locatii redundante Scalabilitate ridicata Securitate – aspect controversat Imbunatatita datorita centralizarii datelor si a cresterii resurselor alocate pentru asigurarea securitatii. Puncte slabe: utilizarea canalelor de comunicatie publice si proprietatea datelor. Utilizarea eficienta a resurselor Partajarea resurselor si a costurilor de achizitie si exploatare intre un numar mare de utilizatori Dezavantaje: Probleme de securitate!!! Poate fi o capcana - forteaza achizitionarea de sisteme inchise. 3
‹#›
Organizarea pe niveluri Infrastructura sau IaaS (Infrastracture as a Service): stocare, putere de calcul Platforma sau PaaS (Platform as a Service) se materializeaza prin furnizarea de platforme de calcul ca servicii: baze de date Aplicatie sau SaaS (Software as a Service) ofera acces la aplicatie fara a o instala si rula pe calculatorul clientului: Salesforce, Google Docs Serviciile reprezinta un sistem (sau mai multe sisteme) software proiectat(e) pentru a suporta interactiuni masina-masina prin intermediul unei retele. Clienţii sunt reprezentati de componentele hardware si/sau software care se bazeaza pe Internet pentru furnizarea aplicatiei 4
‹#›
Model arhitectura cloud 5
‹#›
Riscuri securitate cloud Privileged user access. Date sensibile prelucrate in afara companiei. Regulatory compliance. Clientii sunt responsabili de securitatea si integritatea datelor proprii. Furnizorii de servicii supusi la audituri externe si certificari de securitate. Data location. Nu se cunoaste locatia in care datele sunt stocate, in ce tara si care sunt jurisdictiile zonei. Data segregation. Datele sunt pastrate intr-un mediu partajat sunt criptate dar criptarea nu rezolva tot. Necesita o cale pentru a separare a datelor. Accidentele provenite din criptare pot face datele complet neutilizabile. Recovery. Ce se intampla cu datele in caz de dezastru? Are furnizorul posibilitatea de restaurare completa a datelor? Investigative suport. Investigarea activitatii necorespunzatoare sau ilegala poate fi imposibila. Long-term viability. In ce masura pot fi datele recuperate dupa intreruperea serviciilor? 6
‹#›
Aspecte securitate Cloud (1) Security and Privacy. Pentru a se asigura ca datele sunt sigure, nu pot fi accesate sau pierdute si ca proprietatea datelor este gestionata corect: Protectia datelor. Separarea datelor apartinand clientilor diferiti, stocarea si mutarea securizata intre locatii. Sisteme care sa previna scurgerea datelor si acesul de catre terti. Auditarea si monitorizarea nu poate fi eliminate nici chiar de utilizatorii privilegiati. Managementul identitatii. Fiecare companie va avea propriul sistem de management al identitatii pentru controlul accesului la informatii si resurse de calcul. Securitate fizica si personala. Asigura ca masinile fizice sunt securizate corespunzator si ca accesul persoanelor neautorizate la aceste masini nu este posibil. Disponibilitate. Asigura clientul ca are acces regulat si predictibil la propriile date si aplicatii Securitatea aplicatiilor. Aplicatiile sunt disponibile ca serviciu si securizate. Se folosesc firewall-uri aplicatie in mediul de productie. Privacy. Datele critice sunt mascate (ex: numar carte credit) si numai cei autorizati au acces la ele. 7
‹#›
Aspecte securitate Cloud (2) Compliance. Continuitatea operarii si recuperarea datelor. Garantarea faptului ca serviciile vor fi mentinute in caz de dazastru si ca orice date pierdute vor fi recuperate. Aceste planuri sunt disponibile si acceptate de catre client. Jurnalul de log si audit trebuie corespunzator securizat, mentinut pentru intervalul de timp cerut de catre client si accesibil pentru orice investigatie. Cerinte de conformitate. Centrele de date intretinute de furnizorii cloud pot avea cerinte suplimentare de conformitate. Aspecte juridice si contractuale. In afara de problemele de securitate furnizori de cloud si clientii vor negocia raspunderea in cazul pierderilor de date, proprietatea intelectuala, intreruperea serviciilor (aducerea datelor la client). Tratarea aspectelor juridice legate de pastrarea inregistrarilor asa cum sunt cerute de reglementarile in vigoare. 8
‹#›
Tehnologii de securitate in Cloud Firewall/VPN. Nu aduce nimic nou. Tehnologia are aplicabilitate mai ales in domeniul Iaas, dar din ce in ce mai mult apare necesitatea de a apara aplicatiile software oferite ca serviciu. Exista aplicatii web cu tehnologia de securitate corespondenta Web Firewall. IPS. Are aplicabilitate exclusiv in zona IaaS. La aplicatiile web functia este de regula suplinita de web firewall. Anti-malware. Domeniul de bază este IaaS. Data Loss Prevention. Lucru oarecum nou, DLP este o tehnologie tanara aparuta prin 2005-2006. Web Security/URL Filtering. Poate fi disponibila si ca tehnologie in contextul Iaas si SaaS. Orice tehnologie de securitate pentru perimetre poate fi implementata si in cazul IaaS. 9
‹#›
Necesitatea criptarii - caracteristici Scenariu Doua persoane comunica printr-un canal de comunicatie ce traverseaza o retea publica. Atacatorul dispune de putere de calcul si doreste interceptrarea datelor. Ce urmareste criptografia? Asigurarea faptului ca datele schimbate de cele 2 parti sunt private Integritatea si autenticitatea datelor 10 Sursa Destinatie Retea publica Mes Atacator
‹#›
Date private, Integritate si Autenticitate Date Private: Adversarul nu poate vedea sau obtine datele din mesajul MES Ex: MES poate fi un numar de carte de credit transmis de un cumparator (sursa) la server (destinatia) pe care atacatorul nu trebuie sa-l vada Integritate si Autenticitate: MES este generat de sursa nu de altcineva MES nu a fost modificat in transportul de la sursa la destinatie Ex de atac ideal: 1. Alice trimite la banca mesajul: Plateste 100 $ lui Bob 2. Atacatorul: Modifica destinatia din Bob in Eve Modifica suma din 100 in 1000 11
‹#›
Exemplu: Baza de date medicala Consideram baza de date cu inregistrari medicale de natura confidentiala la care doctorul are acces. Date private: Fa si Fa’ sunt confidentiale Integritate si autenticitate: doctor autorizat sa citeasca datele lui Alice, Fa si Fa’ nu sunt modificate in trafic, Fa este trimis de baza de date, Fa’ este trimis de doctor. 12 Alice Fa Bob Fb Doctor Baza de date Get Alice Fa Citeste: Fa Modifica: Fa’ Put: Alice, Fa’ Alice Fa’ Bob Fb
‹#›
Schema criptografica Solutie ideala: Delimitarea canalului de comunicatie, izolarea ca intr-o “teava” in interiorul caruia nu se poate patrunde sau altera continutul. Nu poate fi realizata! Solutia practica: Criptarea la transmisie si decriptarea la receptie. Ke: cheie de criptare Kd: cheie de decriptare E: Algoritm criptare D: Algoritm decriptare C: Mesajul criptat de transmis C’: Mesajul criptat receptionat MES: Mesaj C: (Ciphertext) 13 E D Ke MES C C’ Kd MES sau ER
‹#›
Elemente definitorii criptografie Modalitati: Asimetrica (cheie publica), in care: Ke publica, Kd secreta Simetrica (cheie privata), in care: Ke = Kd secrete Probleme: Cum se distribuie cheile? Ce urmarim: Cum definim scopul securizarii? Cum proiectam algoritmul de criptare (E) si decriptare (D)? Care este increderea atingerii scopului de catre E si D? Computer Security: Cum protejaza sistemul Ke/Kd de virusi, worms, brese de securitate ale sistemului de operare etc. Criptografie: Cum se utilizeaza Ke , Kd pentru a asigura securitatea comunicatiei peste o retea nesigura. Probleme criptografie: Nu pot fi anticipate strategiile adversarului: infinitate de posibilitati Testarea completa nu este posibila si datorita numarului mare de posibilitati de atac 14
‹#›
Cifruri cu substitutie Daca Ke =Kd si avem permutare secreta pe alfabetul ∑, cu ∑={A,B,C,…}, atunci: Ke=Kd=π: ∑→∑ si π este: Atunci: E π(CAB) = π(C) π(A) π(B) = ZEA si D π(ZEA) = π-1(Z) π-1 (E) π-1 (A) = CAB Obs: Nu este sigura, un puzzle. 15 A B C D E F π E A Z U K M
‹#›
Criptarea OTP Criptarea One-Time-Pad (OTP) Ke=Kd=K <- {0,1}k , adica K ales aleator din {0,1}k Pentru orice MES Є {0,1}k Ek(MES)=K MES Dk(C) =K C Teorema (Shannon): OTP este perfect sigur atata timp cat un singur mesaj este criptat. Este cazul ideal! “Perfect" securizat in acceptiune Shannon inseamna ca este imposibil matematic de a sparge schema de criptare In fapt, daca |MES| > |K|, atunci nici o schema nu este perfect sigura. Securitatea in sistemele practice nu se refera la imposibilitatea matematicade a sparge sistemul ci la dificultatile de calcul pentru spargerea sistemului. De regula, in practica mesajul are mai multi biti decat cheia 16 + +
‹#›
Criptografia moderna (problema factorizarii) In loc sa spunem ca este imposibila spargerea schemei spunem ca atacurile pot exista, dar costurile de realizare sunt prohibitive. (Ex: Un atac care are nevoie de 2160 pasi duce la spargere cu probabilitate de 2-20). Criptografia nu este numai matematica, ci trebuie adusa in stiinta calculatoarelor prin prisma complexitatii calculului si a algoritmilor implementati. Ce trebuie sa faca o schema de criptare pentru a pastra datele private? Asta inseamna ca avand C = EKe (MES), adversarul nu poate: reface mesajul MES? regasi primul bit al lui MES? regasi macar unul dintre biti lui MES? Problema factorizarii Formulare: Daca se da numarul N sa se obtina factorii primi ai lui N. Ex: Se da 85, factorii primi: 17,5. Daca scriem programul de obtinere a factorilor unui numar N, pare simplu Alg Factor(N) // N produsul a doua numere prime For i=2;3;…[√N] If N mod i =0 then return i Acesta este foarte lent daca N este foarte mare (500 digiti). Concluzie: Nimeni nu poate calcula repede in acest moment factorii primi ai unui numar. Cel mai bun algoritm este sub-exponential. 17
‹#›
Tratarea ierarhica, primitive Primitive atomice: Factorizarea: Fiind dat un numar N foarte mare N = pq, se cere sa sa gaseasaca factorii p si q; Primitive de criptare bloc: DES, AES, ... Functii Hash : MD5, SHA1, ... Primitive de nivel inalt: Scopul de rezolvare a problemei de securitate Example: criptare, autentificare, semnatura digitala, distributie chei… Abordarea tipica: prin transformari de la primitivele atomice spre cele de nivel inalt. Procesul de transformare este legatura slaba. Criptografia utilizeaza: Teoria numerelor: baza sistemului modern cu cheie publica RSA Combinatorica Algebra moderna Teoria probabilitatilor 18 Primitive atomice Transformari Primitive de nivel inalt
‹#›
Criptare clasica Schema criptare simetrica, notata SE={K,E,D} necesita implementarea a trei algoritmi: Generare cheie {K} Algoritm criptare {E} Algoritm decriptare {D} Decriptarea este corecta daca pentru toate perechile k, MES relatia DK(EK(MES))=MES este adevarata. Definitii: Numim alfabet multimea simbolurilor primitive utilizate (∑); Notam multimea tuturor sirurilor peste alfabetul ∑ cu ∑*. 19 E D K MES MES c
‹#›
Cifru prin substitutie Def: Un cifru prin substitutie peste un alfabet ∑ este o schema de criptare simetrica SE+(K,E,D) in care cifrul de iesire prin K este o permutare π: ∑→∑ Alfabet: notat ∑ ca totalitatea simbolurilor permise O cheie este o permutare π: ∑→∑ ce defineste regulile de codificare Mesajul initial cuprinde numai simboluri din alfabet MES Є∑* si este un sir peste ∑ Criptarea lui MES = M[1] M[2]…M[n] este C = π(M[1])……. π(M[n]) Decriptarea lui C = C[1]…..C[n] este MES = π -1(C[1])….. π -1(C[n]) 20
‹#›
Comments