440 likes | 850 Views
Kryptografia w PKI. dr inż. Robert Wicik r.wicik@wil.waw.pl. Plan. Kryptografia - oferowane usługi ochrony kryptograficznej informacji Bezpieczeństwo systemów kryptograficznych – parametry bezpieczeństwa szyfrów Algorytmy kryptografii symetrycznej i ich tryby racy
E N D
Kryptografia w PKI dr inż. Robert Wicik r.wicik@wil.waw.pl
Plan • Kryptografia - oferowane usługi ochrony kryptograficznej informacji • Bezpieczeństwo systemów kryptograficznych – parametry bezpieczeństwa szyfrów • Algorytmy kryptografii symetrycznej i ich tryby racy • Algorytmy kryptografii asymetrycznej z kluczem publicznym • Kierunki rozwoju kryptografii r.wicik@wil.waw.pl
Kryptografia • Dziedzina wiedzy zajmująca się metodami utajnionego (bezpiecznego) zapisywania i przesyłania wiadomości • Oferowane usługi • Poufność • Integralność • Identyfikacja i Uwierzytelnienie • Niezaprzeczalność • Certyfikacja - PKI r.wicik@wil.waw.pl
System symetryczny • Dla n relacji łączności wymaga generacji n*(n-1)/2 kluczy i dystrybucji po n-1 kluczy dla każdego użytkownika • Uwierzytelnienie wynika z tajnych kluczy r.wicik@wil.waw.pl
System asymetryczny z kluczem publicznym • Dla n podmiotów w sieci łączności wymagana jest generacja n kompletów kluczy • Uwierzytelnienie wymaga zastosowania zaufanej trzeciej strony (TTP) i certyfikacji kluczy r.wicik@wil.waw.pl
Certyfikacja w PKI • Schemat, z wykorzystaniem którego zaufana strona (TTP, CA - urząd certyfikujący) może zaręczyć za nieznanego użytkownika lub obiekt • Wykorzystuje certyfikaty łączące klucze publiczne z danymi ich użytkowników, podpisane przez wystawcę (urząd certyfikujący) • Techniki stosowane w certyfikacji w PKI: • Kryptografia z kluczem publicznym • Zaufana trzecia strona (TTP) r.wicik@wil.waw.pl
Infrastruktura Klucza Publicznego (PKI) • CA (Certificate Authority) – urząd certyfikujący • RA (Registration Authority) – organ rejestrujący • Repozytorium – publiczny katalog o użytkownikach i certyfikatach r.wicik@wil.waw.pl
CA - Urząd certyfikujący • Centralna jednostka w PKI odpowiedzialna za uwierzytelnienie i unieważnianie certyfikatów użytkowników i obiektów • Może generować klucze • Wydaje certyfikaty, które unikalnie identyfikują użytkowników i obiekty poprzez powiązanie z kluczami publicznymi • Publikuje certyfikaty w repozytorium (X500, LDAP) w tym certyfikaty unieważnione (Certificate Revocation Lists - CRL) r.wicik@wil.waw.pl
RA – Urząd rejestrujący • Odgrywa rolę pośrednika między CA a użytkownikami, którzy potrzebują certyfikatów • Weryfikuje tożsamość użytkownika i rejestruje go, podpisuje i wysyła wniosek o wydanie certyfikatu do CA • RA może generować i wydawać klucze, hasła, numery PIN r.wicik@wil.waw.pl
Repozytorium • Przechowuje w publicznych katalogach (X500, LDAP) dane o użytkownikach i ich certyfikatach • Umożliwia identyfikację użytkowników i weryfikację ich certyfikatów • Zawiera listę unieważnionych certyfikatów (Certificate Revocation Lists - CRL) r.wicik@wil.waw.pl
Zawartość certyfikatu – X509 • Wersja i numer seryjny • Identyfikator algorytmu podpisu • Klucz publiczny użytkownika • Nazwa użytkownika • Informacje o użytkowniku i zakres stosowania certyfikatu • Data ważności • Nazwa i podpis wystawcy certyfikatu r.wicik@wil.waw.pl
Droga życia certyfikatu • Weryfikacja tożsamości użytkownika (RA) • Generowanie kluczy dla użytkownika • Tworzenie certyfikatu - podpisanie przez CA klucza publicznego użytkownika oraz danych opisujących użytkownika • Użytkowanie kluczy prywatnych i certyfikatów użytkownika • Unieważnianie i uaktualnianie certyfikatów r.wicik@wil.waw.pl
Weryfikacja podpisów • Weryfikacja podpisu pod dokumentem z wykorzystaniem certyfikatu (klucza publicznego) nadawcy • Pobranie klucza publicznego CA • Weryfikacja podpisu cyfrowego pod certyfikatem nadawcy • Sprawdzenie daty ważności i zakresu stosowania certyfikatu nadawcy r.wicik@wil.waw.pl
Bezpieczeństwo systemów kryptograficznych • Systemy bezwarunkowo bezpieczne • Entropia wiadomości mniejsza od entropii klucza H(M)H(K) • System z kluczem jednorazowym (one time pad) • Systemy warunkowo bezpieczne • Entropia wiadomości większa od entropii klucza H(M)>H(K) • Szyfry symetryczne i asymetryczne z kluczem ustalonej długości (np. 128, 1024 bity) r.wicik@wil.waw.pl
Bezpieczeństwo szyfrów warunkowo bezpiecznych • Określa się poprzez: • złożoność obliczeniową najlepszego ataku • możliwości obliczeniowe przeciwnika • czas ważności wiadomości • Szyfr uznaje się za warunkowo bezpieczny, gdy: • Najlepszy atak na szyfr ma złożoność (czasową i pamięciową) zbliżoną do ataków brutalnych, które także nie powinny być w praktyce skuteczne dla tego szyfru r.wicik@wil.waw.pl
Oszacowanie bezpiecznych długości kluczy w czasie A.Lenstra, E.Verheul, Slecting Cryptographic Key Sizes, Journal of Cryptology, Springer-Verlag. r.wicik@wil.waw.pl
Wymagania bezpieczeństwa dla algorytmów • Szyfr blokowy • Klucz: 128 (256) bitów, blok: 128 bitów • Szyfr strumieniowy • Klucz, pamięć funkcji: 128 (256) bitów • Funkcja skrótu • Blok skrótu: 160 (256, 512) bitów • Algorytmy z kluczem publicznym • RSA – 1024 (2048-4096) bitów klucza • DSA – 1024/160 (2048/192) bitów klucza • EC – 160 (256) bitów klucza Security Requirements for NESSIE - New European Schemes for Signature, Integrity and Encryption r.wicik@wil.waw.pl
Algorytmy kryptograficzne w PKI • RSA Labs • Szyfr symetryczny: RC4, RC5 • Funkcje skrótu: MD2, MD5 • Szyfr asymetryczny do uzgadniania kluczy i schemat podpisu: RSA • Standardowe - NIST • Szyfry symetryczne: DES, 3DES, AES • Funkcja skrótu: SHA-1, SHA-256,384,512 • Protokoły uzgadnia kluczy: DH, ECDH • Podpisy cyfrowe: DSA, ECDSA r.wicik@wil.waw.pl
DES • Standard Szyfrowania Danych • 1973/1977 – IBM/NIST/NSA • Blokowy szyfr symetryczny • 56 bitów klucza • 64 bity bloku danych wejściowych • Iteracyjna struktura typu Feistel wykorzystująca operacje podstawieniowe, przestawieniowe i sumy bitowej XOR • Tryby pracy: ECB, CBC, OFB, CFB r.wicik@wil.waw.pl
ECB – Tryb elektronicznej książki kodowej • Dostęp do pojedynczych bloków z możliwością ich zmiany (także przez przeciwnika) • Błędy nie powielają się na kolejne bloki r.wicik@wil.waw.pl
CBC – Tryb łańcuchowania kryptogramów • Randomizacja kryptogramu przez IV • Utrudniona zmiana pojedynczych bloków • Powielanie błędów w tekście jawnym i kryptogramie r.wicik@wil.waw.pl
OFB – Sprzężenia zwrotne wyjścia • Szyfrowanie strumieniowe wymagające synchronizacji IV • Nie powiela błędów ani w tekście jawnym, ani w kryptogramie r.wicik@wil.waw.pl
CFB – Sprzężenia zwrotne kryptogramu • Szyfrowanie strumieniowe nie wymaga synchronizacji IV • Powiela błędy tekstu jawnego i kryptogramu (max n bitów) r.wicik@wil.waw.pl
3DES • Potrójny DES (DES-EDE) E(x)=Ek3{Dk2 [Ek1(x)]} • 64 bitów bloku danych • 168 bitów klucza, gdy k1k2k3 • 112 bitów bloku klucza, gdy k1=k3 – nie zalecane • Uznawany za bezpieczny, ale nieefektywny • Dodatkowe tryby pracy CBC – nie zalecane r.wicik@wil.waw.pl
RC5 • Szyfr blokowy – (Rivest) Ron’s Code 1994 • Zmienna ilość bitów klucza (128) • Zmienna ilość rund (12) przetwarzających po 2 w-bitowe słowa (w=16, 32 lub 64) • Iteracyjna struktura wykorzystująca operacje sumowania mod 2w, sumy bitowej XOR i rotacje zależne od danych • Inne: RC2, RC4, RC6 r.wicik@wil.waw.pl
AES • Advanced Encryption Standard wywodzący się z szyfru Rijndael • 1997/2000 - NIST • 128 bitów bloku danych szyfrowanych (tablica 4x4xbajty) • 128/192/256 bitów klucza • Szyfr iteracyjny wykorzystujący operacje podstawiania i przestawiania bajtów oraz sumy bitowej XOR r.wicik@wil.waw.pl
Struktura AES r.wicik@wil.waw.pl
Bezpieczeństwo AES • Długi klucz: 128-256 bitów • Długi blok szyfrowany: 128 bitów • Tylko 1 nieliniowy S-box, ale zaprojektowany pod kątem wysokiej odporności na kryptoanalizy • Operacje przestawiania bajtów zapewniające dyfuzję • Autorzy i wyniki konkursu potwierdzają odporność szyfru na znane ataki • Czas pokaże rzeczywiste bezpieczeństwo r.wicik@wil.waw.pl
Nowoczesne algorytmy blokowe 128-bitowy blok, 128/256-bitowy klucz • MARS – IBM • RC6 – RSA Labs • Rijndael – J. Daemen, V. Rijmen • Serpent – R. Anderson, E. Biham, L. Knudsen • Twofish – B. Schneier i inni • CAST-256 – C. Adams, S. Tavares, Entrust r.wicik@wil.waw.pl
MD5 • Funkcja skrótu - Message Digest • Projekt Rona Rivesta na bazie MD4, 1991 • Skraca bloki 512-bitowe • Daje 128-bitowy skrót • Iteracyjna struktura wykorzystująca bitowe operacje AND, OR, XOR, sumę modulo 232 i rotacje zależne od stałych • Zoptymalizowana na procesory 32-bitowe r.wicik@wil.waw.pl
SHA-1 • Funkcja skrótu – Secure Hash Algorithm • Projekt NIST na bazie MD4 - 1995 • Skraca bloki 512-bitowe • Daje 160-bitowy skrót • Iteracyjna struktura wykorzystująca bitowe operacje AND, OR, XOR, sumę modulo 232 i rotacje zależne od stałych • Bezpieczniejsza od MD5 ze względu na dłuższy skrót (160 vs. 128) • Obecnie zalecane SHA-256,384, 512 r.wicik@wil.waw.pl
Szyfr RSA • Szyfr z kluczem publicznym – 1977r. • Autorzy: Rivest, Shamir, Adleman • Liczba modularna: n=pq, =(p-1)(q-1) • Klucz szyfrujący: e, NWD(e,)=1 • Klucz deszyfrujący: d, d=e-1 (mod ) • Szyfrowanie: c=me mod n • Deszyfrowanie: m=cd mod n • Klucz szyfrujący e można opublikować r.wicik@wil.waw.pl
Podpis RSA • Podpis bazujący na szyfrze RSA • Liczba modularna: n=pq, =(p-1)(q-1) • Klucz podpisu : d, NWD(d, )=1 • Klucz weryfikacji: e, e=d-1 (mod ) • Podpisywanie: h=H(m), s=hd mod n • Weryfikacja: h’=H(m), h”=se mod n jeżeli h’=h” – podpis OK • Klucz weryfikacji e można opublikować r.wicik@wil.waw.pl
Bezpieczeństwo RSA • Bezpieczeństwo klucza deszyfrującego/podpisującego d opiera się na trudności rozkładu liczby n na czynniki p i q w celu obliczenia , a następnie znalezienia klucza: d=e-1 (mod ) • Zalecane p1024 • Bezpieczeństwo wiadomości m wynika z trudności znalezienia pierwiastka dyskretnego ec (mod n) r.wicik@wil.waw.pl
Podpis DSA • Algorytm podpisu dla Digital Signature Standard - NIST, 1991r. • Bazuje na systemie ElGamala (1985) • Liczby modularne: p i q • Klucz podpisu: a(0,q) • Klucz weryfikacji: i y, =g(p-1)/q mod p, g*p y=a mod p • Klucz weryfikacji y można opublikować r.wicik@wil.waw.pl
Podpis DSA • Podpisywanie: h=H(m) Rnd k(0,q) r=(k mod p) mod q s=k-1(h+ar) mod q • Weryfikacja: h’=H(m) u1=h’s-1 mod q u2=rs-1 mod q v= (u1su2 mod p) mod q jeżeli v=r – podpis OK r.wicik@wil.waw.pl
Bezpieczeństwo DSA • Bezpieczeństwo klucza podpisu a opiera się na trudności jego znalezienia na podstawie elementu klucza weryfikacji y • Problem logarytmu dyskretnego a=log y mod p • Dodatkowe zabezpieczenie daje parametr k losowany w czasie podpisywania • Zalecane: p1024, q160 r.wicik@wil.waw.pl
Protokół Diffiego-Hellmana • Protokół uzgadniania klucza • W. Diffie, M. Hellman - 1976 • Liczba modularna p, Generator g • A losuje x, oblicza i wysyła X=gx mod p • B losuje y, oblicza i wysyła Y=gy mod p • A oblicza k=Yx mod p • B oblicza k=Xy mod p • k=gxy mod p jest uzgodnionym kluczem • Brak uwierzytelnienia r.wicik@wil.waw.pl
Bezpieczeństwo DH • Bezpieczeństwo protokołu (uzgodnionego klucza) opiera się na trudności obliczenia logarytmów dyskretnych x=loggX mod n i y=loggY mod n niezbędnych do znalezienia klucza k=gxy mod n • Nieodporny na atak typu man-in-the-middle i wymaga dodatkowego uwierzytelnienia (certyfikacji) r.wicik@wil.waw.pl
Krzywe eliptyczne (EC) • V. Miller - 1985, N. Koblitz - 1987 • Krzywa eliptyczna: zbiór punktów (x,y) na krzywej opisanej wzorem (NIST): y2=x3-3x+b w GF(p) lub: y2+xy=x3+x2+b w GF(2m) • Bezpieczeństwo oparte na trudności rozwiązania problemu logarytmu dyskretnego na krzywej (znalezienia k na podstawie punktów G i Y=kG) r.wicik@wil.waw.pl
Krzywe eliptyczne (EC) • Krótkie klucze: 160-256 bitów • Efektywność protokołu ECDH i podpisu ECDSA porównywalna z klasycznymi DH i DSA • Skomplikowany i czasochłonny proces generacji krzywej - obliczania ilości punktów na krzywej r.wicik@wil.waw.pl
Kierunki rozwoju • Opracowywanie nowych, bezpieczniejszych protokołów i algorytmów kryptograficznych • Badania nad bezpieczeństwem algorytmów i protokołów • Zwiększanie efektywności implementacji rozwiązań kryptograficznych • Rozwój i wdrażanie systemów PKI • Standaryzacja i uregulowania prawne • Certyfikacja systemów ochrony informacji r.wicik@wil.waw.pl