Protokoły warstwy aplikacji
Transkrypt
Protokoły warstwy aplikacji
UNIWERSYTET KAZIMIERZA WIELKIEGO 1. Cel ćwiczenia Wydział Matematyki Fizyki i Techniki Celem ćwiczenia jest zapoznanie z podstawowymi protokołami warstwy aplikacji: telnet, ssh, DNS, POP3, FTP, http. Analiza wiadomości generowanych podczas konwersacji klient-serwer posłuży do oceny bezpieczeństwa wymienionych protokołów. Zakład Teleinformatyki 2. Podstawy teoretyczne Z punktu widzenia użytkownika, sieć komputerowa umożliwia prawidłowe funkcjonowanie aplikacji sieciowych. Każda z aplikacji korzysta z protokołu wymiany danych z inną aplikacją sieciową, zlokalizowaną po stronie zdalnej. Protokół określa sposób wymiany informacji między procesami w odległych hostach, w szczególności: składnie wiadomości, scenariusze wymiany wiadomości, sposób kodowania, szyfrowania (jeśli wymagane). Jeśli aplikacja nie korzysta z protokołu transportowego TCP, konieczna jest także realizacja sterowania przepływem oraz zapewnienie niezawodności transmisji. Obsługa protokołów warstwy aplikacji zlokalizowana jest w aplikacjach hostów czyli w terminalach dołączonych do sieci. Dane protokołów aplikacji dzielone są na segmenty przez protokoły transportowe, czyli TCP lub UDP. Segmenty kapsułkowane są w pakiety IP, te natomiast kapsułkowane są w ramki Ethernet i przesyłane przez medium w postaci szeregowej do urządzenia sieciowego, np. przełącznika. Laboratorium Sieci Komputerowych Protokoły aplikacji można podzielić na dwie grupy: - protokoły standardowe, dobrze znane i zestandaryzowane w RFC, - protokoły autorskie, zwykle implementowane przez jednego producenta, który nie publikuje specyfikacji protokołu. Do pierwszej z wymienionych grup należą: Telnet, FTP, POP3 itp., drugą grupę reprezentują protokoły wykorzystywane przez aplikacje np. Skype, GG itp. ćwiczenie: 13 Protokoły warstwy aplikacji 2.1. Protokół FTP (File Transfer Protocol) Protokół FTP przeznaczony jest do transferu plików między hostami. FTP jest dość nietypowym protokołem, ponieważ używa dwóch dwukierunkowych połączeń TCP do poprawnej realizacji zadania. Połączenie sterujące (control) zawiązywane jest z serwerem ftp na porcie 21, natomiast połączenie do transmisji danych użytkownika (data) nawiązywane jest z portem 20. Istnieją dwa tryby pracy FTP: aktywny i pasywny. Tryb aktywny jest pierwotnym trybem pracy, jednak może powodować pewne niedogodności przy stosowaniu zapór sieciowych. Z tego powodu powstał tryb pasywny, obsługiwany najczęściej przez przeglądarki internetowe. prowadzący: mgr inż. Piotr Żmudziński [email protected] Bydgoszcz 2011r. 2.1.1. Aktywny tryb FTP W trybie aktywnym klient losuje numer lokalnego, wolnego portu N (z puli tzw. portów wysokich, czyli powyżej 1024) i nawiązuję połączenie z portem 21 serwera © P.Żmudziński, 12.2010r., ver 3.0 1 (jeśli nie podano inaczej). Następnie klient otwiera lokalny port o numerze N+1 i oczekuje połączenia przychodzącego z portu 20 serwera FTP, Rys.1. SMTP Warstwa aplikacji POP3 SNMP TFTP FTP Telnet DNS 110 Warstwa transportu Nr portu 23 25 21 161 53 TCP ID protokołu UDP ICMP 17 6 Warstwa sieci Rys. 1 Połączenie z serwerem FTP w trybie aktywny 69 1 IP W przypadku stosowania firewall’a po stronie klienta, należy zezwolić na nawiązywanie połączenia przez zdalny host z portu 20 na host lokalny, dowolny port. 0800H 0800H Kod typu 2.1.2. Pasywny tryb FTP ARP Sterownik karty sieciowej Warstwa łącza danych W odróżnieniu od poprzedniego, w trybie pasywnym oba połączenia są otwierane przez klienta. Pierwsze połączenie inicjowanie jest między N portem wysokim (zwanym także nieuprzywilejowanym) a portem 21 serwera. Następnie klient wysyła polecenie PORT do serwera, który otwiera port wysoki i przesyła jego numer – X do klienta . W kolejnym kroku, klient nawiązuje połączenie między lokalnym portem N+1 i zdalnym portem Y. 0806H Adres fizyczny Karta Ethernetowa Warstwa dostępu Rys. 3 Protokoły w modelu ISO/OSI 2.2. Protokół telnet Protokół telnet przeznaczony jest do inicjowania zdalnej sesji terminalowej na serwerze. Usługa telnet jest jedną z najstarszych usług dostępnych w sieciach komputerowych, protokół telnet został opisany w RFC854 i RFC855. Serwery domyślnie nasłuchują na połączenie telnet na porcie 23 TCP. Ze względu na podatność na przejęcie sesji oraz sniffing, zalecane jest korzystanie z ssh. 2.3. Protokół ssh SSH (Secure Shell Login) jest bezpiecznym protokołem terminalu zdalnego udostępniającym usługi szyfrowanego połączenia. Dobrze znanym portem przypisanym do usługi SSH jest 22 protokołu TCP. Dostępne są dwie wersje protokołu Rys. 2 Połączenie z serwerem FTP w trybie pasywnym © P.Żmudziński, 12.2010r., ver 3.0 2 ssh1 i ssh2 oraz dwie rodziny protokołu: komercyjna wersja SSH oraz niekomercyjna OpenSSH. Dostępne są następujące algorytmy szyfrowania: DES, 3DES, BLOWFISH, IDEA, ARCFOUR, TWOFISH. Podstawowym algorytmem generowania asymetrycznych kluczy uwierzytelniających jest DSS lub RSA. OpenSSH korzysta jedynie z otwartych algorytmów, zaznaczonych w tekście kursywą. Popularnym klientem ssh pod Windows jest putty. − 2.4. Protokół POP3 POP3 (Post Office Protocol ver.3) jest protokołem pocztowym pozwalającym na pobieranie poczty z serwera. Protokół w wersji 3, która nie jest zgodna wstecz, został zestandaryzowany w dokumentach RFC1939, RFC 1957 i nowszych. − − − − − 2.5. Protokół DNS Protokół DNS zapewnia komunikację z serwerami DNS, które świadczą usługę zamieniania (rozwiązywania) nazw domenowych hostów na adres IP, niezbędny do rozpoczęcia komunikacji ze zdalnym hostem. Obecnie wykorzystywana wersja protokołu DNS została opublikowana w RFC 1034 i RFC 1035 oraz RFC 1918. − Zapytania i odpowiedzi DNS są najczęściej kapsułkowane w protokole UDP. Każdy komunikat musi się zawrzeć w jednym pakiecie UDP (standardowo 512 oktetów), format komunikatu DNS został zdefiniowany w RFC 1033. Sekcja nagłówka występuje zawsze. W sekcji zapytania zawsze znajduje się jedno zapytanie zawierające nazwę domenową, żądany typ danych i klasę (IN). Sekcja odpowiedzi zawiera rekordy zasobów stanowiące odpowiedź na pytanie. − − − Tab. 1 Format wiadomości protokołu DNS − OPCODE [4 bity] – określa rodzaj zapytania wysyłanego od klienta, jest przypisywany przez serwer do odpowiedzi. Wartości: 0 – QUERY – standardowe zapytanie, 1 – IQUERY – zapytanie zwrotne, 2 – STATUS – pytanie o stan serwera, 3-15 – zarezerwowane do przyszłego użytku AA [1 bit] – (Authoritative Answer) – oznacza, że odpowiedź jest autorytatywna. TC [1 bit] – (TrunCation) – oznacza, że odpowiedź nie zmieściła się w jednym pakiecie UDP i została obcięta. RD [1 bit] – (Recursion Desired) – oznacza, że klient żąda rekurencji – pole to jest kopiowane do odpowiedzi RA [1 bit] – (Recursion Available) – bit oznaczający, że serwer obsługuje zapytania rekurencyjne Z [3 bity] – zarezerwowane do przyszłego wykorzystania. Pole powinno być wyzerowane. RCODE (Response CODE) – kod odpowiedzi. Przyjmuje wartości: 0 – brak błędu 1 – błąd formatu – serwer nie potrafił zinterpretować zapytania 2 – błąd serwera – wewnętrzny błąd serwera 3 – błąd nazwy – nazwa domenowa podana w zapytaniu nie istnieje 4 – nie zaimplementowano – serwer nie obsługuje typu otrzymanego zapytania 5 – odrzucono – serwer odmawia wykonania określonej operacji, np. transferu strefy 6-15 – zarezerwowane do przyszłego użytku QDCOUNT [16 bitów] – określa liczbę wpisów w sekcji zapytania ANCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji odpowiedzi NSCOUNT [16 bitów] – określa liczbę rekordów serwera w sekcji zwierzchności ARCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji dodatkowej W sekcji zapytanie występuje zapytanie zawierające nazwę domenową, żądany typ danych oraz klasę. Serwer zwraca odpowiedź zawierającą rekord odpowiedzi na zadane pytanie. Rekordów tych może być więcej niż jeden. Jeśli odpowiedź odsyła klienta od innych serwerów DNS, są one wymienione w sekcji zwierzchności. 3. Zagadnienia do przestudiowania 1. 2. 3. Poniżej wyjaśnione zostaną znaczenia poszczególnych bitów nagłówka. − ID [16 bitów] – (IDentifier) – identyfikator tworzony przez program wysyłający zapytanie; serwer przepisuje ten identyfikator do swojej odpowiedzi, dzięki czemu możliwe jest jednoznaczne powiązanie zapytania i odpowiedzi − QR [1 bit] – (Query or Response) – określa, czy komunikat jest zapytaniem (0) czy odpowiedzią (1) © P.Żmudziński, 12.2010r., ver 3.0 Do czego służy i jak działa protokół SMTP? Do czego służy i jak działa protokół IMAP? Jak działa SSL? 4. Bibliografia [1] K. Krysiak, Sieci komputerowe – Kompendium, wyd. II, Helion, Gliwice 2006 [2] Vademecum teleinformatyka I / II / III, Warszawa, IDG 2002-2006 3 2. Zalogować się z linii komend za pomocą telnet z dowolnego hosta na serwer 192.168.13.15 login/pass: st01/imsis2008 3. Po zarejestrowaniu pakietów, odszukać pierwszy segment TCP połączenia a następnie wybrać Analiyze -> Follow TCP Stream 4. Przeanalizować ruch związany z logowaniem. Czy możliwe jest dzięki analizie ramek podejrzenie loginu i hasła? () 5. Przebieg ćwiczenia Ćwiczenie 13 realizowane jest na stanowisku C i D przy wykorzystaniu stacji PC10-13, PC14-17 z zainstalowanym analizatorem sieci WireShark. Aby wykorzystać koncentrator HUB1 lub HUB2, należy przekrosować porty komputerów za pomocą portów I-VIII na prawy stojak. 5.3. Analiza protokołu ssh 1. Uruchomić WireShark na PC10/11/12 2. Zalogować się za pomocą aplikacji putty (skrót znajduje się na pulpicie) z dowolnego hosta na serwer 192.168.13.15 3. Po zarejestrowaniu pakietów, odszukać pierwszy segment TCP połączenia a następnie wybrać z menu Analyze -> Follow TCP Stream 4. Przeanalizować ruch związany z logowaniem. Czy możliwe jest dzięki analizie ramek podejrzenie loginu i hasła? () Analiza protokołu POP3 1. Skonfigurować na PC4 nowe konto w Outlook Express w następujący sposób: - serwer pop3: pop3.wp.pl, serwer poczty wychodzącej SMTP: smtp.wp.pl, numer portu: 587 - użytkownik: lab-sieci - hasło: tajne-haslo - serwer poczty wychodzącej wymaga uwierzytelnienia. 2. Uruchomić WireShark na PC10/11/12. Odebrać pocztę z wcześniej skonfigurowanego konta. 4. Przeanalizować format wiadomości protokołu POP3 wykorzystywanego do odbierania poczty. Czy można odszukać ciąg znaków będący loginem oraz hasłem do obserwowanego konta? Jakie dodatkowe informacje można uzyskać analizując zawartości ramek protokołu POP3? 5. Przygotować w OE dowolny list elektroniczny (format tekstowy) i wysłać ją na inne konto pocztowe za pomocą konta wcześniej skonfigurowanego. Czy protokoły pocztowe przesyłają wiadomości w sposób zaszyfrowany? () Rys. 4 Sieć laboratoryjna 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 5.1. Analiza protokołu FTP Połączyć sieć zgodnie ze schematem Rys4 Na PC10/11/12 rozpocząć przechwytywanie ramek. Uruchomić TotalCommandera i skonfigurować połączenie do serwera FTP zlokalizowanego na serwer 192.168.13.15, login/hasło: st01/imsis2008 Wybrać tryb aktywny – odznaczony box „użyj pasywnego trybu...” Nawiązać połączenie z serwerem FTP, przesłać niewielki plik, zerwać połączenie. Przeanalizować połączenie między aplikacjami. Zwrócić uwagę na porty połączenia oraz kierunek inicjacji połączenia (). Wybrać tryb pasywny – zaznaczony box „użyj trybu pasywnego...” Nawiązać połączenie z serwerem FTP, przesłać niewielki plik, zerwać połączenie. Przeanalizować połączenie między aplikacjami. Zwrócić uwagę na porty połączenia oraz kierunek inicjacji połączenia (). Przeanalizować procedurę logowania klienta do zdalnego serwera. Czy jest ona bezpieczna ()? 1. 2. 3. 4. 5.5. Analiza protokołu http 1. Uruchomić WireShark na PC10/11/12 2. Na PC5 otworzyć stronę http://www.informatyka.ukw.edu.pl/ 3. Po zarejestrowaniu pakietów, odszukać pierwszy segment TCP połączenia a następnie wybrać Analyze -> Follow TCP Stream 4. Spostrzeżenia zamieścić w sprawozdaniu (). 5.2. Analiza protokołu telnet 1. Uruchomić WireShark na PC10/11/12 © P.Żmudziński, 12.2010r., ver 3.0 5.4. Analiza protokołów DNS Na PC11 i PC12 rozpocząć przechwytywanie ramek. Skasować DNS cache >ipconfig /flushdns Połączyć się ze stroną www.wp.pl za pomocą dowolnej przeglądarki Przeanalizować informacje wymieniane między klientem z serwerem DNS zarejestrowane przez WireShark (). 6. Sprawozdanie 4 UNIWERSYTET KAZIMIERZA WIELKIEGO, WMFiT, ZT Laboratorium Sieci Komputerowych Sprawozdanie z wykonania ćwiczenia nr ćwiczenia: 13 grupa : zespół: data: ocena : Protokoły warstwy aplikacji Imię i Nazwisko członków zespołu (drukowanymi literami) 1. 2. 3. 4. 6.1 Protokół FTP Dla połączeń FTP w obu trybach zanotować numery portów połączeń, zaznaczyć liniami symbolizującymi połączenia odpowiednie porty, na liniach zaznaczyć groty symbolizujące kierunek inicjowania połączenia. Przeanalizować ramki przesyłane przez klienta i serwer FTP. Czy login i hasło są szyfrowane? FTP szyfruje / nie szyfruje hasło i login (niepotrzebne skreślić) 6.2 Protokół telnet Czy protokół telnet jest bezpieczny ? Dlaczego? TAK / NIE ................... ...................................... ......................................................... ................... ...................................... ................... ...................................... Czy telnet wysyła login w jednym pakiecie? TAK / 6.3 Protokół ssh Czy protokół ssh jest bezpieczny ? Dlaczego? © P.Żmudziński, 12.2010r., ver 3.0 5 TAK / NIE NIE ................... ...................................... warstwa transportowa protokół porta nadawcy ......................................................... port odbiorcy ................... ...................................... 6.4 Protokół POP3 warstwa aplikacji pole wiadomości Czy protokół POP3 przesyła login i hasło do skrzynki pocztowej tekstem jawnym? TAK / NIE ID (numer transakcji) 6.5 Protokół DNS –www.wp.pl ZAPYTANIE warstwa sieci protokół adres nadawcy adres odbiorcy wartość pole wiadomości QR RD OPCODE RA TC Z QDCOUNT ANCOUNT wartość answer (domain) warstwa transportowa protokół port nadawcy port odbiorcy answer (type) answer (class) answer (addr.) warstwa aplikacji pole wiadomości wartość pole wiadomości Czy protokół DNS jest odporny na ataki ? wartość / NIE Dlaczego? ID (numer transakcji) ................... ...................................... QR RD OPCODE RA TC Z QDCOUNT ANCOUNT ......................................................... ................... ...................................... 6.6 Analiza protokołu http Czy protokół http jest protokołem bezpiecznym? query (domain) query (type) TAK TAK / NIE Dlaczego? query (class) ................... ...................................... ODPOWIEDŹ warstwa sieci protokół ......................................................... adres nadawcy © P.Żmudziński, 12.2010r., ver 3.0 adres odbiorcy ................... ...................................... 6