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

Podobne dokumenty
Aplikacje WWW. Wykład 4. Protokół HTTP. wykład prowadzi: Maciej Zakrzewicz. Protokół HTTP

Technologie internetowe

Aplikacje WWW Wprowadzenie


Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Uwierzytelnianie HTTP

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Bazy danych i usługi sieciowe

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Problemy z bezpieczeństwem w sieci lokalnej

Bezpieczeństwo WWW. Plan prezentacji. WWW a protokoły TCP/IP; URL. Czym jest WWW?

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

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

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

SSL (Secure Socket Layer)

XML-RPC: Zdalne wykonywanie procedur

1. Model klient-serwer

ZiMSK. Konsola, TELNET, SSH 1

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

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

Stos TCP/IP. Warstwa aplikacji cz.2

Zdalne logowanie do serwerów

Wybrane działy Informatyki Stosowanej

Ochrona systemów informacyjnych. SSL (Secure Socket Layer) - protokół bezpiecznych połączeń sieciowych

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

Języki programowania wysokiego poziomu WWW

Podstawy Secure Sockets Layer

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

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

HTTP. literatura:

Sprawozdanie nr 4. Ewa Wojtanowska

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

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

SET (Secure Electronic Transaction)

Sieciowe systemy informacyjne

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

Protokół SSL/TLS. Algorytmy wymiany klucza motywacja

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Ministerstwo Finansów

Laboratorium nr 4 - Badanie protokołów WWW

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

Protokoły internetowe

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

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

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

Programowanie współbieżne i rozproszone

I.Wojnicki, Tech.Inter.

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Protokół HTTPS. Adam Danecki Informatyka gr. 1.4

Ministerstwo Finansów

Polityka prywatności

Programowanie w Internecie

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

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

Protokół HTTP. Omówienie standardu z analizą ruchu sieciowego

Sieci komputerowe i bazy danych

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

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

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

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

Aplikacje internetowe. Wprowadzenie

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Architektura aplikacji sieciowych. Architektura klient-serwer

Instrukcja generowania żądania CSR SOW WERSJA 1.6

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Akademia Górniczo-Hutnicza im. Stanisława Staszica

Karol Gałka. Numer albumu: Inżynieria mechatroniczna

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Bezpieczeństwo systemów informatycznych

Gatesms.eu Mobilne Rozwiązania dla biznesu

Specyfikacja techniczna. mprofi Interfejs API

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language

Zaawansowany kurs języka Python

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

Programowanie Aplikacji Sieciowych

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Aplikacje webowe. mgr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji

Programowanie w Internecie

Protokoły zdalnego logowania Telnet i SSH

The OWASP Foundation Session Management. Sławomir Rozbicki.

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.

Obsługa incydentów bezpieczeństwa: część I, z punktu widzenia menadżera. OWASP The OWASP Foundation

Projektowanie stron WWW

5. Metody uwierzytelniania i bezpiecznej komunikacji Certyfikat klucza publicznego oparty o standard X.509

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Lab5 - Badanie protokołów pocztowych

Języki i narzędzia programowania III. Łukasz Kamiński Wykład I

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Transkrypt:

Systemy internetowe Wykład 5 Architektura WWW 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 1

Obsługa użytkowników Otwarcie p. www.wp.pl/info.html Wizualizacja graficzna Klient HTTP Żądanie Odpowiedź Zamknięcie p. Serwer HTTP www.wp.pl 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 2

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. 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) 3

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). 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)... 4

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... 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 5

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>... 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. 6

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 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). 7

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. Przesyłanie cookies Żądanie HTTP Odpowiedź HTTP Set-Cookie: imie =Marek imie=marek Żądanie HTTP Cookie: imie=marek Żądanie HTTP Cookie: imie=marek... 8

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). 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 9

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. Handshake 1 2 ClientHello ServerHello; Certificate; ServerKeyExchange; ServerHelloDone 3 Weryfikacja certyfikatu 4 ClientKeyExchange ChangeCipherSpec; Finished 6 5 ChangeCipherSpec; 5 Finished Generowanie Generowanie 7 klucza klucza 10

Dziękuję za uwagę 11