Wszystkie zagadnienia: Teoria
podstawowy sieciHTTPHTTPSmatura podstawowa z informatyki

HTTP, HTTPS i SSL/TLS

Protokół HTTP i szyfrowany HTTPS – żądanie i odpowiedź, kody statusu, budowa adresu URL, handshake TLS, rola certyfikatu oraz porty 80 i 443.

01

Opis

HTTP to protokół, którym przeglądarka rozmawia z serwerem strony. Działa w modelu żądanie–odpowiedź: przeglądarka prosi o zasób, serwer odsyła go razem z kodem statusu. Jest bezstanowy, czyli każde żądanie jest niezależne od poprzednich.

Problem HTTP polega na tym, że wszystko leci otwartym tekstem. Każdy, kto ma dostęp do sieci po drodze, może odczytać przesyłane treści – w tym hasła i numery kart.

HTTPS to ten sam HTTP, tylko opakowany w szyfrowanie SSL/TLS. Treść jest nieczytelna dla postronnych, a dodatkowo certyfikat serwera potwierdza, że rozmawiamy z tym, z kim myślimy. Dlatego przeglądarki oznaczają strony bez HTTPS jako niebezpieczne.

Cztery zasady, które wystarczą do większości pytań:

  • Jedno żądanie, jedna odpowiedź. Przeglądarka wysyła metodę (najczęściej GET, gdy tylko pobiera stronę, albo POST, gdy wysyła formularz) razem z adresem zasobu. Serwer odpowiada kodem statusu i treścią. Otwarcie jednej strony to zwykle kilkadziesiąt takich par – osobno dla HTML-a, obrazków, arkusza stylów i skryptów.
  • HTTPS to nie inny protokół, tylko HTTP w tunelu. Format żądań i kodów statusu jest identyczny; różnica polega na tym, że przed pierwszym żądaniem obie strony ustalają wspólny klucz i od tej chwili szyfrują wszystko, co przez połączenie przechodzi.
  • HTTP działa na porcie 80, HTTPS na 443. Numer portu wynika z samego schematu adresu, dlatego nikt go w przeglądarce nie wpisuje. Zestawienie portów wszystkich protokołów zbiera hasło Protokoły TCP/IP.
  • Kłódka mówi o połączeniu, nie o właścicielu strony. Certyfikat potwierdza, że domena jest tą, za którą się podaje, i że ruch jest szyfrowany. Nie mówi nic o tym, czy sklep po drugiej stronie wyśle zamówiony towar.

To, że przeglądarka wie, pod jaki adres IP wysłać żądanie, jest zasługą osobnego protokołu – opisuje go hasło DNS. Sam podział na proszącego i odpowiadającego omawia hasło Model klient-serwer.

02

Skróty i rozwinięcia

HTTP
HyperText Transfer Protocol protokół przesyłania stron WWW, żądanie i odpowiedź, port 80
HTTPS
HyperText Transfer Protocol Secure ten sam HTTP w tunelu SSL/TLS, port 443
SSL
Secure Sockets Layer starsza, wycofana warstwa szyfrowania; nazwa została w mowie potocznej
TLS
Transport Layer Security następca SSL, dziś używane wersje to TLS 1.2 i TLS 1.3
URL
Uniform Resource Locator ujednolicony adres zasobu w sieci: schemat, host, ścieżka
CA
Certificate Authority centrum certyfikacji, które podpisuje certyfikaty serwerów
03

Jak to działa

Adres, który wpisujesz w pasku przeglądarki, to URL. Ma stałą budowę – w https://sklep.example.pl/koszyk/zamowienie.html kolejno występują:

  • https – schemat, czyli protokół. On decyduje o porcie: http to 80, https to 443.
  • sklep.example.pl – host, nazwa domeny serwera. To ją przeglądarka zamienia na adres IP.
  • /koszyk/zamowienie.html – ścieżka do konkretnego zasobu na tym serwerze.

Dalej mogą wystąpić jeszcze dwie części: po znaku zapytania parametry (?strona=2), a po znaku # kotwica wskazująca miejsce w dokumencie. Kotwica nigdy nie jest wysyłana do serwera – obsługuje ją sama przeglądarka.

Samo żądanie ma metodę. GET prosi o zasób i nie zmienia niczego na serwerze; jego parametry są widoczne w adresie. POST wysyła dane w treści żądania, dlatego używa się go do formularzy z hasłem czy zamówieniem. Serwer odpowiada kodem statusu: trzycyfrową liczbą, której pierwsza cyfra mówi o rodzaju odpowiedzi (2 – sukces, 3 – przekierowanie, 4 – błąd po stronie klienta, 5 – błąd po stronie serwera).

Nawiązanie połączenia HTTPS wygląda w skrócie tak:

  • przeglądarka łączy się z serwerem i prosi o jego certyfikat
  • serwer odsyła certyfikat podpisany przez zaufane centrum certyfikacji
  • przeglądarka sprawdza podpis, datę ważności i zgodność nazwy domeny
  • obie strony ustalają wspólny klucz sesji i od tego momentu szyfrują nim ruch

Ta wymiana nazywa się handshake i odbywa się raz, przed pierwszym żądaniem HTTP. Ciekawostka, która pomaga zrozumieć całość: sama transmisja jest szyfrowana symetrycznie, bo to szybkie. Szyfrowanie asymetryczne służy tylko do bezpiecznego ustalenia tego wspólnego klucza – oba rodzaje porównuje hasło Szyfrowanie symetryczne i asymetryczne. Jak działa sam podpis pod certyfikatem i czym jest centrum certyfikacji jako instytucja, tłumaczy hasło Podpis cyfrowy.

Nazwy SSL i TLS oznaczają w praktyce to samo miejsce w architekturze, ale różne pokolenia. SSL w wersjach 2.0 i 3.0 został wycofany jako podatny na ataki; jego następcą jest TLS, dziś w wersjach 1.2 i 1.3. Skrót SSL został w potocznym języku (mówi się „certyfikat SSL”), choć technicznie działa TLS.

04

Tabela

Kody statusu HTTP i sytuacje, w których uczeń je zobaczy – na końcu trzy pułapki, które nie są kodami
Kod lub sytuacjaZnaczenieKiedy to zobaczysz
200OK, żądanie się powiodłostrona otwiera się normalnie; kodu nie widać, bo przeglądarka po prostu pokazuje treść
301Moved Permanently, przeniesiony na stałestary adres podstrony kieruje na nowy; przeglądarka zapamiętuje zmianę na przyszłość
302Found, przeniesiony tymczasowoprzekierowanie na stronę logowania albo na czas przerwy technicznej
400Bad Request, żądanie źle zbudowaneserwer nie rozumie tego, co przysłał klient, np. uszkodzonego formularza
401Unauthorized, wymagane uwierzytelnieniezasób jest za logowaniem, a hasło nie zostało podane albo jest błędne
403Forbidden, dostęp zabronionyserwer wie, kto pyta, i mimo to odmawia, np. przy próbie wejścia do katalogu z plikami
404Not Found, nie znaleziono zasobuliterówka w adresie podstrony albo plik usunięty z serwera
500Internal Server Error, błąd wewnętrzny serweraskrypt na serwerze się wysypał; wina leży po stronie serwera, nie przeglądarki
503Service Unavailable, usługa niedostępnaserwer przeciążony albo wyłączony na czas prac serwisowych
kłódka jest, a strona wyłudza danepołączenie szyfrowane, właściciel nieuczciwyoszust też może mieć certyfikat dla swojej domeny; kłódka nie ocenia zamiarów
schemat http w formularzu z hasłembrak szyfrowaniahasło i login idą otwartym tekstem; przeglądarka ostrzega „Nie jest bezpieczna”
ostrzeżenie o certyfikacienazwa domeny lub data się nie zgadzacertyfikat wygasł albo wystawiono go dla innej domeny; nie klika się „przejdź dalej”
05

Porównanie

CechaHTTPHTTPS
Port80443
Schemat w adresiehttp://https://
Szyfrowaniebrak, tekst jawnySSL/TLS, dziś TLS 1.2 lub 1.3
Certyfikat serweraniepotrzebnywymagany, podpisany przez centrum certyfikacji
Kłódka w pasku adresunie ma, przeglądarka pisze „Nie jest bezpieczna”jest
Co widzi podsłuchującycałą treść i wysyłane hasłanazwę domeny, nie widzi treści ani ścieżki
Format żądań i kodów statusutaki samtaki sam
Nazwa angielskaHyperText Transfer ProtocolHyperText Transfer Protocol Secure
06

Typowe błędy

HTTPS traktowany jako inny protokół niż HTTP. To nie są dwa różne języki. HTTPS wysyła dokładnie takie same żądania GET i POST i dostaje takie same kody statusu; różnica polega wyłącznie na tym, że wszystko idzie przez tunel TLS. Zdanie „HTTPS jest szyfrowaną wersją protokołu HTTP” to prawda i tak formułuje je CKE.

Kłódka rozumiana jako gwarancja uczciwości. Certyfikat potwierdza, że domena należy do tego, kto się nią posługuje, i że nikt po drodze nie odczyta ruchu. Nie mówi nic o tym, czy strona sprzedaje prawdziwy towar. Strona wyłudzająca dane może mieć kłódkę – i najczęściej ją ma, bo certyfikaty są darmowe.

Mylenie HTTPS z protokołami, które robią coś zupełnie innego. W arkuszach wraca zestaw zdań, w których HTTPS ma rzekomo pobierać pocztę, przydzielać adresy IP albo obsługiwać system nazw domen. To trzy różne protokoły: pocztę pobiera POP3 lub IMAP, adresy przydziela DHCP, nazwy tłumaczy DNS. HTTPS robi jedno – przenosi strony WWW przez szyfrowane połączenie.

Kod 404 przypisany serwerowi. Cyfra 4 na początku oznacza błąd po stronie klienta: adres wskazuje na coś, czego nie ma. Awaria serwera ma kod z piątki, najczęściej 500 albo 503. Pytanie „strona nie działa, kto zawinił” rozstrzyga się właśnie pierwszą cyfrą kodu.

Port podawany do HTTPS jako 80. Numer wynika ze schematu adresu: http to 80, https to 443. Skoro w adresie jest litera „s”, port jest inny. Zamiana tych dwóch liczb miejscami to najczęstsza pomyłka w zadaniach z portami.

SSL i TLS traktowane jako dwie działające dziś warstwy. SSL został wycofany, w praktyce wszędzie pracuje TLS. Nazwa „certyfikat SSL” jest tylko przyzwyczajeniem językowym. Jeżeli zadanie pyta, co jest nowsze i bezpieczniejsze, odpowiedzią zawsze jest TLS.

07

Zapamiętaj

  • HTTP działa na porcie 80, HTTPS na 443.
  • HTTPS to HTTP plus warstwa szyfrowania SSL/TLS – żądania i kody statusu są identyczne.
  • Certyfikat potwierdza tożsamość serwera i jest podpisany przez centrum certyfikacji.
  • Kłódka mówi o szyfrowaniu połączenia, nie o wiarygodności właściciela strony.
  • SSL został wycofany; dziś działa TLS w wersji 1.2 lub 1.3.
  • URL składa się ze schematu, hosta i ścieżki; schemat wyznacza port.
  • Pierwsza cyfra kodu statusu mówi wszystko: 2 – sukces, 3 – przekierowanie, 4 – błąd klienta, 5 – błąd serwera.
08

Sprawdź się

Rozbiór adresu https://sklep.example.pl/koszyk/zamowienie.html:

Fragment adresuNazwa części
httpsschemat, czyli protokół
sklep.example.plhost, czyli nazwa domeny serwera
/koszyk/zamowienie.htmlścieżka do zasobu na serwerze

Uzupełnij tabelę:

PytanieOdpowiedź
Na którym porcie działa protokół z tego adresu?
Na którym porcie działa ten sam protokół bez szyfrowania?
Jaki kod odsyła serwer, gdy strona została znaleziona?
Jaki kod oznacza, że zasobu pod tym adresem nie ma?
Jaki kod oznacza trwałe przeniesienie zasobu?
Jaki kod oznacza błąd wewnętrzny serwera?
Jaki dokument potwierdza tożsamość serwera?
Jaka jest dzisiejsza nazwa następcy protokołu SSL?

Kłódka w pasku adresu mówi, że połączenie jest , a nie że właściciel strony jest . Metoda, którą przeglądarka prosi o samą stronę, to , a metoda wysyłania formularza z hasłem to .

09

Najczęściej zadawane pytania

Czym różni się SSL od TLS?

TLS jest nowszą i bezpieczniejszą wersją SSL. Nazwy używa się zamiennie, ale w praktyce wszędzie działa dziś TLS – samo SSL zostało wycofane jako podatne na ataki. Aktualne wersje to TLS 1.2 i TLS 1.3.

Co oznaczają kody 404 i 200?

To statusy odpowiedzi HTTP. 200 znaczy, że żądanie się powiodło, a 404 – że serwer nie znalazł zasobu pod podanym adresem. Kod 404 wskazuje błąd po stronie klienta, czyli zły adres, a nie awarię serwera.

Czy HTTPS ukrywa, jaką stronę odwiedzam?

Ukrywa treść i konkretny adres podstrony, ale sama nazwa domeny jest zwykle widoczna dla dostawcy internetu. Szyfrowanie chroni zawartość, nie sam fakt połączenia.

Czym różni się GET od POST?

GET służy do pobrania zasobu i przekazuje parametry w adresie, więc widać je w pasku przeglądarki i w historii. POST wysyła dane w treści żądania, dlatego używa się go do formularzy, logowania i zamówień. Bez HTTPS oba są równie jawne dla podsłuchującego.

Z czego składa się adres URL?

Ze schematu (https), hosta (sklep.example.pl) i ścieżki (/koszyk/zamowienie.html). Opcjonalnie dochodzą jeszcze parametry po znaku zapytania oraz kotwica po znaku #, która wskazuje miejsce w dokumencie i nie jest wysyłana do serwera.

Dlaczego przeglądarka pokazuje ostrzeżenie o certyfikacie?

Bo coś się nie zgadza: certyfikat wygasł, został wystawiony dla innej domeny albo podpisało go centrum, którego przeglądarka nie zna. Każdy z tych przypadków oznacza, że nie ma pewności, z kim naprawdę rozmawiasz, więc ostrzeżenia się nie klika „na skróty”.

Czy strona z kłódką jest bezpieczna?

Bezpieczne jest połączenie, nie strona. Kłódka gwarantuje, że nikt po drodze nie odczyta ani nie podmieni przesyłanych danych i że domena jest tą, którą widzisz w adresie. Nie mówi nic o intencjach właściciela – oszust również może wykupić certyfikat dla swojej domeny.

Dlaczego HTTPS potrzebuje dwóch rodzajów szyfrowania?

Bo mają różne mocne strony. Szyfrowanie asymetryczne pozwala bezpiecznie ustalić wspólny klucz z kimś, kogo się wcześniej nie znało, ale jest wolne. Symetryczne jest szybkie, lecz wymaga wcześniej uzgodnionego klucza – i dlatego szyfruje dopiero właściwą transmisję. Szczegóły w haśle Szyfrowanie symetryczne i asymetryczne.

Przećwicz w zadaniach maturalnych

Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:

Zadania z działu: Teoretyczne

↗

Powiązane zagadnienia