Kryptografia w PKI
description
Transcript of Kryptografia w PKI
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
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
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
c=Ek(m)
szyfrowanie m=Dk(c)
deszyfrowanie m m c
kanał odkryty
źródło kluczy
k - prywatny
k - prywatny
kanał chroniony
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
c=Ee(m)
szyfrowanie m=Dd(c)
deszyfrowanie m m c
kanał odkryty
źródło kluczy
d - prywatny
e=fj(d) - publiczny
kanał odkryty
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)
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
RA
CA
Network Repository Public Directory
User Applications
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)
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
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)
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
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
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
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)
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
Oszacowanie bezpiecznych długości kluczy w czasie
Rok Szyfry symetryczne/Funk
cje skrótu
Klasyczne szyfry asymetryczne
Krzywe Eliptyczne
Koszt $ ataku w 1
dzień
Lata obliczeń na PII450MHz
1982 56/112 288/417
(102)
105 4,0*107 1,1*103
2000 70/140 704/952
(125)
132 1,4*108 1,6*107
2010 78/156 1056/1369
(138)
146/160 2,8*108 3,2*109
2020 86/172 1472/1881
(151)
161/188 5,6*108 6,5*1011
2050 109/218 3392/4047
(193)
206/272 4,4*109 5,5*1018
A.Lenstra, E.Verheul, Slecting Cryptographic Key Sizes, Journal of Cryptology, Springer-Verlag.
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
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
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
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
P1 P2
C1 C2
Ek Ek
Bloki tekstu jawnego ->
Bloki kryptogramów ->
Szyfrowanie ->
P3
C3
Ek
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
IV P1
C0 C1
Ek Ek
Bloki tekstu jawnego ->
Bloki kryptogramów ->
Szyfrowanie ->
P2
C2
Ek
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
IV
O
Ek n
r
n
n
r r P P C
IV
O
Ek
n
n
CFB – Sprzężenia zwrotne kryptogramu
Szyfrowanie strumieniowe nie wymaga synchronizacji IV
Powiela błędy tekstu jawnego i kryptogramu (max n bitów)
IV
O
Ek r
r
n
n
IV
O
Ek r
r
n
n
r r P P C
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
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
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
Struktura AES
AddRoundKey
SubBytes
FinalRound
ShiftRows
MixColumns
AddRoundKey Key
Expansion
State 4x4xbajt
Key
Round i
State 4x4xbajt
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
Nowoczesne algorytmy blokowe128-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
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
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
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ć
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ć
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)
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ć
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
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
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
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)
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)
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
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