Ponieważ nikt nie przewidział przechwytywania drutu, oto jeden.
Nazwa serwera (część domeny adresu URL) jest prezentowana w ClientHello
pakiecie zwykłym tekstem .
Poniżej przedstawiono żądanie przeglądarki do:
https://i.stack.imgur.com/path/?some=parameters&go=here
Zobacz tę odpowiedź, aby uzyskać więcej informacji na temat pól wersji TLS (są 3 z nich - nie wersje, pola, które zawierają numery wersji!)
Od https://www.ietf.org/rfc/rfc3546.txt :
3.1 Wskazanie nazwy serwera
[TLS] nie zapewnia klientowi mechanizmu informowania serwera o nazwie serwera, z którym się kontaktuje. Może być pożądane, aby klienci dostarczali te informacje, aby ułatwić bezpieczne połączenia z serwerami, które obsługują wiele „wirtualnych” serwerów pod jednym podstawowym adresem sieciowym.
Aby podać nazwę serwera, klienci MOGĄ zawierać rozszerzenie typu „nazwa_serwera” w (rozszerzonym) halo klienta.
W skrócie:
FQDN (część domeny URL) MOGĄ być przekazywane w jasny wewnątrz ClientHello
pakietu, jeśli jest stosowany rozszerzenie SNI
Pozostała część adresu URL ( /path/?some=parameters&go=here
) nie ma żadnego interesu, ClientHello
ponieważ adres URL żądania jest rzeczą HTTP (OSI Layer 7), dlatego nigdy nie pojawi się w uzgadnianiu TLS (warstwa 4 lub 5). To przyjdzie później w GET /path/?some=parameters&go=here HTTP/1.1
żądaniu HTTP, PO ustanowieniu bezpiecznego kanału TLS.
STRESZCZENIE
Nazwa domeny MOŻE być przesyłana w postaci jawnej (jeśli rozszerzenie SNI jest używane w uzgadnianiu TLS), ale adres URL (ścieżka i parametry) jest zawsze szyfrowany.
AKTUALIZACJA MARCA 2019
Dziękujemy carlin.scott za podniesienie tego.
Ładunek w rozszerzeniu SNI można teraz zaszyfrować za pomocą tej propozycji projektu RFC . Ta funkcja istnieje tylko w TLS 1.3 (jako opcja i jej implementacja zależy od obu końców) i nie ma wstecznej kompatybilności z TLS 1.2 i niższymi.
CloudFlare to robi i możesz przeczytać więcej o wewnętrznych elementach tutaj -
jeśli kurczak musi przyjść przed jajkiem, gdzie go umieszczasz?
W praktyce oznacza to, że zamiast przesyłać FQDN w postaci zwykłego tekstu (jak pokazuje program przechwytujący Wireshark), jest on teraz szyfrowany.
UWAGA: Dotyczy to bardziej kwestii prywatności niż bezpieczeństwa, ponieważ odwrotne wyszukiwanie DNS MOŻE ujawnić docelowego hosta docelowego.