Czy osoby trzecie mogą odczytać adres URL podczas przeglądania przez HTTPS?

32

Wszyscy wiemy, że HTTPS szyfruje połączenie między komputerem a serwerem, więc nie może być przeglądane przez osoby trzecie. Czy jednak dostawca usług internetowych lub osoba trzecia może zobaczyć dokładny link do strony, do której użytkownik wszedł?

Na przykład odwiedzam

https://www.website.com/data/abc.html

Czy dostawca usług internetowych będzie wiedział, że uzyskałem dostęp do * / data / abc.html, czy po prostu dowie się, że odwiedziłem adres IP witryny www.website.com?

Jeśli wiedzą, to dlaczego Wikipedia i Google mają HTTPS, skoro ktoś może po prostu czytać dzienniki internetowe i znaleźć dokładnie treść, którą przeglądał użytkownik?

Anonimowy
źródło
7
Wskazówka: jeśli nie zarejestrujesz swojego konta, odwiedzisz to miejsce z różnych adresów IP i nie zachowasz swojego pliku cookie, uczestnictwo w Super User będzie nieco… podzielone, co oznacza, że ​​nie będziesz w stanie zaakceptować odpowiedzi na swoje posty lub dodaj komentarze. Zdecydowanie sugeruję zarejestrowanie konta tutaj.
slhck

Odpowiedzi:

48

Od lewej do prawej:

Schemat https: jest oczywiście interpretowany przez przeglądarkę.

Nazwa domeny www.website.com jest przekształcana na adres IP za pomocą DNS. Twój dostawca usług internetowych zobaczy żądanie DNS dla tej domeny i odpowiedź.

Ścieżka /data/abc.html jest wysyłany w żądaniu HTTP. Jeśli używasz protokołu HTTPS, zostanie on zaszyfrowany wraz z resztą żądania i odpowiedzi HTTP.

Łańcuch zapytania ?this=that , jeśli występuje w adresie URL, zostaje wysłany w żądaniu HTTP - wraz ze ścieżką. Więc jest również szyfrowany.

Fragment #there , jeśli występuje, nie jest wysyłane w dowolnym miejscu - to jest interpretowany przez przeglądarkę (czasami przez JavaScript po stronie zwróconej).

grawitacja
źródło
3
Zapomniałeś, że nowoczesne przeglądarki obsługujące SNI ogłaszają nazwę hosta zwykłym tekstem nawet dla żądań HTTPS.
Monstieur,
9
@Kurian: Nie ma to większego znaczenia, ponieważ nazwa hosta została już „ogłoszona” przez DNS.
grawity
2
@Kurian: adres IP można uzyskać w inny sposób, ale w praktyce rzadko. A samodzielne patrzenie na pojedynczy protokół bez zastanawiania się, w jaki sposób jest on rzeczywiście używany, może spowodować pominięcie ważnych części.
Joachim Sauer
Nie wiem, czy Tor używa tego samego węzła wyjściowego do rozpoznawania nazw i ustanawiania rzeczywistego połączenia HTTPS, czy różnych. Jeśli używa osobnych węzłów, to nadal jest to jedyne miejsce, w którym SNI miałoby znaczenie.
grawity
13

Dostawca usług internetowych będzie wiedział tylko, że odwiedziłeś powiązany z nim adres IP www.website.com(a może także adres URL, jeśli korzystasz z ich DNS, a oni konkretnie szukają ruchu - jeśli zapytanie DNS nie przejdzie przez to, że go nie zobaczy).

(Trochę mnie tu proszę - docieram do odpowiedzi.)

Sposób działania protokołu HTTP polega na połączeniu się z portem (zazwyczaj portem 80), a następnie przeglądarka internetowa komunikuje, jakiej strony chce do serwera - proste żądanie wyszukania zawiera http://www.sitename.com/url/of/site.htmlnastępujące linie:

GET /url/of/site.html HTTP / 1.1
host: www.sitename.com

HTTPS robi dokładnie to samo, z wyjątkiem portu 443 - i otacza całą sesję TCP (tj. Wszystko, co widzisz w cytowanym bicie powyżej oraz odpowiedź) w zaszyfrowanej sesji SSL - więc dostawca usług internetowych nie widzi żadnego ruchu ( ale mogą być w stanie wywnioskować coś na podstawie wielkości witryny i wyszukiwania DNS, aby www.sitename.comw pierwszej kolejności rozpoznać adres IP).

Oczywiście, jeśli na stronie osadzone są „błędy sieciowe”, może to dać „partnerom” dystrybutorów informacji podpowiedzi na temat tego, co oglądasz i kim jesteś - podobnie, jeśli Twój łańcuch zaufania zostanie zerwany, dostawca usług internetowych może wykonać atak człowieka w środku. Teoretycznie powodem posiadania prywatnego szyfrowania end-to-end są certyfikaty CA dystrybuowane wraz z przeglądarką. Jeśli dostawca usług internetowych lub rząd może albo dodać certyfikat urzędu certyfikacji, albo narazić na szwank bezpieczeństwo urzędu certyfikacji - co zdarzyło się w przeszłości - tracisz bezpieczeństwo. Uważam, że Wielka Zapora ogniowa w Chinach skutecznie wykonuje ataki typu Man-In-The-Middle, aby odczytać dane HTTPS, ale minęło trochę czasu, odkąd tam byłem.

Możesz to łatwo przetestować samodzielnie, zdobywając oprogramowanie, które będzie wąchać ruch przychodzący i wychodzący z komputera. Wierzę, że darmowe oprogramowanie o nazwie Wireshark zrobi to za Ciebie.

Davidgo
źródło
0

Nie jestem pewien, czy jest to komentarz lub odpowiedź godna polecenia, ale chciałbym udostępnić jedno uzupełnienie.

Odpowiedzi tutaj pokazują, co powinno się stać. Pytanie brzmi: czy adres URL można odczytać? Odpowiedź brzmi „tak”, choć jest stosunkowo mało prawdopodobna.

Osoba atakująca (osoba trzecia) może absolutnie przechwycić ruch https i odczytać wszystkie żądania w określonych przypadkach. Aby dowiedzieć się więcej, zaprosiłem Cię do przeczytania MITM oraz SSLStrip . Mogę zagłębić się w to więcej, jeśli jest to konieczne do zrozumienia.

Nie powinieneś oczekiwać, że twój dostawca usług internetowych zrobi to zarówno dlatego, że marnuje przepustowość, ale także dlatego, że mają więcej do stracenia, jeśli chcesz się dowiedzieć i pozwać. Jednak dokładniejsza odpowiedź na twoje pytanie Czy można to zrobić? jest tak, choć jest mało prawdopodobne, aby ktokolwiek na tyle dbał, aby zobaczyć, co googlujesz lub wiki.

tophersmith116
źródło