Systemy internetowe wykład 1
Transkrypt
Systemy internetowe wykład 1
09.01.2017 Systemy internetowe Wykład 5 Architektura WWW West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Architektura WWW Serwer – to program, który: • Obsługuje repozytorium dokumentów • Udostępnia dokumenty klientom Komunikacja: protokół HTTP Warstwa klienta HTTP Warstwa serwera HTTP Klient – to program użytkowy, który: • Wysyła żądania pobrania dokumentów • Wizualizuje pobrane dokumenty • Obsługuje interakcje z użytkownikiem West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 1 09.01.2017 Obsługa użytkowników Otwarcie p. www.wp.pl/info.html Wizualizacja graficzna Klient HTTP Żądanie Odpowiedź Serwer HTTP www.wp.pl Zamknięcie p. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Klient HTTP Program użytkowy odpowiadający m. in. za: • inicjowanie połączeń HTTP z serwerem HTTP, • wysyłanie żądań pobrania dokumentów, • odbieranie dokumentów od serwera HTTP, • wizualizację dokumentów, • obsługę interakcji użytkownika końcowego z graficznym interfejsem użytkownika zawartym w pobranym dokumencie, • szyfrowanie połączeń sieciowych z serwerami HTTP. Przykłady: Firefox, Chrome, Opera, Edge West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 2 09.01.2017 Serwer HTTP (serwer WWW) Program systemowy, nieprzerwanie pracujący, Zadania podstawowe: • nasłuch sieciowy w celu odbioru żądań od klientów HTTP, • przekazanie żądanego dokumentu do klienta HTTP, Zadania dodatkowe: • rejestracja obsługiwanych żądań, • uwierzytelnianie i kontrola dostępu użytkowników, • szyfrowanie komunikacji sieciowej z klientem HTTP, • automatyczny wybór odpowiedniej wersji językowej dokumentu, Przykłady: Apache, Jigsaw, Sun Java System Web Server. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Serwer Proxy Serwer HTTP proxy – aplikacja pośrednicząca między serwerem HTTP, a klientem HTTP. Serwer HTTP proxy może: • pełnić rolę zapory ogniowej • pełnić rolę bufora dokumentów, • umożliwiać korzystanie z zasobów sieci Internet użytkownikom pracującym w sieci lokalnej. Kategorie serwerów proxy: • przeźroczyste (transparent HTTP proxy) • nieprzeźroczyste (non-transparent HTTP proxy) West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 3 09.01.2017 Protokół HTTP • HTTP - Hypertext Transfer Protocol, • RFC 2616 - http://tools.ietf.org/html/rfc2616 • tekstowy protokół sieciowy (oparty na TCP), • transport dokumentów udostępnianych przez serwery HTTP (tekstowych i binarnych), • port 80, • model komunikacyjny klient-serwer, • protokół ma charakter bezstanowy (niezależne rozpatrywanie żądań; cookies) • i bezsesyjny (osobne pobieranie dokumentów; persistent connection i mechanizm sesji). West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Elementy Komunikatu HTTP Elementy komunikatu HTTP: • wiersz początkowy, • zero lub wiele wierszy nagłówkowych, • wolny wiersz, • opcjonalne ciało komunikatu. Wiersz początkowy • żądanie: GET /ścieżka/plik.html HTTP/1.0 • odpowiedź: HTTP/1.0 200 OK 404 (Not Found); 500 (Server Error) ...... West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 4 09.01.2017 Elementy komunikatu HTTP cd. Wiersze nagłówkowe: • metadane opisujące żądanie/odpowiedź HTTP • Nazwa-pola: wartość (User-Agent: Mozilla/5.0) Ciało komunikatu: • żądany dokument (odpowiedź HTTP) • wartości parametrów/pliki wprowadzone przez użytkownika • jeżeli komunikat ma ciało, to ma też wiersze nagłówkowe: • Content-Type (format pliku, zgodny ze specyfikacją MIME) • Content-Length (rozmiar dokumentu w bajtach) MIME – RFC1521 – image/gif; text/css; application/zip ..... West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Komunikat żądania POST /pracownicy.html HTTP/1.1 User-Agent: Mozilla/5.0 Host: www.zut.pl:8888 Accept-Language: pl; q=0.9, en; q=0.6 Accept: text/html, text/xml; q=0.9; text/plain; q=0.7 Accept-Charset: utf-8; q=0.9, *; q=0.7 Keep-Alive: 200 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 63 imie=Marek&nazwisko=Prawi%F1ski&wiek=22+lata West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 5 09.01.2017 Komunikat odpowiedzi HTTP/1.1 200 OK Date: Fri, 09 Jun 2006 17:59:10 GMT Server: Apache/1.0.0 Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73 Last-Modified: Fri, 09 Jun 2006 17:55:44 GMT Keep-Alive: timeout=15, max=100 Connection: keep-alive Content-Length: 200 Content-Type: text/html; charset=utf-8 <html> <body> ... West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Persistent Connection HTTP/1.0: • Jedno żądanie użytkownika – seria żądań HTTP. • Jedno żądanie HTTP – jeden plik. • Jedno połączenie – jedno żądanie. HTTP/1.1 - Persistent Connections - umożliwienie klientowi HTTP wysłania kolejnego żądania HTTP poprzez zestawione już połączenie. Zagrożenie atakami typu DoS : • ograniczenie liczby żądań HTTP, • oraz czasu bezczynności otwartego połączenia. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 6 09.01.2017 Rozkazy HTTP • HEAD – klient otrzymuje wyłącznie wiersze nagłówkowe odpowiedzi HTTP, bez załączonego ciała; pobranie metadanych opisujących dokument (weryfikacja poprawności adresów i łączy URL). • POST - do żądania HTTP dołączone jest ciało, które reprezentuje dane wysyłane przez klienta HTTP do serwera HTTP (np. parametry, plik). • GET – brak ciała żądania; parametry zostają przesłane w adresie. POST - ciało GET – URL (nagłówek) imie=Marek&nazwisko=Prawi%F1ski&wiek=22+lata West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Cookies (RFC6265) Serwer: • powołuje zmienną Cookie, • przesyła ją do klienta. Klient: • przechowuje zmienną Cookie • wysyła ją do serwera HTTP wraz z kolejnymi żądaniami. Każda zmienna Cookie posiada: • nazwę, • wartość, • czas życia (jak długo klient powinien ją przechowywać), • zasięg (dziedzinę adresów URL, którym zmienna ta będzie udostępniana). West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 7 09.01.2017 Wady ciasteczek Są do dane tymczasowe: • wygasają automatycznie po pewnym czasie • mogą być usunięte lub zablokowane przez użytkownika Identyfikują przeglądarkę, a nie użytkownika Problemy z bezpieczeństwem • nie są domyślnie szyfrowane (można to zmienić) • są wielokrotnie przesyłane do serwera. Dyrektywa Unii Europejskiej – 2012r. Ustawa Prawo telekomunikacyjne – zmiana w 2013r. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Przesyłanie cookies Żądanie HTTP Odpowiedź HTTP Set-Cookie: imie =Marek Żądanie HTTP Cookie: imie=Marek imie=Marek Żądanie HTTP Cookie: imie=Marek ........ West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 8 09.01.2017 Protokół HTTPS (1) Wadą protokołu HTTP jest brak zabezpieczenia poufności komunikacji pomiędzy klientem HTTP a serwerem HTTP. Protokół HTTPS – szyfrowanie komunikacji. Protokół HTTPS wykorzystuje protokół: • SSL (Secure Socket Layer) • Od 1999 TLS (Transport Layer Security) SSL (TSL) wykorzystuje algorytm szyfrowania: • symetrycznego, • asymetrycznego (z kluczem publicznym). West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Protokół HTTPS (2) Uwierzytelnianie serwera: • Podczas nawiązywania połączenia HTTPS klient HTTP otrzymuje od serwera HTTP certyfikat klucza publicznego, na podstawie którego potwierdzana jest tożsamość serwera. • Aby certyfikat został uznany przez klienta HTTP, wystawiający go urząd certyfikacyjny powinien zostać uprzednio zarejestrowany w aplikacji klienta HTTP. • Certyfikat klucza publicznego jest przyznawany przez tzw. Urzędy Certyfikacji (CA - Cerfificate Authority). • Zarządca domeny wysyła Certificate Signing Request West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 9 09.01.2017 Protokół HTTPS (3) Uwierzytelnianie użytkownika końcowego - serwer HTTP żąda od klienta HTTP przesłania certyfikatu użytkownika. Żeby certyfikat klienta mógł zostać przesłany do serwera, musi od zostać uprzednio zarejestrowany w aplikacji klienta HTTP. Połączenie HTTPS przebiega w dwóch etapach: • Handshake - seria komunikatów prowadząca do zestawienia bezpiecznego połączenia i ustalenia kluczy szyfrujących • etap faktycznej wymiany zaszyfrowanych danych. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology Handshake 1 2 3 Weryfikacja certyfikatu 4 6 ServerHello; Certificate; ServerKeyExchange; ServerHelloDone ClientKeyExchange ChangeCipherSpec; Finished ChangeCipherSpec; Finished 5 Generowanie klucza ClientHello 7 5 Generowanie klucza West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 10 09.01.2017 Dziękuję za uwagę West Pomeranian University of Technology, Szczecin; Faculty of Computer Science and Information Technology 11