Protokół SSL/TLS. Algorytmy wymiany klucza motywacja



Podobne dokumenty
Protokół SSL/TLS. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

SSL (Secure Socket Layer)

ZiMSK. Konsola, TELNET, SSH 1

Podstawy Secure Sockets Layer

Zamiana porcji informacji w taki sposób, iż jest ona niemożliwa do odczytania dla osoby postronnej. Tak zmienione dane nazywamy zaszyfrowanymi.

Bezpieczeństwo systemów informatycznych

Zastosowania informatyki w gospodarce Wykład 8

Zdalne logowanie do serwerów

SSL VPN Virtual Private Network with Secure Socket Layer. Wirtualne sieci prywatne z bezpieczną warstwą gniazd

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Problemy z bezpieczeństwem w sieci lokalnej

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Sieci VPN SSL czy IPSec?

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Protokół SSH. Patryk Czarnik

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

Bezpieczna poczta i PGP

Bezpieczeństwo w sieci I. a raczej: zabezpieczenia wiarygodnosć, uwierzytelnianie itp.

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Ochrona systemów informacyjnych. SSL (Secure Socket Layer) - protokół bezpiecznych połączeń sieciowych

Protokół HTTPS. Adam Danecki Informatyka gr. 1.4

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Zastosowania PKI dla wirtualnych sieci prywatnych

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

Stos TCP/IP. Warstwa aplikacji cz.2

Protokół SSH. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Bezpieczne protokoły Materiały pomocnicze do wykładu

Sieci komputerowe. Wykład 11: Podstawy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bazy danych i usługi sieciowe

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Ochrona danych i bezpieczeństwo informacji

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Laboratorium nr 6 VPN i PKI

Protokół IPsec. Patryk Czarnik

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

WHEEL LYNX SSL/TLS DECRYPTOR. najszybszy deszyfrator ruchu SSL/TLS

Bezpieczeństwo systemów komputerowych

SSH - Secure Shell Omówienie protokołu na przykładzie OpenSSH

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Protokoły zdalnego logowania Telnet i SSH

SET (Secure Electronic Transaction)

Bezpieczeństwo systemów informatycznych

Bezpieczeństwo w sieci lokalnej - prezentacja na potrzeby Systemów operacyjnych

Uwierzytelnianie w sieci x Zabezpieczenie krawędzi sieci - dokument techniczny

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Przewodnik użytkownika

WSIZ Copernicus we Wrocławiu

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

Wykład 9. Bezpieczeństwo systemów komputerowych. Protokoły SSL i TLS. Scentralizowane systemy uwierzytelniania. 5 listopada 2013

Poufność (słaba) Integralność (niekryptograficzna) Uwierzytelnienie (słabe) Brak kontroli dostępu Brak zarządzania kluczami

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe Wykład 7. Bezpieczeństwo w sieci. Paweł Niewiadomski Katedra Informatyki Stosowanej Wydział Matematyki UŁ niewiap@math.uni.lodz.

Bezpieczna poczta i PGP

Protokół 802.1x. Środowisko IEEE 802.1x określa się za pomocą trzech elementów:

Opis efektów kształcenia dla modułu zajęć

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Protokół IPsec. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2010/11. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Seminarium Katedry Radiokomunikacji, 8 lutego 2007r.

Wdrożenie infrastruktury klucza publicznego (PKI) dla użytkowników sieci PIONIER

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

Wykorzystanie protokołu T=CL w systemach kontroli dostępu

2.1. System kryptograficzny symetryczny (z kluczem tajnym) 2.2. System kryptograficzny asymetryczny (z kluczem publicznym)

Program szkolenia: Bezpieczny kod - podstawy

Infrastruktura klucza publicznego w sieci PIONIER

Technologie zapewniajace bezpieczeństwo w systemach operacyjnych (PKI, Smart Cards, SSL, SSH)

Bezpieczeństwo w Internecie

BSK. Copyright by Katarzyna Trybicka-Fancik 1. Nowy klucz jest jedynie tak bezpieczny jak klucz stary. Bezpieczeństwo systemów komputerowych

Problemy z bezpieczeństwem w sieci lokalnej

Laboratorium nr 4 Sieci VPN

Bezpieczeństwo systemów komputerowych.

System Kerberos. Użytkownicy i usługi. Usługa. Użytkownik. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10

Bezpieczne protokoły Główne zagadnienia wykładu

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Authenticated Encryption

Bezpieczeństwo systemów komputerowych

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Technologia Internetowa w organizacji giełdy przemysłowej

Bezpiecze ństwo systemów komputerowych.

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 9

Usługi sieciowe systemu Linux

Metody uwierzytelniania klientów WLAN

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

Bezpieczeństwo usług oraz informacje o certyfikatach

n = p q, (2.2) przy czym p i q losowe duże liczby pierwsze.

ERserver. iseries. Protokół SSL (Secure Sockets Layer)

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić?

System Kerberos. Patryk Czarnik. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Protokół Kerberos BSK_2003. Copyright by K. Trybicka-Francik 1. Bezpieczeństwo systemów komputerowych. Złożone systemy kryptograficzne

POLITYKA CERTYFIKACJI KIR dla ZAUFANYCH CERTYFIKATÓW NIEKWALIFIKOWANYCH

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych. w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Konfiguracja OpenVPN w AS30GSM200P. Informator Techniczny Strona 1 z 11

Autor: Piotr Ignał Opiekun: prof. dr hab. inż. Zbigniew Kotulski

Tunelowanie, VPN i elementy kryptografii

Transkrypt:

Protokół SSL/TLS Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2009/10 Algorytmy wymiany klucza motywacja Kryptografia symetryczna efektywna Ale wymagana znajomość tajnego klucza przez obie strony W internecie trudno zapewnić bezpieczny kanał dystrybucji klucza Zamiast tego kryptograficzny algorytm wymiany klucza Ustalona może zostać tylko mała porcja tajnych danych, która dopiero potem posłuży obu stronom do wygenerowania dłuższego klucza (w oparciu o losowe, ale nie tajne dane oraz bezpieczne funkcje haszujace).

Algorytm Diffiego-Hellmana wstęp Pozwala dwóm stronom na ustalenie tajnego klucza w niezabezpieczonej sieci. Nie wymaga znajomości żadnych tajnych informacji ani obecności zaufanej trzeciej strony. Autorzy: W. Diffie i M. Hellman, w oparciu o wcześniejsze badania R. Merkle M. J. Williamson niezależnie (wcześniej) odkrył tę sama metodę, ale jego odkrycie pozostało tajne. Wersja podstawowa oraz rozszerzenia umożliwiajace m.in. uwierzytelnienie stron. Algorytm Diffiego-Hellmana opis 1. Alicja i Bartek ustalaja (duża) liczbę pierwsza p oraz generator g. Te liczby moga być znane atakujacemu. 2. Dalej wszystkie operacje odbywaja się w grupie modulo p. 3. Alicja losuje liczbę a, a Bartek liczbę b. 4. Alicja wysyła do Bartka g a, a Bartek do Alicji g b. 5. Alicja oblicza (g b ) a, a Bartek (g a ) b. 6. Oboje obliczyli tę sama liczbę g a b. 7. Atakujacy, aby poznać tę liczbę, musiałby rozwiazać tzw. problem Diffiego-Hellmana, uznawany za obliczeniowo trudny, równie trudny jak problem logarytmu dyskretnego (ale bez dowodu :).

Wersje algorytmu Diffiego-Hellmana (1) Wersja anonimowa Zgodna z wcześniej opisanym algorytmem Brak uwierzytelnienia Nie odporna na atak typu człowiek w środku Wersja z hasłem (password-authenticated) Wymagana wcześniejsza znajomość tajnego hasła przez obie strony Pewien parametr publiczny (zwykle g) tworzony na podstawie hasła i nie przesyłany Mało popularny, w szczególności nie używany w TLS Wersje algorytmu Diffiego-Hellmana (2) Wkorzystanie kryptografii klucza publicznego Wersja ustalona (fixed) Certyfikat serwera, a opcjonalnie także klienta, zawiera publiczne parametry D-H, podpisane przez CA Może to skutkować tym samym kluczem w kolejnych sesjach Wersja efemeryczna (ephemeral) Klucz sesji zmienny Motywacja aby przechwycenie klucza (innymi środkami) nie dało możliwości odszyfrowania przeszłej ani przyszłej komunikacji Uwierzytelnienie zapewnione poprzez podpisywanie kluczami prywatnymi i weryfikację kluczami publicznymi z certyfikatów

Wymiana klucza oparta o klucz publiczny (np. RSA) 1. Bartek zna klucz publiczny Alicji. 2. Bartek generuje losowy klucz sesji, szyfruje go kluczem publicznym Alicji i wysyła. 3. Tylko Alicja może odszyfrować klucz sesji. 4. Ten scenariusz może być wzbogacony o uwierzytelnienie Bartka (np. podpisanie komunikatu kluczem prywatnym Bartka, co Alicja zweryfikuje jego kluczem publicznym). Historia SSL (Secure Socket Layer) i TLS (Transport Layer Security) to protokoły bezpiecznej komunikacji w sieciach komputerowych. Historia: SSL został opracowany przez Netscape. Głównym zastosowaniem miała być bezpieczna komunikacja przegladarki internetowej z serwerem (HTTPS). 1996 SSL 3.0, publiczny standard Netscape, stosowany do dzisiaj. 1999 TLS 1.0, oparty o SSL 3.0 standard IETF (RFC 2246). 2006 TLS 1.1 (RFC 4346), obecnie obowiazuj aca wersja. Trwa opracowywanie TLS 1.2.

Architektura i zastosowania Formalnie protokół znajduje się w warstwie aplikacji (najwyższej) modelu TCP/IP oraz w warstwie prezentacji (6/7) modelu OSI. Protokół działa nad TCP (lub potencjalnie innym pewnym protokołem warstwy transportowej) a pod protokołem aplikacji (np. HTTP). Implementacja SSL/TLS może być częścia aplikacji użytkownika (inaczej niż IPsec). Możliwe jest wykorzystanie SSL/TLS w protokołach innych niż HTTP (np. Telnet, SMTP, FTP). Do zastosowań należa także: tunelowanie dowolnej komunikacji opartej o TCP, budowa VPN (nie ma takich problemów z firewallami i NAT jak przy IPsec); przykładowa implementacja: OpenVPN. Z punktu widzenia programisty Biblioteki do obsługi SSL i TLS ogólnie dostępne (np. OpenSSL) Abstrakcja bezpiecznych gniazd wewnętrznie gniazda TCP (lub teoretycznie inne) otoczone warstwa bezpieczeństwa z zewnatrz dostępne poprzez zwykły interfejs gniazd Możliwość zastosowania istniejacego kodu operujacego na zwykłych gniazdach do gniazd bezpiecznych Plus oczywiście konfiguracja parametrów bezpieczeństwa, ale zwykle wystarczy podczas tworzenia

Dostępne metody wymiany klucza Wykorzystanie kryptografii klucza publicznego (RSA lub DSA). Wymaga podania certyfikatu. Kilka postaci algorytmu Diffiego-Hellmana: ustalony, efemeryczny, anonimowy (bez uwierzytelniania, tylko szyfrowanie). Fortezza: system oparty o karty chipowe, stosowany m.in. w instytucjach rzadowych USA, wycofany w wersji TLS 1.0. Dostępne algorytmy kryptograficzne Szyfrowanie: RC2, RC4, DES, 3DES, DES40, IDEA, Camellia. Hasz: MD2, MD4, MD5, SHA-1.

Podprotokoły SSL Record Protocol przesyłanie danych w rekordach. Rekord posiada identyfikator typu zawartości. Rekord może być skompresowany, zaszyfrowany, opatrzony kodem MAC. Handshake Protocol inicjalizajca, negocjacja kluczy i transformacji kryptograficznych. Change Cipher Spec zmiana ustalonych parametrów kryptograficznych. Alert Protocol protokół powiadamiania o błędach. Rzut oka na działanie SSL Serwer czeka na porcie TCP 443. Klient łaczy się z gniazdem TCP i wiadomościa ClientHello rozpoczyna fazę Handshake (szczegóły dalej). Także wiadomości protokołu Handshake wymieniane sa zgodnie z Record Protocol (w rekordach z typem zawartości 22). Faza Handshake kończy się ustaleniem parametrów protokołem Change Cipher Spec. Dalej protokołem Record wymieniane sa zaszyfrowane komunikaty wyższej warstwy. W razie potrzeby może nast apić wymiana wiadomości Change Cipher Spec lub Alert.

Handshake protocol schemat Handshake protocol schemat (2)

Zawartość ClientHello Wersja SSL (najwyższa jaka obsługuje). Wartość losowa (pieczatka czasowa + 28 losowych bitów). Identyfikator sesji (0 rozpoczęcie nowej sesji). Zestaw szyfrów (rodzaj i parametry algorytmu, klucz sesji) i metod wymiany klucza. Lista dostępnych metod kompresji. Zawartość ServerHello Ten sam zestaw danych co w ClientHello, z tym że: Wartości losowe sa niezależnie generowane przez klienta i serwer Jeśli klient zażadał nowej sesji (0), serwer generuje i podaje nowy identyfikator sesji Zestaw szyfrów i metod kompresji: klient proponuje, serwer wybiera Zazwyczaj przesyłany certyfikat serwera

Komunikat server_key_exchange Komunikat serwera w obranym algorytmie wymiany klucza. Może nie być potrzebny, gdy wystarcza certyfikat. Komunikat certificate_request Serwer może zażadać certyfikatu od klienta. Żadanie może zawierać: typ certyfikatu (RSA, DSS, rozmaite wersje DH), listę CA akceptowanych przez serwer.

Komunikat server_done Oznacza, że serwer wysłał wszystkie informacje i żadania. Klient może teraz: zweryfikować certyfikat serwera, jeśli serwer tego zażadał wysłać własny certyfikat lub wiadomość no_certificate alert. wysłać swoja wiadomość client_key_exchange. Komunikat client_key_exchange W zależności od wybranego sposobu wymiany klucza sekret zaszyfrowany kluczem publicznym serwera lub druga wiadomość w algorytmie DH.

Faza końcowa Klient wysyła change_cipher_spec. Od tej pory będę korzystał z wynegocjowanych parametrów i klucza. Klient wysyła finished podpisany przy pomocy wynegocjowanych kluczy. Serwer odpowiada w taki sam sposób. Zmiany w TLS w stosunku do SSL 3.0 Zrezygnowano z wymiany klucza Fortezza. Wykorzystuje się HMAC (konstrukcja tworzaca bezpiecznego MAC-a z bezpiecznej funkcji haszujacej) opartego o MD5/SHA-1. TLS umożliwia stosowanie trybu wstecznej kompatybilności z SSL 3.0, poza szczególnymi przypadkami, gdy druga strona jest bardzo ograniczona (np. umie używać tylko Fortezzy).

Idea instytucji uwierzytelniajacych (CA) Kryptografia klucza publicznego oparta o zaufanie do klucza publicznego PKI (Public Key Infrastructure) to zestandaryzowana idea zapewniania zaufania do certyfikatów w oparciu o dziedziczenie zaufania w strukturze drzewiatej CA (certificate authority) to instytucja obdarzona autorytetem, posiadajaca własny certyfikat CA podpisuje certyfikaty CA niższego rzędu CA podpisuje certyfikaty stron Strona A może mieć zaufanie do strony B, jeśli tylko ma zaufanie do CA znajdujacego się wśród przodków B w drzewie certyfikatów Podstawowe operacje w PKI Rejestracja użytkownik wnioskuje o certyfikat Certyfikacja wydanie certyfikatu Generowanie pary kluczy zwykle po stronie użytkownika, CA umieszcza klucz publiczny w certyfikacie i podpisuje Odnawianie certyfikatów ponad pierwotnie ustalony termin ważności Unieważnianie certyfikatów listy CRL (Certificate Revocation List) Wzajemna certyfikacja różne CA uwierzytleniaj a się nawzajem aby zwiększyć poziom zaufania do siebie

Sprawdzanie wiarygodności serwerów Certyfikaty serwera podpisane przez CA znane przegladarce: przegladarka weryfikuje certyfikat korzystajac z klucza publicznego CA Certyfikaty podpisane przez serwer: przegladarka pyta użytkownika czy wierzyć certyfikatowi Zaufanie do certyfikatów Serwera: publicznie dostępne serwery powinny posiadać certyfikaty podpisane przez niezależne instytucje, aby zapewnić że sa tymi, za kogo się podaja, samocertyfikacja (firma podpisuje certyfikaty swoim serwerom) powinna wystarczyć pracownikom firmy. Klienta: szyfrowanie i uwierzytelnianie serwera nie ogranicza użytkownikom dostępu do serwera; czasem może więc być potrzebne uwierzytelnianie klientów, dostępne w SSL/TLS, ale rzadko wykorzystywane.

Zawartość certyfikatu SSL/TLS używa certyfikatów X.509 (w wersji TLS 1.2 planowana także obsługa certyfikatów PGP) Certyfikat może zawierać m.in.: nazwę (domenowa) strony nazwa Instytucji Autoryzujacej (CA) klucz publiczny strony rodzaj (algorytm i parametry) klucza publicznego datę ważności parametry algorytmów kryptograficznych użytych do podpisu podpis CA całego certyfikatu Certyfikaty użytkowników czy hasła? Zalety certyfikatów: certyfikaty można bezpiecznie wysyłać przez sieć (haseł nie, przynajmniej niezaszyfrowanych), certyfikatów nie trzeba pamiętać w głowie :), sa silniejsza (kryptograficznie) metoda uwierzytelnienia. Wady certyfikatów: plik z certyfikatem można zgubić, uszkodzić, pliki z certyfikatem sa przypisane do komputera (nazwa hosta), przydatne sa hasła do certyfikatów ale wtedy trzeba je pamiętać jak zwykłe hasła.