Wykład 6 10.04.2019 [email protected]/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. ·...

34
Sieci komputerowe Sieci komputerowe Wykład 6 10.04.2019 dr inż. Łukasz Graczykowski [email protected] Semestr letni 2018/2019

Transcript of Wykład 6 10.04.2019 [email protected]/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. ·...

Page 1: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

Sieci komputeroweSieci komputerowe

Wykład 610.04.2019

dr inż. Łukasz Graczykowski

[email protected]

Semestr letni 2018/2019

Page 2: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

Warstwa aplikacjiWarstwa aplikacji

Usługi siecioweUsługi sieciowe

źródło: Helion

Page 3: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

3 / 33SK 2019, Wykład 6

Warstwa aplikacji● W modelu ISO/OSI wyróżniamy w zasadzie trzy warstwy:

– warstwa sesji

– warstwa prezentacji

– warstwa aplikacji

● W praktyce to aplikacjeTCP(UDP)/IP realizujązadania ostatnich 3warstw

Page 4: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

4 / 33SK 2019, Wykład 6

Warstwa aplikacji● W ostatniej warstwie działają protokoły komunikacji, które używane

są przez finalne aplikacje komunikujące się z użytkownikiem

● Część z nich już poznaliśmu (np. DNS czy DHCP)

● Protokoły zapewniają możliwość korzystania z różnych usług dostępnych w sieci, np.:– WWW/HTTP – przeglądanie stron internetowych

– FTP – serwery plików

– SMTP – wysyłanie/odbieranie e-mail’i

– POP oraz IMAP – odczytywanie e-maili z serwera przez aplikacje klienckie

– SSH – bezpieczne logowanie

– LDAP – usługi katalogowe (np. wspólne usługi drukarek, logowanie, itp.)

– … itp./itd.

Page 5: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

5 / 33SK 2019, Wykład 6

Standaryzacja – Request for Comments● Protokoły definiowane są przez RFC (Request for Comments)

● Utrzymywane są przez IETF (Internet Engineering Task Force)● https://www.ietf.org/standards/rfcs/

Page 6: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

6 / 33SK 2019, Wykład 6

Telnet● Telnet (Network Terminal Protocol) jest

protokołem zadalnego dostępu do komputera poprzez terminal, RFC 854

● Działa za pomocą protokołu TCP, well known port to 23

● Obsługuje jedynie terminale numeryczne w trybie tekstowym (brak GUI czy myszy)

● Działa w trybie klient-serwer → na komputerze, na który chcemy się zalogować musi działać serwe, który obsługuje tę usługę

● Wymaga posiadania konta na serwerze

● Często wykorzystywany np. do konfiguracji switczy czy routerów

● Wada – brak szyfrowania

● Obecnie zastępowany przez SSH

Page 7: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

7 / 33SK 2019, Wykład 6

SSH● SSH (Secure Shell Login) jest

protokołem zadalnego dostępu do komputera, jak telnet, ale z wykorzystaniem szyfrowania, RFC 4253

● Działa za pomocą protokołu TCP, well known port to 22

● Szyfrowanie asymetryczne (hasła, klucze)– szyfrowane zarówno hasło jak i klucze

● Dużo więcej możliwości:– terminal (ssh)

– przesyłanie plików (scp, sftp)

– zdalna kopia (rsync)

– tunelowanie (np. aplikacje GUI, X11)

Page 8: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

8 / 33SK 2019, Wykład 6

SSH● SSH ma dwie implentacje:

– zamknięta: ssh.com

– otwarta – OpenSSH – obecnie używana

● Istnieją również dwie wersje (SSHv1, SSHv2)

● Aplikacje klienckie:– PuTTy

– WinSCP

– OpenSSH

– … inne

Page 9: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

9 / 33SK 2019, Wykład 6

FTP● FTP (File Transfer Protocol) jest protokołem

transferu plików, RFC.959

● Działa za pomocą protokołu TCP, well known ports to 20 oraz 21

● Może działać w dwóch trybach:– tryb aktywny:

● port 21 – polecenia (klient→serwer)● port 20 – transfer danych (serwer→klient)

– tryb pasywny:● port 21 – polecenia (klient→serwer)● port powyżej 1024 (ustalany przez klienta) –

transfer danych (serwer→klient)

● Tryb dostępu:– anonimowy – bez hasłą uwierzytelniającego

– autoryzowany – w oparciu o login i hasło

● Isntieją warianty z szyfrowaniem

Page 10: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

10 / 33SK 2019, Wykład 6

SMTP● SMTP (Simple Mail Transfer Protocol) protokół służący do

przekazywania poczty elektronicznej w Internecie, RFC 821 oraz RFC 532

● Well known port to 25 (czasami 587) - protokół TCP

● Komunikacja serwer-serwer – wykorzystuje serwery do przesyłania wiadomości

● Protokoły klienckie (np. Outlook, Thunderbird) używają go tylko do wysyłania poczty

● Jak to działa?

Page 11: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

11 / 33SK 2019, Wykład 6

SMTP● Pewnie wyobrażacie sobie to tak:

Page 12: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

12 / 33SK 2019, Wykład 6

SMTP● A w praktyce wygląda to tak:

Page 13: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

13 / 33SK 2019, Wykład 6

SMTP● A to co my kontrolujemy wygląda tak:

Page 14: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

14 / 33SK 2019, Wykład 6

SMTP● A w praktyce wygląda to tak:

– użytkownik (Mail User Agent – MUA)

– połączenie MUA z Mail Submission Agent (MSA) – port 25 lub 587

– MSA przesyła dane do Mail Transfer Agent (MTA, zwykle ta sama maszyna)

– MTA uzyskuje poprzez DNS (rekord MX – Mail Exchange) adres domeny docelowej – serwera poczty odbiorcy lub pośrednika (MDA – Mail Delivery Agent)

– MTA przesyła dane do MDA, ten ewentualnie do kolejnego pośredniczącego MDA, aż do celu

– MUA odbiorcy poprzez inny protokół (POP lub IMAP) łączy się z MDA i pobiera e-mail

Page 15: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

15 / 33SK 2019, Wykład 6

SMTP

Page 16: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

16 / 33SK 2019, Wykład 6

POP3● POP (Post Office Protocol) jest protokołem klienckim do

odbierania wiadomości e-mail z serwerów pocztowych, RFC 1939– aktualnie wersja trzecia – POP3

– obecnie IMAP bardziej popularny

● Protokół działa w protokole TCP, port 110

● Tryb działania klient-serwer– klient łączy się z serwerem

– pobranie wszystkich wiadomości z serwera

– zapisanie wiadomości u klienta

– usunięcie pobranych wiadomości na serwerze (z możliwością ich zachowania na serwerze

– serwer nasłuchuje na porcie 110 czy klient się podłączył

Page 17: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

17 / 33SK 2019, Wykład 6

IMAP● IMAP (Internet Message Access Protocol) podobnie jak POP3

służy do pobierania wiadomości z serwera pocztowego, RFC 3501– w przeciwieństwie do POP3 – zostawiamy wiadomości na

serwerze (wiele klientów)

– również wykorzystuje TCP, port 143 (w szyfrowaniu port 993)

● Zalety w stosunku do POP3:– równoległe podłączanie wielu klientów

– dostęp do części wiadomości bez pobierania całej

– flagi stanu (odebrana, przeczytana, itp.)

– tworzenie folderów i grupowanie wiadomości

– przeszukiwanie wiadomości na serwerze bez ściągania

Page 18: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

18 / 33SK 2019, Wykład 6

IMAP

Page 19: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

19 / 33SK 2019, Wykład 6

HTTP● HTTP (Hypertext Transfer Protocol) jest protokołem do

przesyłania dokumentów hipertekstowych, RFC 2616

● Powtórka z Wykładu 1...

Page 20: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

20 / 33SK 2019, Wykład 6

Krótka historia Internetu (3)1989 – Timothy Berners-Lee, pisze dokument “Information Management: A Proposal”, w którym:

● wprowadza HTML, HTTP, URL, które składają się na WWW (World Wide Web)

● tworzy pierwszy serwer WWW● Pierwsza strona WWW:

http://info.cern.ch/hypertext/WWW/TheProject.html

źródło: cern.ch

Dla większości ludzi WWW jest synonimem Internetu

https://cds.cern.ch/record/369245/files/dd-89-001.pdf

Page 21: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

21 / 33SK 2019, Wykład 6

HTTP● HTTP (Hypertext Transfer Protocol) jest protokołem do

przesyłania dokumentów hipertekstowych, RFC 2616– dokumenty hipertekstowe to takie zawierające linki do innych

dokumentów

– działa w systemie klient-serwer, jest bestanowy (brak monitoringu sesji)

– port 80, protokół TCP

● Komunikacja z serwerem za pomocą metod

Page 22: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

22 / 33SK 2019, Wykład 6

HTTP

Page 23: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

23 / 33SK 2019, Wykład 6

HTTP

Page 24: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

24 / 33SK 2019, Wykład 6

HTTP

Page 25: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

25 / 33SK 2019, Wykład 6

HTTP

Page 26: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

26 / 33SK 2019, Wykład 6

LDAP● LDAP (Leightweight Directory

Access Protocol) jest protokołem umożliwiającym korzystanie z usług katalogowych, RFC 4511– Usługa katalogowa (Directory

service) – to baza danych zawierająca: użytkowników, aplikacje, urządzienia i inne zasoby sieciowe. Pomaga kojarzyć (tworzy relacje) między ludźmi i aplikacjami/urządzeniami (przykładowo – można się dostać do drukarki z poziomu wielu użytkowników)

– LDAP pracuje na protokole TCP, port 389

– dane w drzewiastej strukturze katalogów

Page 27: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

27 / 33SK 2019, Wykład 6

LDAP● LDAP zapewnia logiczny, precyzyjny i hierarchiczny sposób

opisu zasobów danej organizacji

● Przykładowe systemy:– Active Directory (Microsoft)

– OpenLDAP

– … wiele innych

Page 28: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

28 / 33SK 2019, Wykład 6

LDAP

Page 29: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

29 / 33SK 2019, Wykład 6

SSL/TLS● SSL (Secure Socket Layer), obecnie nazywane TLS (Transport

Layer Security) jest protokołem do bezpiecznej komunikacji przy udziale certyfikatów, RFC 6101– działa w warstwie sesji modelu OSI

– wykorzystywany jest przez protokoły wyższego poziomu (aplikacji) – np. HTTPS

– wykorzystuje szyfrowanie (klucze publiczne i prywatne) danych

Page 30: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

30 / 33SK 2019, Wykład 6

SSL/TLS● Potwierdzanie połączeń odbywa się poprzez certyfikaty SSL

przedstawiane przez serwer (format X.509)

● Certyfikaty są podpisywane przez specjalne urzędy certyfikacji (CA – Certificate Authority). Jeśli certyfikat nie posiada autoryzacji CA, zostanie nam wyświetlony stosowny komunikat

● Certyfikaty są wydwane przez lokalne organizacje (np. rządowe agendy)– przykładowo w Polsce instytucją certyfiukącą podpis kwalifikowany

(to też certyfikat SSL!) wystawców jest Narodowe Centrum Certyfikacji przy NBP - https://www.nccert.pl/

Page 31: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

31 / 33SK 2019, Wykład 6

SSL/TLS● Jak to działa?

● Protokół SSL działa dwuetapowo– Pierwszy etap – Hello - następuje uzgadnianie pomiędzy klientem a serwerem

parametrów kryptograficznych

– Następnie serwer wysyła swój certyfikat pozwalający klientowi na sprawdzenie swojej tożsamości.

– Kolejnym etapem jest wysłanie przez serwer swojego klucza publicznego.

– Dalej – serwer zawiadamia, że klient może przejść do następnej fazy zestawiania połączenia

– Tą fazą jest mianowicie generowanie przez obie strony klucza sesji używanego do faktycznej wymiany danych. Klucz jest generowany na podstawie liczb losowych (klienta i serwera) ustalanych w pierwszej fazie – Hello

– Wygenerowany tajny klucz jest kluczem algorytmu symetrycznego

– Po tych procesach, zasadnicza wymiana danych następuje już przy użyciu symetrycznego szyfrowania

● Takie rozwiązanie jest obecnie uznawane za standard bezpiecznych połączeń internetowych, a protokół SSL/TLS jest obecnie instalowany we wszystkich przeglądarkach internetowych. Umożliwia on również zabezpieczenie protokołów warstw aplikacji takich jak np. poczta elektroniczna czy strony internetowe (banki)

Page 32: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

32 / 33SK 2019, Wykład 6

SSL/TLS● Jak to działa?

Page 33: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

33 / 33SK 2019, Wykład 6

Inne protokoły● Protokołów jest oczywiście bardzo dużo

● Pisząc program komputerowy albo korzystamy z już istniejącego (np. nasz klient SSH), albo tworzymy swój własny (np. jakaś gra komputerowa)

● Dane są oczywiście ubierane w nagłówki protokołu (np. HTTP) kapsułkowane do niższych warstw modelu ISO/OSI

Page 34: Wykład 6 10.04.2019 lukasz.graczykowski@pw.edulgraczyk/SK2019/Wyklad6-2019.pdf · 2019. 4. 10. · SK 2019, Wykład 6 9 / 33 FTP FTP (File Transfer Protocol) jest protokołem transferu

KONIECKONIEC