Zastosowania informatyki w gospodarce Wykład 7
Transkrypt
Zastosowania informatyki w gospodarce Wykład 7
Instytut Informatyki, Automatyki i Robotyki Zastosowania informatyki w gospodarce Wykład 7 Certykikaty publiczne dr inż. Dariusz Caban dr inż. Jacek Jarnicki dr inż. Tomasz Walkowiak Certyfikat • Problem rozgłaszania klucza publicznego – Czy udostępniany w sieci klucz osoby/instytucji rzeczywiście do niej należy? • Rozwiązanie – Autentyczność klucza musi być poświadczona przez zaufaną instytucję – Instytucja CA (certificate authority) wystawia certyfikat (świadectwo autentyczności) • Minimalna zawartość certyfikatu – Jednoznaczna nazwa właściciela klucza publicznego DN (Distinguished Name) – Klucz publiczny – Informacje pozwalające ustalić ważność certyfikatu – Podpis elektroniczny instytucji poświadczającej – Certyfikat instytucji poświadczającej 2 Ważność certyfikatu • Problem zaufania do instytucji wystawiającej certyfikat – Certyfikat instytucji CA jest również podpisany i zawiera certyfikat nadrzędnej instytucji certyfikującej (cert. chaining) – Główna instytucja certyfikująca (Root CA) podpisuje sama swój certyfikat – Oprogramowanie wykorzystujące certyfikaty ma wbudowane listy głównych CA, można je uzupełniać przez doinstalowanie certyfikatów CA • Informacje w certyfikacie wykorzystywane przy weryfikacji ważności – Okres ważności (od – do) – Zastosowanie (do czego można wykorzystywać klucz) – Numer seryjny certyfikatu, nadany przez instytucję CA 3 Utrata ważności certyfikatu • Certyfikaty tracą ważność w sposób naturalny po upływie daty ważności (przeterminowanie certyfikatu) • Instytucje certyfikujące publikują listy certyfikatów, którym cofnięto ważność – CRL (certificate revocation list) zawierająca numery seryjne unieważnionych certyfikatów – Listy są podpisywane przez instytucję certyfikującą i udostępniane przez serwery tej instytucji – Oprogramowanie weryfikujące certyfikaty powinno okresowo ściągać listy CRL i je utrzymywać lokalnie – Protokół OCSP (online certificate status protocol) RFC 2560 umożliwia badanie ważności certyfikatów na bieżąco przez sieć • Obecnie nie implementowany w oprogramowaniu klientów 4 Tworzenie certyfikatów • Trzy rodzaje certyfikatów – Certyfikaty instytucji CA – Certyfikaty serwerów • Oprogramowanie klienta pobiera certyfikat z serwera i uwierzytelnia dostawcę usługi – Certyfikaty użytkowników • Użytkownik rozgłasza przy ich pomocy swoją tożsamość • Mogą służyć do autoryzacji dostępu do usług • Tworzenie certyfikatu – Przygotowanie zapytania, tzn. podanie swojej nazwy DN, wygenerowanie kluczy • Klucz publiczny wraz z DN w pliku zapytania (certificate request) • Zaszyfrowany klucz prywatny w osobnym pliku (key file) – CA podpisuje zapytanie, tworząc właściwy certyfikat 5 Standaryzacja postaci danych kryptograficznych • Format danych podlegających standaryzacji – Zapytania o certyfikat – Klucze prywatne – Certyfikaty • Różne źródła standaryzacji – Rekomendacje CCITT/OSI, obecnie ISO/IEC • X509 – Grupa norm RSA Laboratories • PKCS#1 – PKCS#12 – Grupa robocza PKIX w ramach IETF • Dokumenty RFC oraz Internet-Drafts – Producenci oprogramowania • Netscape SPKAC • Microsoft 6 Taktyka zaufania (policy of trust) • Wartość certyfikatu bezpośrednio zależy od zaufania, jakie mamy do instytucji go podpisującej • Certification Practice Statement – publiczna deklaracja CA dotycząca: • • • • • metod weryfikowania certyfikowanych jednostek zabezpieczania danych poufnych o jednostkach zabezpieczeń danych umożliwiających fałszowanie certyfikatów warunków dystrybucji certyfikatów oraz list CRL warunków wydawania certyfikatów innym jednostkom CA • Modele nabywania zaufania – Hierarchiczny (PEM) • Główna jednostka certyfikująca IPRA • Jednostki określające taktykę wydawania certyfikatów (PCA) • Jednostki certyfikujące zgodnie z tą taktyką (CA) 7 Taktyka zaufania • Inne modele nabywania zaufania – Publiczny (PKIX) • Certyfikaty rozszerzone o pola określające ich zastosowanie oraz opisy CPS • Każdy może utworzyć główną jednostkę certyfikującą, np. uczelnia może mieć zaufanie do swoich certyfikatów • Ograniczenia zakresu wydawania certyfikatów, np. uczelnia wystawia certyfikaty tylko swoim pracownikom i studentom • Bilansowanie kosztów i korzyści z określonego poziomu zaufania – Rozproszony (OpenPGP) • Każdy ma zaufanie do certyfikatów wystawionych osobiście • Każdy może dodatkowo podpisać i rozesłać innych certyfikat, określając poziom weryfikacji jego tożsamości (1-3) • Do uwiarygodnienia certyfikatu wykorzystujemy podpisy osób, którym ufamy (w określonym stopniu) i deklarowany poziom wer. • Wymiana podpisów certyfikatów (key signing parties) 8 Formaty danych certyfikacyjnych Klucz prywatny Klucz publiczny Zaszyfrowany klucz prywatny Komplet kluczy SPKAC, PEM Zapytanie o certyfikat Kodowany klucz prywatny DER, PEM Kodowany klucz prywatny i cert. PEM, PKCS#12 Kod. podpisane zapytanie PKCS#10 Certyfikat z listą CRL PKCS#7 Certyfikat X509 z podpisem CA Lista CRL Łańcuch certyfikatów PEM, PKCS#12 9 Certyfikaty publiczne X509 • Normy CCITT (obecnie ISO/IET/ITU) – 1988 wersja 1 certyfikatu – dokument X.509 • Element definicji poczty X.400 oraz książek adresowych X.500 • Kodowanie według normy ANS.1 oraz DER – Obecnie wersja 3 opublikowana w 1996 • Privacy Enhanced Mail (PEM), wykorzystanie w Internecie – Dokumenty RFC 1421 – RFC 1424 • Hierarchiczny model budowy zaufania • Kodowanie PEM – DER przekształcony base64 i nawiasy • Normy RSA Laboratories PKCS#1 – PKCS#12 • Dokładne procedury kodowania ANS.1/DER w interakcji z szyfrowaniem i wyliczaniem skrótów • Metody pakowania certyfikatów, list CRL i kluczy • Grupa robocza PKIX - RFC 2459 • Certyfikat X509 w Internecie wraz z rozszerzeniami 10 RFC 2459 - certyfikaty • Struktura opisana w ANS.1 z kodowaniem binarnym DER – Pola podstawowe • Certyfikat TBS (to be signed) • Identyfikator algorytmu podpisywania MD2/RSA MD5/RSA SHA-1/RSA SHA-1/DSA • Podpis (ciąg bitów) – Certyfikat TBS • • • • • • • • Wersja v1(0), v3(2) Numer seryjny Identyfikator algorytmu podpisywania (ten sam co powyżej!) Nazwa DN wystawcy certyfikatu Okres ważności Nazwa DN właściciela certyfikatu Klucz publiczny Rozszerzenia 11 RFC 2459 - certyfikaty • Nazwa Distinguished Name – Jeżeli dostępne X.500 to pole DN w tym serwisie – Pola • • • • Kraj C=PL Organizacja O=Wrocław University of Technology Jednostka OU=Institute Computer Engineering Control and Robotics Nazwa własna CN=Darek Caban – w IE oczekiwana jest nazwa komputera int.ict.pwr.wroc.pl • Inne pola, takie jak miasto, kod pocztowy (nie email!) – Nazwa DN musi być unikalna – Porównywana jest w całości (zawsze musi mieć te same pola) • Klucz publiczny • Identyfikator algorytmu RSA, Diffie-Hellman, DSA • Wartość klucza 12 RFC 2459 - certyfikaty • Rozszerzenia – Authority/Subject Key Identifier • Dodatkowe rozróżnienie kluczy należących do jednostki – Key Usage, Extended Key Usage • Do czego można używać klucz – Certificate Policies • Adres http do CPS i/lub opis tekstowy • Identyfikator – Subject Alternative Name • Adres DNS, http lub email właściciela – Name Constraints • Ograniczenia drzew nazw DN, które można certyfikować – CRL Distribution Points 13 Mechanizmy AAA • Uwierzytelnienie (authentication) – Identyfikacja • Określenie kto wymaga dostępu do zasobów – Identyfikacja użytkownika – konto – Identyfikacja stacji (punktu dostępu) – adres internetowy » Odwrotny DNS » Wykorzystanie serwerów finger i ident – Uwiarygodnienie identyfikacji, tzn. czy użytkownik i stacja są rzeczywiście tym za kogo się podają • Hasła • Certyfikaty • Autoryzacja – Nadanie określonych uprawnień użytkownikom lub stacjom • Audyt – Rejestracja wybranych czynności użytkownikom 14 Uwierzytelnianie • Proste hasło – System/serwer przechowuje hasło w postaci zaszyfrowanej (szyfrem nieodwracalnym) – Użytkownik podaje tajne hasło, które jest szyfrowane i porównywane z zapamiętanym – Znajomość hasła zaszyfrowanego jest niewystarczająca do uzyskania dostępu – Zagrożenia • Podsłuchanie, kradzież lub w inny sposób ujawnienie hasła – Stosowanie tych samych haseł w różnych systemach • Zgadnięcie hasła – metoda przeglądu zupełnego – metoda słownikowa (hasła „łatwe”, ograniczona wyobraźnia użytkowników) 15 Hasła jednorazowe • Program generuje listę haseł dla użytkownika – Przy uwierzytelnianiu, użytkownik dostaje numer kolejnego hasła, które ma podać – Użytkownik podaje odpowiednie hasło z listy, które nie będzie już nigdy więcej wykorzystane – Gdy lista się wyczerpie, generuje się następną – Zagrożenia: • Ryzyko kradzieży listy haseł • Nieporęczność listy • Karty identyfikacyjne (token’y) – – – – Urządzenie zewnętrzne (karta chip’owa, breloczek, notes) Użycie karty zabezpieczone hasłem Karta generuje hasło aktualnie (jednorazowo) ważne Karta zsynchronizowana w czasie z serwerem (SecurID) 16 Uwierzytelnianie challenge – response • Scenariusz 1: • Serwer wysyła zapytanie „challenge” • Klient szyfruje jego tekst z hasłem i odsyła jako odpowiedź • Serwer rozszyfrowuje odpowiedź lub powiela proces szyfrowania • Scenariusz 2: • Serwer wysyła do klienta „challenge” zaszyfrowane hasłem użytkownika • Klient rozszyfrowuje go i odsyła. Serwer weryfikuje poprawność rozszyfrowanego tekstu • HTTP Digest • Challenge nonce="abc" • Response response=MD5( MD5(A1):nonce:MD5(A2) ) A1: nazwa:realm:hasło A2: metoda:adres strony 17 Kerberos v. 5 • Przykład uwierzytelniania poprzez serwer uwierzytelniający • • • • Serwer AS (authentication server) Serwer TGS (ticket-granting server) Ticket – klucz sesyjny+id klienta zaszyfrowane kluczem serwera Credentials – ticket+klucz sesyjny zaszyfrowane kluczem klienta • Scenariusz podstawowy • • • • • Klient wysyła prośbę o ticket serwera do AS AS odsyła credentials, które klient odszyfrowuje Klient przesyła ticket do serwera docelowego Klient i serwer mają wspólny klucz sesyjny do komunikacji Atak odtwarzania – klient przesyła zaszyfrowany znacznik czasowy • Scenariusz z wykorzystaniem TGS • Scenariusz podstawowy ustala tylko ticket serwera TGS (TGT) • Ticket dostarczane przez TGS bez szyfrowania kluczem klienta 18 Autoryzacja dostępu do zasobów • Uwierzytelnienie może implikować autoryzację • Rodzaje dostępu – Dla zasobów prostych (plików, rekordów danych,...) • Odczyt, modyfikacja, użycie • Usuwanie • Dostęp do atrybutów, prawo własności – Dla zasobów kontenerowych (np. katalogów) • Odczyt, dopisywanie/usuwanie, sięganie do elementów • Uprawnienia dziedziczone • Model w systemach podobnych do Unix’a • Uprawnienia właściciela, grupy użytkowników, innych • Uprawnienia administratora root • Listy kontroli dostępu ACL • Uprawnienia bazowe • Rekordy dodające i ograniczające uprawnienia dla użytkowników i grup 19 Zagrożenia Sieć Serwer Klient • podsłuchiwanie • podszywanie się • zmiana treści Fałszywy serwer i/lub klient • odtwarzanie • ataki na serwery 20 Po co szyfrować połączenia? • Poufność przesyłania danych – – – – Ochrona tajemnicy operatora usługi Ograniczenie udostępniania danych Ochrona danych powierzonych – budowa zaufania klientów Ochrona prywatności • Integralność danych – Zmiana danych możliwa po rozszyfrowaniu i zaszyfrowaniu – Zmiany strumienia zaszyfrowanego – dane nieczytelne – Samo szyfrowanie nie jest wystarczające! • Autoryzacja przesyłanych danych – Szyfrowanie zapewnia słabą autoryzację – znajomość wspólnej tajemnicy • Zabezpieczenie przed odtworzeniem – „replay attack” – Przy pomocy kluczy sesyjnych (nie wynika z szyfrowania) 21 Metody wprowadzenia szyfrowania w usługach sieciowych Warstwa łącza Warstwa IP Warstwa tcp/udp Warstwa aplikacji Serwer scrambling Warstwa łącza IPsec Warstwa IP SSL / TLS Warstwa tcp/udp SSH Warstwa aplikacji Klient 22