Protokół SSH. Patryk Czarnik



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

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

ZiMSK. Konsola, TELNET, SSH 1

SSL (Secure Socket Layer)

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

Protokół IPsec. Patryk Czarnik

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Protokoły zdalnego logowania Telnet i SSH

Bezpieczeństwo systemów informatycznych

Protokół SSL/TLS. Algorytmy wymiany klucza motywacja

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

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

Stos TCP/IP. Warstwa aplikacji cz.2

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

Bezpieczna poczta i PGP

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

Podstawy Secure Sockets Layer

Bezpieczeństwo systemów informatycznych

Zdalne logowanie do serwerów

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Ochrona danych i bezpieczeństwo informacji

Usługi sieciowe systemu Linux

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

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

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

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

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

WSIZ Copernicus we Wrocławiu

Protokoły internetowe

Marcin Szeliga Sieć

Problemy z bezpieczeństwem w sieci lokalnej

Protokoły warstwy aplikacji

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

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

Instalacja i konfiguracja serwera SSH.

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

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

BEZPIECZEŃSTWO W SIECIACH

Bezpieczna poczta i PGP

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

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

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

SMB protokół udostępniania plików i drukarek


Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Bezpieczeństwo systemów komputerowych.

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

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

IPsec bezpieczeństwo sieci komputerowych

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

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

Seminarium Katedry Radiokomunikacji, 8 lutego 2007r.

Serwery autentykacji w sieciach komputerowych

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

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

Authenticated Encryption

Narzędzia klienta usługi archiwizacji

Bezpieczeństwo systemów komputerowych

Praktyczne aspekty stosowania kryptografii w systemach komputerowych

Zastosowania informatyki w gospodarce Wykład 8

Sieci VPN SSL czy IPSec?

Laboratorium Protokoły sieci teleinformatycznych

UNIWERSYTET EKONOMICZNY WE WROCŁAWIU. Sprawozdanie. Analizator sieciowy WIRESHARK. Paweł Jarosz Grupa 20 IiE

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Sieci wirtualne VLAN cz. I

Cryptobox Aplikacja do synchronizacji danych użytkownika w systemie KMD2

Bezpieczeństwo w zarzadzaniu siecia SNMP

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

Laboratorium nr 6 VPN i PKI

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

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

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

Połączenie VPN Host-LAN IPSec z wykorzystaniem Windows Vista/7. 1. Konfiguracja routera. 2. Konfiguracja klienta VPN. 3. Zainicjowanie połączenia

Klient-Serwer Komunikacja przy pomocy gniazd

Warsztaty z Sieci komputerowych Lista 7

Wielowarstwowość transmisji w sieciach komputerowych

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

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

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bezpieczeństwo aplikacji typu software token. Mariusz Burdach, Prevenity. Agenda

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

1. Model klient-serwer

DESlock+ szybki start

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

Programowanie Sieciowe 1

Uwierzytelnianie jako element procesu projektowania bezpieczeństwa

Problemy z bezpieczeństwem w sieci lokalnej

VLAN. VLAN (ang. Virtual Local Area Network) - sieć komputerowa wydzielona logicznie w ramach innej, większej sieci fizycznej

CitiSFT Podręcznik Użytkownika

BEZPIECZEOSTWO SYSTEMU OPERO

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

INSTRUKCJA OBSŁUGI DLA SIECI

Bringing privacy back

Adresy w sieciach komputerowych

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

BeamYourScreen Bezpieczeństwo

Transkrypt:

Protokół SSH Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2009/10 Praca na odległość potrzeby w zakresie bezpieczeństwa Identyfikacja i uwierzytelnienie osoby Uwierzytelnienie serwera Zabezpieczenie przed podszyciem się w trakcie trwania sesji Poufność danych przekazywanych podczas pracy Potrzeby te sa zaspokajane przez protokół SSH

Inne systemy pracy na odległość TELNET RSH X11 produkty i protokoły typu zdalny pulpit, np. komercyjny Citrix (Windows NT i późniejsze) Historia SSH-1, 1995, Tatu Ylönen (Fin). SSH-2, 1996, niekompatybilny wstecz, poprawa funkcjonalności (np. wiele sesji na jednym połaczeniu) i bezpieczeństwa (m.in. kontrola integralności MAC, wymiana kluczy D-H). W 2006 SSH-2 został standardem IETF (główny dokument: RFC 4251). Pierwsze wersje oryginalnego SSH były otwarte, późniejsze własnościowe (proprietary). Od 1999 rozwijana jest otwarta implementacja: OpenSSH, obecnie najbardziej popularna (wg Wikipedii). Liczba implementacji, w tym darmowych, stale rośnie, pojawiaja się implementacje na urzadzenia mobilne itp.

Ogólne cechy SSH Protokół SSH działa w warstwie sesji modelu ISO/OSI, a w warstwie aplikacji modelu TCP/IP. Opiera się na protokole transportu strumieniowego (TCP). Dodatkowo zapewnia kompresję. Zapewnia tunelowanie sesji terminala. Zapewnia tunelowanie protokołu X11. Zapewnia tunelowanie innych protokołów. Zapewnia negocjację algorytmów kryptograficznych. Zastosowania SSH Zdalna praca na terminalu tekstowym także graficznym dzięki tunelowaniu X11. Dostęp do serwerów pozbawionych monitora i klawiatury. Tunelowanie dowolnych połaczeń TCP: zabezpieczenie niezabezpieczonych protokołów (alternatywa dla TLS), pokonanie firewalli, dostęp do maszyn w wewnętrznej sieci. Bezpieczny transfer plików (przy pomocy dodatkowych protokołów).

Składniki SSH Protokół składa się z trzech zasadniczych komponentów: Protokołu transportowego Zapewnia uwierzytelnienie serwera, poufność danych i ich integralność, opcjonalnie obsługuje kompresję. Protokołu uwierzytelnienia użytkownika Zapewnia uwierzytelnienie klienta. Protokołu połaczenia Multipleksuje różne połaczenia. Protokół transportowy Funkcjonalność protokołu transportowego (RFC 4253): ustanawianie połaczenia, przesyłanie danych (także pozostałych podprotokołów), wymiana kluczy oparta o klucz publiczny, wymiana kluczy Diffiego-Hellmana, ponowna wymiana kluczy, żadanie usługi, inne operacje (rozł aczenie, zignorowane dane, debug, zarezerwowane).

Protokół transportowy ustanawianie połaczenia Serwer SSH nasłuchuje (domyślnie) na porcie TCP 22. Na poczatku następuje wymiana wersji protokołu SSH. Część tego tekstu jest używana w algorytmie Diffiego-Hellmana. Tutaj następuje potwierdzanie tożsamości serwera. Potem następuje dalsza negocjacja, w tym negocjacja kluczy. Protokół transportowy przesyłanie danych Format pakietu z danymi długość całego pakietu ( 35000) długość uzupełnienia przesyłane dane (być może skompresowane, dł. 32768) uzupełnienie (minimalna jednostka transportu: 8 lub dł. bloku szyfrowania; minimalna długość danych 16 lub dł. bloku) MAC (message authentication code) Uwagi Implementacje moga pozwalać na przesyłanie dłuższych pakietów. Jak widać na tym przykładzie specyfikacja dość zagmatwana...

Protokół transportowy kompresja MAC liczony ze skompresowanych danych Kontekst kompresji jest inicjalizowany przy wymianie kluczy Operacje uaktualnienia kontekstu po każdym pakiecie Metody kompresji: none, zlib Protokół transportowy szyfrowanie Algorytm szyfrowania negocjowany przy wymianie kluczy. Szyfrowaniu podlegaja: długość pakietu, długość uzupełnienia, dane, uzupełnienie. Kolejne pakiety tworza jeden strumień szyfrowany (ważne dla CBC, CFB). Klucze sa co najmniej 128-bitowe. Algorytmy szyfrowania: 3DES, BLOWFISH, TWOFISH256, TWOFISH, TWOFISH192, TWOFISH128, AES256, AES192, AES128, SERPENT256, SERPENT192, SERPENT128, ARCFOUR, IDEA, CAST128, NONE.

Protokół transportowy integralność danych mac = MAC(klucz, numer_kolejny_pakietu. pakiet ) MAC liczony jest z całego pakietu bez MAC. MAC liczony jest z danych niezaszyfrowanych. Numer kolejny jest zawsze liczony i nie jest zerowany przy renegocjacjach. Numer kolejny pierwszego pakietu to 0. MAC jest przesyłany bez szyfrowania. Stosowane algorytmy: HMAC-SHA1, HMAC-SHA1-96, HMAC-MD5, HMAC-MD5-96 (96 oznacza branie pierwszych 96 bitów wyniku). Wtracenie: HMAC HMAC algorytm budowy sumy kryptograficznej w oparciu o funkcje haszujac a. HMAC H (K, tekst) = H(K XOR opad H(K XOR ipad tekst)) K - klucz kryptograficzny używany do uwierzytelnienia; text - uwierzytelniany tekst; - konkatenacja; B - długość bloku funkcji haszujacej; ipad - B razy powtórzony bajt 0x36; opad - B razy powtórzony bajt 0x5C; H(...) - algorytm liczenia hasza (czyli np. SHA-1)

Protokół transportowy negocjacje Na poczatku każda strona przesyła listę obsługiwanych algorytmów (wszystkie aspekty kryptograficzne i kompresja). Dodatkowo przesyłane jest losowe ciasteczko. Można przyspieszać negocjacje zgadujac algorytmy. Potem wysyłany jest komunikat KEXINIT właściwa negocjacja kluczy. Algorytm Diffiego-Hellmana. Wynikiem jest para: sekret (K) i hash (H). H jest używane jako identyfikator sesji. K i H służa do liczenia wszystkich kluczy oraz wektorów poczatkowych. Po negocjacji trzeba zatwierdzić wartości specjalnym komunikatem. Protokół transportowy algorytmy klucza publicznego Używane do certyfikacji serwera. Zastosowane algorytmy: DSS, RSA, X.509v3 z RSA, X.509v3 z DSS, SPKI z RSA, SPKI z DSS, PGP z RSA i PGP z DSS.

Protokół transportowy żadanie usługi Obecnie zdefiniowane usługi uwierzytelnienie użytkownika, połaczenie Protokół uwierzytelnienia umiejscowienie RFC 4252. Stosowany po zażadaniu odpowiedniej usługi. Potrzebuje nazwy użytkownika, nazwy usługi oraz nazwy metody. Obsługiwane metody: none, publickey, password, hostbased. Dodatkowy standard do wprowadzania nowych metod. Zastosowanie: keyboard-interactive

Protokół uwierzytelnienia omówienie metod none pusta metoda autentyfikacji, każdy jest wpuszczany lub zatrzymywany, zazwyczaj zablokowana. publickey klient wysyła sygnaturę zaszyfrowana swoim kluczem prywatnym, serwer ja odszyfrowuje odpowiednim kluczem publicznym i wpuszcza, jeśli odszyfrowanie się powiodło. password klient przesyła do serwera zaszyfrowane hasło. hostbased klient jest wpuszczany, gdy określony użytkownik loguje się z określonego komputera (pliki.shosts w katalogu domowym uzytkownika po stronie serwera). Generyczne uwierzytelnienie za pomoca komunikatów RFC 4256. Standard umożliwia stosowanie metod autentyfikacji klienta innych niż wymienione cztery. Protokół umożliwia autentykację klienta przez serwer za pomoca serii komunikatów. Umożliwia wprowadzenie nowej metody autentykacji bez zmian w aplikacji klienta. Obecne główne zastosowanie: metoda keyboard-interactive.

Uwierzytelnienie serwera klucze maszyn Każdy serwer posiada klucz maszyny (co najmniej jeden). Dwa modele wiazania kluczy z maszynami lokalna baza danych u klienta, zarzadca certyfikatów. Protokół połaczenia do czego służy RFC 4254. Ustanawianie kanałów komunikacyjnych: terminalowych, X11, tunelowych. Przesyłanie danych. Przekazywanie wartości zmiennych środowiskowych. Kontrola przepływu. Sygnały (jak w UNIX-ie). Kody wyjścia z programów.

Zastosowania SSH zdalna praca W trybie tekstowym local> ssh -l username remotehost remotehost> ls Tunelowanie X11 local> ssh -Y username@remotehost remotehost> firefox Zastosowania SSH transfer plików Zwykły FTP tunelowany przez SSH. SCP (secure copy) tylko kopiowanie plików. Zależny od systemu (np. dopasowywanie nazw plików robi system operacyjny serwera). SFTP (SSH file transfer protocol) posiada rozbudowana funkcjonalność (listowanie katalogów, usuwanie plików, zmiana atrybutów) pozwalajac a nawet na zamontowanie zdalnego systemu plików (SSHFS). Mniej zależny od systemu. rsync protokół synchronizacji plików (katalogów), jako warstwy bezpieczeństwa można użyć SSH.

Zastosowania SSH tunelowanie -L local> ssh -N -L 8888:www.onet.pl:80 username@remotehost & local> links localhost:8888 Otwiera port 8888 na lokalnym komputerze, połaczenie z którym tak naprawdę łaczy z (w przykładzie) www.onet.pl:80. Zastosowania SSH tunelowanie -R local> ssh -N -R 8888:serwis.w.mojej.sieci:80 username@remotehost & Otwiera port 8888 na remotehost, połaczenie z którym tak naprawdę łaczy z (w przykładzie) serwis.w.mojej.sieci:80.

Możliwości konfiguracji serwera OpenSSH Wybór dostępnych metod uwierzytelnienia Wybór dostępnych algorytmów kryptograficznych i kompresji Dostępność lub nie tunelowania X11 Blokowanie tunelowania określonego typu (domyślnie -R zablokowane dla interfejsów sieciowych innych niż loopback)... Sekcje reguł dla poszczególnych użytkowników i hostów, z których sie łacz a