Sieci komputerowe. Wykład 11: Podstawy bezpieczeństwa: ataki i tunele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski



Podobne dokumenty
Sieci komputerowe. Wykład 11: Podstawy bezpieczeństwa sieci. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 12: Bezpieczeństwo sieci. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

Bezpieczeństwo sieci. Sieci komputerowe. Wykład 13. Marcin Bieńkowski

Bezpieczeństwo sieci. Sieci komputerowe. Wykład 13. Marcin Bieńkowski

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

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

Problemy z bezpieczeństwem w sieci lokalnej

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

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

Metody zabezpieczania transmisji w sieci Ethernet

Metody ataków sieciowych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Protokoły sieciowe - TCP/IP

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

Protokoły zdalnego logowania Telnet i SSH

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Zagrożenia warstwy drugiej modelu OSI - metody zabezpieczania i przeciwdziałania Autor: Miłosz Tomaszewski Opiekun: Dr inż. Łukasz Sturgulewski

Najbardziej popularne metody włamań

ZiMSK. Konsola, TELNET, SSH 1

Bezpieczeństwo systemów informatycznych

Przesyłania danych przez protokół TCP/IP

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Bazy danych i usługi sieciowe

Adresy w sieciach komputerowych

Problemy z bezpieczeństwem w sieci lokalnej

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

BEZPIECZEŃSTWO W SIECIACH

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Router programowy z firewallem oparty o iptables

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Usługi sieciowe systemu Linux

IP Spoofing is still alive... Adam Zabrocki ( nie działa ;) ) pi3@itsec.pl (lub oficjalnie: adam@hispasec.com)

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Narzędzia diagnostyczne protokołów TCP/IP

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

Ping. ipconfig. getmac

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Paweł Pokrywka. Radar w Ethernecie. Lokalizowanie hostów w sieci LAN

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

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

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Ćwiczenie 7 Sieć bezprzewodowa z wykorzystaniem rutera.

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

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

PODSŁUCH W SIECIACH ETHERNET SSL PRZECIWDZIAŁANIE PODSŁUCHOWI

BRINET Sp. z o. o.

MidpSSH - analiza bezpieczeństwa

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

Marcin Szeliga Sieć

Protokół DHCP. DHCP Dynamic Host Configuration Protocol

Metody uwierzytelniania klientów WLAN

Sieci VPN SSL czy IPSec?

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

Zdalne logowanie do serwerów

ZiMSK. mgr inż. Artur Sierszeń mgr inż. Łukasz Sturgulewski ZiMSK 1

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Laboratorium Sieci Komputerowych - 2

4. Podstawowa konfiguracja

Zarządzanie bezpieczeństwem w sieciach

Projekt LAN. Temat: Skaner bezpieczeństwa LAN w warstwie 2. Prowadzący: dr inż. Krzysztof Szczypiorski Studenci: Kończyński Marcin Szaga Paweł

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

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

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

router wielu sieci pakietów

Spoofing. Wprowadzenie teoretyczne

Protokół IPsec. Patryk Czarnik

Sieci komputerowe - administracja

Bezpieczeństwo systemów informatycznych

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

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

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

ANALIZA BEZPIECZEŃSTWA SIECI MPLS VPN. Łukasz Polak Opiekun: prof. Zbigniew Kotulski

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

Wybrane metody obrony przed atakami Denial of Service Synflood. Przemysław Kukiełka

Ataki sieciowe Materiały pomocnicze do wykładu

Bazy Danych i Usługi Sieciowe

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

E.13.1 Projektowanie i wykonywanie lokalnej sieci komputerowej / Piotr Malak, Michał Szymczak. Warszawa, Spis treści

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

BEFSR11 / 41. Routing statyczny Routing dynamiczny (RIP-1 / RIP-2)

Przełączanie i Trasowanie w Sieciach Komputerowych

PBS. Wykład Organizacja zajęć. 2. Podstawy obsługi urządzeń wykorzystywanych podczas laboratorium.

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

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

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

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Laboratorium nr 6 VPN i PKI

ZAKŁAD SYSTEMÓW ROZPROSZONYCH. Politechnika Rzeszowska BEZPIECZEŃSTWO I OCHRONA INFORAMCJI

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Wykaz zmian w programie SysLoger

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

Transkrypt:

Sieci komputerowe Wykład 11: Podstawy bezpieczeństwa: ataki i tunele Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 11 1 / 45

Czyli krótki przeglad niektórych problemów Sieci komputerowe (II UWr) Wykład 11 2 / 45

Ataki Ataki Sieci komputerowe (II UWr) Wykład 11 3 / 45

Ataki Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 11 4 / 45

Ataki Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 11 4 / 45

Ataki Złe protokoły Źródło nr 1: Źle zaprojektowane protokoły Podsłuchiwanie i podszywanie się (sniffing and spoofing) Sieci komputerowe (II UWr) Wykład 11 5 / 45

Ethernet Ataki Złe protokoły Ethernet = brak szyfrowania Koncentratory (huby) tryb nasłuchu (promiscous mode) Przełaczniki sieciowe: przepełnianie pamięci CAM Przełacznik ma sprzętowa tablicę haszujac a (CAM = content addressable memory) z wpisami adres MAC port. Zmieniajac adres MAC można zalać CAM nowymi wpisami przełacznik przejdzie w tryb uczenia się. ARP spoofing animacja. Częściowe rozwiazanie: dobre i drogie przełaczniki. Sieci komputerowe (II UWr) Wykład 11 6 / 45

Wyższe warstwy Ataki Złe protokoły Atak typu man-in-the-middle Podsłuchujemy przez wstawienie swojego komputera pomiędzy strony nieszyfrowanej komunikacji. Około 10% ludzi rocznie traci w ten sposób swoje internetowe tożsamości. Trywialne jeśli nasz komputer jest odpowiednim routerem. Jak przekierować ruch do siebie? RIP spoofing Własny serwer DHCP (dobre przełaczniki sieciowe?) Własny bezprzewodowy punkt dostępowy (własny punkt nazywajacy się stud-wifi?) Zatruwanie pamięci podręcznej serwera DNS. Sieci komputerowe (II UWr) Wykład 11 7 / 45

IP spoofing Ataki Złe protokoły Fałszowanie adresu źródłowego IP Jedyny problem: sprawić, żeby taki pakiet został przepuszczony przez routery. Rozwiazanie: weryfikacja (tzw. ingress filtering). Przykładowo z interfejsu sieciowego podłaczonego do sieci 192.168.0.0/24 nie powinien nadejść pakiet z źródłowym IP 200.200.200.200 Skuteczne jeśli router jest blisko nadawcy. Sieci komputerowe (II UWr) Wykład 11 8 / 45

Ataki Błędy implementacji Źródło nr 2: Dobry protokół, zła implementacja (mniej oczywiste, ale bardziej dotkliwe) Sieci komputerowe (II UWr) Wykład 11 9 / 45

Błedy implementacji Ataki Błędy implementacji Brak sprawdzania poprawności wprowadzanych danych Błędy przepełnienia bufora,../, SQL injection... Atakujacy zmusza nasza aplikację do wykonania pewnych nieprzewidzianych operacji. Sieci komputerowe (II UWr) Wykład 11 10 / 45

adresy rosną Ataki Błędy implementacji Przykład 1: przepełnienie bufora void wczytaj_dane () { char str[12]; scanf ("\%s", str); } stos procesu adres powrotu z wczytaj dane() Atakujacy wpisuje Jakieś 12 znaków Odpowiedni adres powrotu Kod maszynowy do uruchomienia str[12] Sieci komputerowe (II UWr) Wykład 11 11 / 45

adresy rosną Ataki Błędy implementacji Przykład 1: przepełnienie bufora void wczytaj_dane () { char str[12]; scanf ("\%s", str); } stos procesu złosliwy kod adres powrotu z wczytaj dane() Atakujacy wpisuje Jakieś 12 znaków Odpowiedni adres powrotu Kod maszynowy do uruchomienia str[12] Sieci komputerowe (II UWr) Wykład 11 11 / 45

Przykład 2: atak typu../ Ataki Błędy implementacji Pomocniczy skrypt WWW skrypt jest w katalogu /var/www/. skrypt jest programem wyświetlajacym zawartość pliku. Przykładowo http://jakas.domena/skrypt?plik=test wyświetla zawartość pliku /var/www/test. Co zrobi wejście na stronę http://jakas.domena/skrypt?plik=../../etc/passwd? Sieci komputerowe (II UWr) Wykład 11 12 / 45

Przykład 2: atak typu../ Ataki Błędy implementacji Pomocniczy skrypt WWW skrypt jest w katalogu /var/www/. skrypt jest programem wyświetlajacym zawartość pliku. Przykładowo http://jakas.domena/skrypt?plik=test wyświetla zawartość pliku /var/www/test. Co zrobi wejście na stronę http://jakas.domena/skrypt?plik=../../etc/passwd? Sieci komputerowe (II UWr) Wykład 11 12 / 45

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Sieci komputerowe (II UWr) Wykład 11 13 / 45

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Sieci komputerowe (II UWr) Wykład 11 13 / 45

Ataki Błędy implementacji Przykład 3: bład typu SQL injection Aplikacja WWW odwołujaca się do bazy Skrypt dostaje przez formularz argument $user i wykonuje polecenie mysql_query("select * FROM tab WHERE user = $user "); Podajemy w tym polu: x OR 1 = 1 Albo lepiej: x ; DROP TABLE tab; - - Obrazek ze strony http://xkcd.com/ Sieci komputerowe (II UWr) Wykład 11 13 / 45

Ataki Błędy implementacji Przykład 3: Próba SQL injection w prawdziwym życiu Radary odczytujace prędkość i tablice rejestracyjne Wrocław ma takie na niektórych trasach wjazdowych Dane sa jakoś przetwarzane i wyświetlane na tablicy nad szosa DW 12345 ZWOLNIJ. Sieci komputerowe (II UWr) Wykład 11 14 / 45

Ataki Błędy implementacji Przykład 3: Próba SQL injection w prawdziwym życiu Radary odczytujace prędkość i tablice rejestracyjne Wrocław ma takie na niektórych trasach wjazdowych Dane sa jakoś przetwarzane i wyświetlane na tablicy nad szosa DW 12345 ZWOLNIJ. Sieci komputerowe (II UWr) Wykład 11 14 / 45

Ataki Przykład 4: do przemyślenia Błędy implementacji Przykład nieprecyzyjnej specyfikacji: Ethernet definiuje minimalna długość ramki. Standard określa, że ewentualne wypełnienie ma być zerami. Nie określa, kto i kiedy to powinien zrobić Efekt: pamięć na wypełnienie nie jest inicjowana. W sieć wysyłamy część wcześniej używanej pamięci RAM. Sieci komputerowe (II UWr) Wykład 11 15 / 45

Błędy w implementacji Ataki Błędy implementacji Programista: ZAWSZE sprawdzać poprawność danych od użytkownika W szczególności nigdy nie zakładać, że użytkownik używa przepisowego klienta usługi. Administrator: Częsta aktualizacja systemu Różne ogólne techniki zapobiegawcze, np. zabronienie wykonywania programów na stosie. Program A działajacy z uprawnieniami B ma lukę atakujacy może wykonać to, na co pozwalaja uprawnienia B złota zasada minimalnych uprawnień. Tylko potrzebne usługi i tylko tym, którym sa one konieczne. Sieci komputerowe (II UWr) Wykład 11 16 / 45

Exploits Ataki Błędy implementacji Luki i gotowe sposoby ich wykorzystania (exploits) sa publikowane na specjalistycznych listach dyskusyjnych (np. Bugtraq). Te programy sa często wykorzystywane przez niedoświadczonych włamywaczy Często wystarczy drobna zmiana, typu zmiana portu na którym nasłuchuje SSH, żeby taki program nie działał (security by obscurity). Sieci komputerowe (II UWr) Wykład 11 17 / 45

Ataki Robaki internetowe (worms) Błędy implementacji Luki wykorzystywane sa też w automatyczny sposób przez robaki internetowe Zainfekowane komputery staja się częścia większej sieci (botnet) rozsyłanie spamu przeprowadzanie ataków DDoS Sieci komputerowe (II UWr) Wykład 11 18 / 45

Skanowanie portów Ataki Błędy implementacji Wyszukiwanie otwartych portów nmap Przykładowe rodzaje: connect scan SYN scan ustawianie różnych dziwnych flag (np. sama flaga ACK) Niejasny status prawny Sieci komputerowe (II UWr) Wykład 11 19 / 45

Podatność na ataki Ataki Czynnik ludzki Omówiliśmy dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja. Ale po co to wszystko? Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo... Sieci komputerowe (II UWr) Wykład 11 20 / 45

Podatność na ataki Ataki Czynnik ludzki Omówiliśmy dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja. Ale po co to wszystko? Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo... Sieci komputerowe (II UWr) Wykład 11 20 / 45

Czynnik ludzki Ataki Czynnik ludzki Po co włamywać się na serwer, skoro można zadzwonić i spytać o hasło? Kevin Mitnick Sieci komputerowe (II UWr) Wykład 11 21 / 45

Phishing Ataki Czynnik ludzki Uwaga! Użytkownik???? wiadomość: przesyła Tobie następującą Witaj!, KOCHAJMY SIĘ Dalsza część wiadomości dostępna jest tutaj: http://www5.nasza-klasa.pl/profile/872276 (http://www5.nasza-klasa.pl.rdir84.com/profile/?873105 Copyright (c) 2006-2008 nasza-klasa.pl, korzystanie z serwisu oznacza akceptacje regulaminu. Sieci komputerowe (II UWr) Wykład 11 22 / 45

Czynnik ludzki, cd. Ataki Czynnik ludzki Wykorzystanie tańczacych świnek daje 95% szansy na uruchomienie złośliwego kodu na cudzym komputerze! Obrazek ze strony http://www.securingjava.com/chapter-one/chapter-one-7.html Sieci komputerowe (II UWr) Wykład 11 23 / 45

Ataki Ataki typu DoS Denial of Service czyli blokowanie dostępu do usług Sieci komputerowe (II UWr) Wykład 11 24 / 45

Ataki Blokowanie dostępu do usługi Ataki typu DoS Denial of service Cel: wyczerpanie zasobów systemu operacyjnego albo zatkanie łacza. Jakie zasoby możemy wyczerpać: moc obliczeniowa, limit jednoczesnych połaczeń (connect()), SYN flood = wysyłanie samych segmentów SYN zapełnienie tworzonej przez listen() kolejki połaczeń oczekujacych na nawiazanie. Sieci komputerowe (II UWr) Wykład 11 25 / 45

Odmiany DoS Ataki Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP. DDoS = rozproszony DoS (wykorzystanie wielu komputerów, np. uprzednio zainfekowanych robakiem internetowym). Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary komputery odpowiadaja ofierze. Komunikat = segment SYN, ICMP echo request (ping) Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary (obecnie nie zadziała) Niezamierzony DDoS (tzw. slashdot effect). Sieci komputerowe (II UWr) Wykład 11 26 / 45

Odmiany DoS Ataki Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP. DDoS = rozproszony DoS (wykorzystanie wielu komputerów, np. uprzednio zainfekowanych robakiem internetowym). Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary komputery odpowiadaja ofierze. Komunikat = segment SYN, ICMP echo request (ping) Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary (obecnie nie zadziała) Niezamierzony DDoS (tzw. slashdot effect). Sieci komputerowe (II UWr) Wykład 11 26 / 45

Odmiany DoS Ataki Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP. DDoS = rozproszony DoS (wykorzystanie wielu komputerów, np. uprzednio zainfekowanych robakiem internetowym). Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary komputery odpowiadaja ofierze. Komunikat = segment SYN, ICMP echo request (ping) Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary (obecnie nie zadziała) Niezamierzony DDoS (tzw. slashdot effect). Sieci komputerowe (II UWr) Wykład 11 26 / 45

Obrona przed DDoS Ataki Ataki typu DoS Przed DDoS można się bronić tylko jeśli pochodzi z jednego geograficznego obszaru Problem: ustalenie źródła ataków (źródłowe adresy IP sa podrobione), potem można zadzwonić do odpowiedniego administratora ICMP Traceback Każdy router dla przesyłanego pakietu, z małym prawdopodobieństwem (ok. 1/20.000), wysyła do odbiorcy dodatkowo komunikat ICMP Komunikat zawiera informacje o przesyłanym właśnie przez router pakiecie, informacje o routerze, etc. Sieci komputerowe (II UWr) Wykład 11 27 / 45

Szyfrowanie Jak poradzić sobie z podsłuchiwaniem? Szyfrować i tunelować! Sieci komputerowe (II UWr) Wykład 11 28 / 45

Dawno temu... Szyfrowanie SSH Użytkownicy podłaczali się do zdalnych komputerów używajac programów, takich jak telnet, rlogin,... tekst jawny Kanał komunikacyjny łatwo podsłuchać (np. podsłuchiwać może pośredniczacy router). W szczególności widać przesyłane hasła. Cliparty ze strony http://jimmac.musichall.cz/i.php?i=computer-clipart Sieci komputerowe (II UWr) Wykład 11 29 / 45

Dawno temu... Szyfrowanie SSH Użytkownicy podłaczali się do zdalnych komputerów używajac programów, takich jak telnet, rlogin,... tekst jawny Kanał komunikacyjny łatwo podsłuchać (np. podsłuchiwać może pośredniczacy router). W szczególności widać przesyłane hasła. Cliparty ze strony http://jimmac.musichall.cz/i.php?i=computer-clipart Sieci komputerowe (II UWr) Wykład 11 29 / 45

SSH Szyfrowanie SSH Szyfrowanie kanału komunikacyjnego Wymuszone przez wzrost popularności sieci Najpopularniejsze rozwiazanie: ssh (secure shell) Proste użycie: ssh user@host Sieci komputerowe (II UWr) Wykład 11 30 / 45

SSH: Jak to działa? Szyfrowanie SSH Znowu kryptografia asymetryczna? Standardowe podejście (tak, to już było): Serwer wysyła klientowi swój klucz publiczny Klient generuje symetryczny klucz sesji (np. AES) i wysyła go szyfrujac go kluczem publicznym serwera. Od tej pory połaczenie szyfrowane jest kluczem sesji. Klient się uwierzytelnia podajac swoje hasło. Czego tu brakuje? Sieci komputerowe (II UWr) Wykład 11 31 / 45

Serwerze, czy to ty? Szyfrowanie SSH Znowu nie wiemy, czy łaczymy się z dobrym serwerem! Przy pierwszym połaczeniu otrzymujemy: The authenticity of host ssh-server.example.com (12.18.429.21) can t be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting? tzn. serwer przesyła nam klucz publiczny i wyświetlamy obliczona funkcję skrótu klucza. Znowu czynnik ludzki: kto sprawdza czy fingerprint jest poprawny? Dobra wiadomość: wystarczy sprawdzić jeden raz, potem klucz publiczny serwera zostanie zapisany w /.ssh/known_hosts. Sieci komputerowe (II UWr) Wykład 11 32 / 45

Serwerze, czy to ty? Szyfrowanie SSH Znowu nie wiemy, czy łaczymy się z dobrym serwerem! Przy pierwszym połaczeniu otrzymujemy: The authenticity of host ssh-server.example.com (12.18.429.21) can t be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting? tzn. serwer przesyła nam klucz publiczny i wyświetlamy obliczona funkcję skrótu klucza. Znowu czynnik ludzki: kto sprawdza czy fingerprint jest poprawny? Dobra wiadomość: wystarczy sprawdzić jeden raz, potem klucz publiczny serwera zostanie zapisany w /.ssh/known_hosts. Sieci komputerowe (II UWr) Wykład 11 32 / 45

Klient się uwierzytelnia Szyfrowanie SSH Może po prostu podać hasło do konta. Albo... tak, to też już było: klient = Alicja serwer = Bob Serwer zna klucz publiczny klienta, bo klient go uprzednio zapisał w pliku authorized_keys na serwerze. Sieci komputerowe (II UWr) Wykład 11 33 / 45

Klient się uwierzytelnia Szyfrowanie SSH Może po prostu podać hasło do konta. Albo... tak, to też już było: To ja, Alicja X Y = E d (X) klucz publiczny: e klucz prywatny: d zna: e = klucz publiczny Alicji Sprawdza, czy E e (Y ) = X klient = Alicja serwer = Bob Serwer zna klucz publiczny klienta, bo klient go uprzednio zapisał w pliku authorized_keys na serwerze. Sieci komputerowe (II UWr) Wykład 11 33 / 45

Zastosowania Szyfrowanie SSH Za pomoca ssh można też: uruchamiać zdalnie polecenia: ssh serwer "polecenie_zdalne" kopiować pliki na zdalny serwer: scp plik_lokalny serwer:/katalog/zdalny/ albo z powrotem: scp -r serwer:/katalog/zdalny/ /katalog/lokalny/ A co z innymi nieszyfrowanymi usługami? Sieci komputerowe (II UWr) Wykład 11 34 / 45

Zastosowania Szyfrowanie SSH Za pomoca ssh można też: uruchamiać zdalnie polecenia: ssh serwer "polecenie_zdalne" kopiować pliki na zdalny serwer: scp plik_lokalny serwer:/katalog/zdalny/ albo z powrotem: scp -r serwer:/katalog/zdalny/ /katalog/lokalny/ A co z innymi nieszyfrowanymi usługami? Sieci komputerowe (II UWr) Wykład 11 34 / 45

Szyfrowanie Tunele Tunele Sieci komputerowe (II UWr) Wykład 11 35 / 45

Szyfrowanie Tunele Model warstwowy protokół warstwy i + 1 jest przesyłany jako dane protokołu warstwy i. Tunelowanie Przesyłanie pewnych usług sieciowych za pomoca innych usług sieciowych w sposób łamiacy standardowy model warstwowy. Cel: zestawianie wirtualnego bezpośredniego połaczenia między dwoma odległymi komputerami. Sieci komputerowe (II UWr) Wykład 11 36 / 45

Szyfrowanie Tunele Model warstwowy protokół warstwy i + 1 jest przesyłany jako dane protokołu warstwy i. Tunelowanie Przesyłanie pewnych usług sieciowych za pomoca innych usług sieciowych w sposób łamiacy standardowy model warstwowy. Cel: zestawianie wirtualnego bezpośredniego połaczenia między dwoma odległymi komputerami. Sieci komputerowe (II UWr) Wykład 11 36 / 45

Szyfrowanie Przykład 1: TCP w SSH Tunele Wiele usług sieciowych przesyła dane niezaszyfrowane (POP3, SMTP,...) Można korzystać z SSL, ale tylko w przypadku niektórych usług. Jeśli mamy konto na zdalnej maszynie, możemy szyfrować połaczenia z tymi usługami za pomoca ssh Obrazek ze strony http://www.ssh.com/support/documentation/online/ssh/adminguide/32/port_forwarding.htm Sieci komputerowe (II UWr) Wykład 11 37 / 45

Szyfrowanie Przykład 1: TCP w SSH, cd. Tunele Połaczenia z portem 4025 na lokalnym komputerze będa przekazywane (i szyfrowane po drodze) do komputera zdalny-serwer, a tam przekazywane do portu 25: ssh -L 4025:localhost:25 user@zdalny-serwer Sieci komputerowe (II UWr) Wykład 11 38 / 45

Przykład 2: VPN Szyfrowanie Tunele VPN = Wirtualna sieć prywatna (Virtual Private Network) Zadanie: mamy dwie sieci połaczone Internetem i chcemy zrobić z nich jedna logiczna sieć. Transmisja wewnatrz każdej z nich jest bezpieczna, ale transmisja w Internecie już nie. Przykład: dostęp do firmowej sieci z domu. Sieci komputerowe (II UWr) Wykład 11 39 / 45

Przykład 2: VPN, cd. Szyfrowanie Tunele OpenVPN = implementacja VPN Obrazek ze strony http://openmaniak.com/openvpn.php Sieci komputerowe (II UWr) Wykład 11 40 / 45

Szyfrowanie Przykład 3: IPv6 w IPv4 Tunele IP wersja 6 Do tej pory mówiliśmy o wersji 4 protokołu IP. Pula dostępnych adresów kończy się...... choć ze względu na CIDR i NAT i tak wolniej niż oczekiwano 3 lutego 2011 IANA rozdało ostatnie adresy RIR-om! Rozwiazanie wielu problemów 128-bitowe adresy efektywniejsze: nagłówki IP stałej długości, brak fragmentacji IP,... Obsługa QoS (Quality of Service) mechanizmy autokonfiguracji (np. generowanie IP na podstawie adresu MAC zamiast protokołu APIPA) Sieci komputerowe (II UWr) Wykład 11 41 / 45

Szyfrowanie Przykład 3: IPv6 w IPv4 Tunele IP wersja 6 Do tej pory mówiliśmy o wersji 4 protokołu IP. Pula dostępnych adresów kończy się...... choć ze względu na CIDR i NAT i tak wolniej niż oczekiwano 3 lutego 2011 IANA rozdało ostatnie adresy RIR-om! Rozwiazanie wielu problemów 128-bitowe adresy efektywniejsze: nagłówki IP stałej długości, brak fragmentacji IP,... Obsługa QoS (Quality of Service) mechanizmy autokonfiguracji (np. generowanie IP na podstawie adresu MAC zamiast protokołu APIPA) Sieci komputerowe (II UWr) Wykład 11 41 / 45

Szyfrowanie Przykład 3: IPv6 w IPv4, cd. Tunele Adresy w IPv6 Notacja = 8 bloków rozdzielonych przez :, np. 2001:0db8:0000:0000:0000:0000:1428:0000 Można opuszczać wiodace zera, np. 0000 zastępować przez 0. Jeden z fragment składajacy się z samych zer można opuścić i zastapić przez ::, np. 2001:db8:0::1428:0 Localhost = ::1/128 Sieci komputerowe (II UWr) Wykład 11 42 / 45

Szyfrowanie Przykład 3: IPv6 w IPv4, cd. Tunele Migracja IPv4 IPv6 jest bardzo powolna. Mamy komputer z IPv4 i chcemy się połaczyć z serwerem IPv6 Serwer istnieje również w sieci IPv4 Łaczymy się z adresem IPv4 Nasz źródłowy adresy IPv4 zostanie automatycznie przekształcony na IPv6 = ::ffff:0:0/96 Serwer istnieje tylko w sieci IPv6 Uruchamiamy tunel do komputera, który obsługuje oba te protokoły Pakiet IPv6 jest w polu ładunku pakietu IPv4 Sieci komputerowe (II UWr) Wykład 11 43 / 45

Szyfrowanie Przykład 4: SSH w DNS Tunele To nie żart dnstunnel.de Legalny program do robienia nielegalnych rzeczy. Większość lotnisk i płatnych punktów dostępowych przepuszcza ruch DNS. Pytamy spreparowany "serwer DNS" np. o domenę ntez375sy2qk7jsg2og3eswo2jujscb3r43as6m6hl2ws xobm7h2olu4tmaq.lyazbf2e2rdynrd3fldvdy2w3tifi gy2csrx3cqczxyhnxygor72a7fx47uo.nwqy4oa3v5rx6 6b4aek5krzkdm5btgz6jbiwd57ubnohnknpcuybg7py.6 3026-0.id-32227.up.sshdns.feh.dnstunnel.de Sieci komputerowe (II UWr) Wykład 11 44 / 45

Lektura dodatkowa Szyfrowanie Tunele Kurose, Ross: rozdział 8 Sieci komputerowe (II UWr) Wykład 11 45 / 45