410 likes | 549 Views
Kryptografia i PKI (Infrastruktura Kluczy Publicznych). Rafal Lukawiecki, Project Botticelli rafal@projectbotticelli.co.uk www.projectbotticelli.co.uk. Cele sesji. Zrozumieć podstawy kryptografii i PKI (niezależnie od dostępnych produktów) Objaśnić popularną terminologię Dać kilka rad
E N D
Kryptografia i PKI (Infrastruktura Kluczy Publicznych) Rafal Lukawiecki, Project Botticelli rafal@projectbotticelli.co.uk www.projectbotticelli.co.uk
Cele sesji • Zrozumieć podstawy kryptografii i PKI (niezależnie od dostępnych produktów) • Objaśnić popularną terminologię • Dać kilka rad • Uwaga: to jest szybka i gwałtowna sesja
Zasoby (assets) • Co zabezpieczamy? • Generalnie informatycy zabezpieczają: • Dane • Serwisy (czyli aplikacje, procesy biznesowe lub ich komponenty) • Niektóre zasoby są kluczowe – Key Assets (KA), od nich zależy bezpieczeństwo innych zasobów • Ta sesja nie jest o zabezpieczaniu: • Ludzi (przepraszam), kabli, dywanów, maszyn do pisania lub komputerów (?!)
Mocne fizycznebezp. KA Mocne fizycznebezp. KA Słabe fizycznebezp. KA Słabe bezp.cyfrowe Mocne bezp.cyfrowe Mocne bezp.cyfrowe Niebez-piecznie Niebez-piecznie Bezpiecznie Bezpieczeństwo cyfrowe przedłużeniem fizycznego bezpieczeństwa kluczowych zasobów
Użycia kryptografii • Tajność ◄ Niepowołani nie rozumieją informacji • Spójność (integrity) ◄ Od razu jest bardzo widoczne jeśli ktoś zmieni informację • Autentyczność ◄ Możemy zweryfikować związek między autorami i zasobem • Identifikacja ◄ Wiemy kto konkretnie jest związany z zasobem (np. jako autor) • Niezaprzeczalność (non-repudiation) ◄ Nie da się powiedzieć „ja tego nie podpisałem”
Kryptografia • Używamy trudnej matematyki by osiągnąć cele właśnie przedyskutowane • “Statyczna” • Nie pozwala wykryć problemów wynikających ze schematu specyfiki prób włamania i dostępu w pewnym okresie czasu • Zależy od bezpieczeństwa zasobów kluczowych (np. główne klucze prywatne) • Moc maleje z upływem czasu i rozwoju technik kryptoanalitycznych
Co jest bezpieczne? • Używaj systemów: • Od znanych producentów • Z opublikowanymi (nie tajnymi!) algorytmami • Którymi się interesuje wiele ludzi • Które przeżyły próby wielu włamań przez lata • Które były przeanalizowane matematycznie • W żadnym wypadku nie „ulepszaj” algorytmów • Zatrudnij kogoś by spróbował się włamać
Uproszczona terminologia • Tekst jawny (plaintext) • To co chcemy zabezpieczyć, np. czytelny list który zaszyfrujemy • Tekst zaszyfrowany (ciphertext) • Nieczytelne informacje, które trzeba rozszyfrować • Klucz • Potrzebny by szyfrować lub rozszyfrowywać (lub oba) • Kryptoanaliza • Łamanie systemów korzystając z matematyki • Teoria złożoności (complexity theory) • Mierzy jak trudno się włamać do systemów
Kryptografia symetryczna Plain-text input Plain-text output Cipher-text “The quick brown fox jumps over the lazy dog” “The quick brown fox jumps over the lazy dog” “AxCv;5bmEseTfid3)fGsmWe#4^,sdgfMwir3:dkJeTsY8R\s@!q3%” Encryption Decryption Taki sam klucz(współdzielony)
Symetryczność: zalety i wady • Wady: • Trzeba się zgodzić na klucz przed użyciem • Jak bezpiecznie przekazać klucz odbiorcy? • Zalety: • Łatwe i bardzo szybkie algorytmy (rzędu 1000 do 10000 szybsze niż asymetryczne) • Superszybkiejeżeli implementacja sprzętowa (DES, Rijndael) • Sprzętowe implementacje są bezpieczniejsze niż czysto software-owe
Kryptografia publiczna (asymetryczna) • Wiedza o kluczu szyfrującym nie pozwala* odgadnąć klucza odszyfrowującego • Odbiorca informacji generuje parę kluczy • I publikuje swój klucz publiczny w jakimś katalogu • Zatem każdy może jej posyłać zaszyfrowane dane
private public Szyfrowanie publiczne (asym) Clear-text Input Clear-text Output Cipher-text “The quick brown fox jumps over the lazy dog” “The quick brown fox jumps over the lazy dog” “Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Encryption Decryption Różne klucze Prywatny klucz odbiorcy Publiczny klucz odbiorcy
File encryption (np. DES) *#$fjda^j u539!3t t389E *&\@ 5e%32\^kd Data Decryption Field generation (e.g., RSA) DDF Publiczny klucz użytkownika (z certyfikatu) Data Recovery Field generation (e.g., RSA) DRF Losowo wygenerowany klucz sesyjny (FEK) Publiczny klucz agenta odtwarzania danych na wypdek katastrofy RNG Proces złożony z obu Launch key for nuclear missile “RedHeat” is...
File decryption (e.g., DES) Launch key for nuclear missile “RedHeat” is... File encryption key (FEK) Privatnyklucz odbiorcy DDF extraction (e.g., RSA) DDF rozszyfrowujemy używając prywatnego kluczaby uzyskać FEK DDF zawiera klucz FEK zaszyfrowany publicznym kluczem odbiorcy DDF Podwójne odszyfrowanie *#$fjda^j u539!3t t389E *&\@ 5e%32\^kd
Problem klucza publicznego • Rozwiązaliśmy problem przekazania klucza • Ale… • Scott tworzy parę kluczy i daje wszystkim swój klucz publiczny mówiąc, że należy do Billa • Ludzie szyfrują tajne dane dla Billa • Bill nie ma klucza prywatnego by to odszyfrować… • Scott czyta wiadomości posłane do Billa
Eureka! • Potrzebujemy PKI by rozwiązać ten problem • I kilka innych problemów…
Jak zweryfikować klucz publiczny? • Dwa podejścia: • Zadzwoń do Billa zanim użyjesz jego klucza i sprawdź • Fingerprint lub jakaś suma kontrolna • Poproś kogoś komu już ufasz by zcertyfikował prawdziwość klucza Billa • Niech się oni cyfrowo podpiszą pod kluczem Billa • Ale musisz komuś ufać…
Modele zaufania • Web-of-Trust (PGP) • Model „koleżeński” • Ludzie podpisują sobie klucze nawzajem • Trusted Authority + Path of Trust (CAs) • Każdy ufa w Certificate Authority (Verisign, Thawte, BT etc.) • CA cyfrowo podpisuje klucze • CA może nawet nominować inne CAs
Problemy i przyszłość modeli zaufania • Web-of-trust jest bardziej wiarygodny • Ale trudniejszy i zajmuje dużo czasu oraz zarządzania • CAs są prostsze ale bardziej jak „wielki brat” • Tańsze i łatwiej nimi zarządzać • Strategia połączona? • Niech CA werifikuje ludzi techniką web-of-trust
private Podpisujemy cyfrowo Message or File Digital Signature 128 Bytes Message Digest This is a really long message about Bill’s… Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHDFHSD(** Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Hash Function (SHA, MD5) AsymmetricEncryption Funkcja hash użyta by skalkulować krótki, unikatowy „odcisk palca” wiadomości Kluczy prywatny podpisu-jącego
Digital Signature Jrf843kjfgf*£$&Hdif*7oUsd*&@:<CHDFHSD(** Asymmetricdecryption (e.g. RSA) Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” ? == ? Are They Same? Publiczny klucz podpisującego Py75c%bn&*)9|fDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’rkvegMs” Same hash function(e.g. MD5, SHA…) Każdy wierzy w publiczny klucz bo go może zweryfikować This is a really long message about Bill’s… Oryg. wiadomość Verifying a Digital Signature
Certyfikaty • Najprostszy to: • Informacja o właścicielu i • Jego klucz publiczny • To wszystko jest podpisane przez CA któremu ufamy
X.509 Certificate OU=Project Botticelli… The Key or Info About It
Weryfikacja autentyczności • Melinda dostaje certyfikat Billa • Sprawdza podpis na certyfikacie • Więc wierzy w certyfikat • Ale czy przed nią stoi Bill czy Scott • Melinda prosi by Bill zaszyfrował losowo wybraną frazę (“I really need more shoes”) • Bill ma swój prywatny klucz więc odpowiada (“*&$^%£$&£fhsdf*&EHFDhd62^&£”) • Melinda odszyfrowuje i porównuje odpowiedź – jako że się zgadza, wie że przed nią jest jedyny właściciel klucza prywatnego czyli Bill • Tak działa SSL...
DES, IDEA, RC2, RC5, Rijndael • Symmetric • DES (Data Encryption Standard) is the most popular • NSA may know “back door” - not very likely considering 20 years research • Keys very short: 56 bits • Triple DES (3 DES) not much more secure but may thwart NSA • IDEA (International Data Encryption Standard) • Similar to DES, but “not” from NSA • 128 bit keys • RC2 & RC5 (by R. Rivest) • RC2 is older and RC5 newer (1994) - similar to DES and IDEA S/MIME, SSL, Kerberos PGP S/MIME, SSL
Rijndael • Standard replacement for DES for US government, and, probably for all of us as a result… • Winner of the AES (Advanced Encryption Standard) competition run by NIST (National Institute of Standards and Technology in US) in 1997-2000 • Comes from Europe (Belgium) by Joan Daemen and Vincent Rijmen. “X-files” stories less likely (unlike DES). • Symmetric block-cipher (128, 192 or 256 bits) with variable keys (128, 192 or 256 bits, too) • Fast and a lot of good properties, such as good immunity from timing and power (electric) analysis • Construction deceptively similar to DES (S-boxes, XORs etc.) but really different
RC4 • Symmetric • Fast, streaming encryption • R. Rivest in 1994 • Originally secret, but “published” on sci.crypt • Related to “one-time pad”, theoretically most secure • But! • It relies on a really good random number generator • And that is the problem PPTP
RSA, ElGamal, ECC • Asymmetric • Very slow and computationally expensive – need a computer • Very secure • Rivest, Shamir, Adleman – 1978 • Popular and well researched • Strength in today’s inefficiency to factorise into prime numbers • Some worries about key generation process in some implementations • ElGamal • Relies on complexity of discrete logarithms • ECC (Elliptic Curve Cryptography) • If you understand how it works you are probably a mathematician • Better than RSA, in general SSL, PGP
MD5, SHA • Hash functions – not encryption at all! • Goals: • Not reversible: can’t obtain the message from its hash • Hash much shorter than original • Two messages won’t have the same hash • MD5 (R. Rivest) • 512 bits hashed into 128 • Mathematical model still unknown • But it resisted major attacks • SHA (Secure Hash Algorithm) • US standard based on MD5 S/MIME, SSL, PGP, Digital Sigs
Diffie-Hellman, “SSL”, Certs • Methods for key exchange • DH is very clever since you always generate a new “key-pair” for each asymmetric session • STS, MTI, and certs make it even safer • SSL uses a protocol to exchange keys safely • Certs (certificates) are the most common way to exchange public keys • Foundation of Public Key Infrastructure (PKI) PGP Everyone
Breaking It on $10 Million From a report by Robert Silverman, RSA Laboratories, 2000
Słabe systemy • Cokolwiek z 40-bitów (nawet 128 i 56 bitowe gdzie „przyblokowano” część) • CLIPPER • A5 (GSM) • Vigenère (komórki w USA) • Pochodzi z 1585! • Certyfikaty niezweryfikowane • Słabe certyfikaty (klasa 1 itd)
Pamiętaj: • Nie używaj nietestowanych systemów • Stwórz swoje PKI i bardzo dbaj o klucze prywatne • Wybierz i zaimplementuj strategię odwoływania kluczy • Używaj smartcards • Silne hasła są ważne...
Podsumowując • Zdecyduj co zabezpieczyć • Miej szefa bezpieczeństwa - CSO (Chief Security Officer) • Używaj mocnych algorytmów • Balansuj bezpieczństwo z używalnością
Kroki następne • www.microsoft.com/security • Studiuj PKI • Czytaj: • Applied Cryptography, B. Schneier, John Wiley & Sons, ISBN 0-471-12845-7 • Foundations of Cryptography, O. Goldereich, www.eccc.uni-trier.de/eccc-local/ECCC-Books/oded_book_readme.html • Handbook of Applied Cryptography, A.J. Menezes, CRC Press, ISBN 0-8493-8523-7 • PKI, A. Nash et al., RSA Press, ISBN 0-07-213123-3 • Cryptography in C and C++, M. Welschenbach, Apress, ISBN 1-893115-95-X (includes code samples CD)