Kiedy otrzymasz
https://encrypted.google.com/search?q=%s
%s
Zapytanie jest szyfrowane? A może po prostu odpowiedź? Jeśli tak nie jest, dlaczego Google miałoby udostępniać swoje publiczne treści również z szyfrowaniem?
Kiedy otrzymasz
https://encrypted.google.com/search?q=%s
%s
Zapytanie jest szyfrowane? A może po prostu odpowiedź? Jeśli tak nie jest, dlaczego Google miałoby udostępniać swoje publiczne treści również z szyfrowaniem?
Całe żądanie jest szyfrowane, łącznie z adresem URL, a nawet poleceniem ( GET
). Jedyne, co może zebrać strona interweniująca, taka jak serwer proxy, to adres docelowy i port.
Należy jednak pamiętać, że pakiet Client Hello uzgadniania TLS może rozgłaszać w pełni kwalifikowaną nazwę domeny w postaci zwykłego tekstu za pośrednictwem rozszerzenia SNI (dzięki @hafichuk), które jest używane we wszystkich nowoczesnych przeglądarkach głównego nurtu, choć niektóre tylko w nowszych systemach operacyjnych.
EDYTUJ: (Ponieważ właśnie to dało mi odznakę „Dobra odpowiedź”, myślę, że powinienem odpowiedzieć na całe pytanie…)
Cała odpowiedź jest również zaszyfrowana; proxy nie mogą przechwycić żadnej jego części.
Google obsługuje wyszukiwania i inne treści przez https, ponieważ nie wszystkie z nich są publiczne, a możesz także chcieć ukryć część treści publicznych przed MITM . W każdym razie najlepiej pozwolić Google samemu odpowiedzieć .
GET
Polecenie) jest zaszyfrowana. Jest to omówione w RFC 4366Sam adres URL jest zaszyfrowany, więc parametry w ciągu zapytania nie są przenoszone przez sieć.
Należy jednak pamiętać, że adresy URL zawierające dane GET są często rejestrowane przez serwer WWW, podczas gdy dane POST rzadko tak. Więc jeśli planujesz zrobić coś takiego
/login/?username=john&password=doe
, nie rób tego; zamiast tego użyj POST.źródło
Powyższe jest częścią BARDZO wyczerpującej odpowiedzi udzielonej przez Google Answers znajdującego się tutaj:
http://answers.google.com/answers/threadview/id/758002.html#answer
źródło
Część adresu URL po nazwie hosta jest wysyłana w bezpieczny sposób.
Na przykład https://somewhere.com/index.php?NAME=FIELD
/index.php?NAME=FIELD
Część jest szyfrowana. Taksomewhere.com
nie jest.źródło
Wszystko jest zaszyfrowane, ale musisz pamiętać, że twoje zapytanie pozostanie w logach serwera i będzie dostępne dla różnych analizatorów logów itp. (Co zwykle nie ma miejsca w przypadku żądania POST).
źródło
Połączenie zostaje zaszyfrowane przed przesłaniem żądania. Więc tak, żądanie jest również szyfrowane, łącznie z ciągiem zapytania.
źródło
Tak, to jest bezpieczne. SSL szyfruje wszystko.
Fragment żądania POST:
Fragment żądania GET:
W obu przypadkach wszystko, co jest wysyłane przez gniazdo, jest szyfrowane. Fakt, że klient widzi parametry w swojej przeglądarce podczas żądania GET, nie oznacza, że mężczyzna w środku zobaczy to samo.
źródło
Właśnie połączyłem się przez HTTPS ze stroną internetową i przekazałem kilka parametrów GET. Następnie użyłem Wireshark do podsłuchiwania sieci. Za pomocą protokołu HTTP adres URL jest wysyłany w postaci niezaszyfrowanej, co oznacza, że mogę łatwo zobaczyć wszystkie parametry GET w adresie URL. Używając HTTPS, wszystko jest szyfrowane i nie mogę nawet zobaczyć, który pakiet jest poleceniem GET, nie mówiąc już o jego zawartości!
źródło
SSL odbywa się przed analizą nagłówka, co oznacza:
Żądanie wygląda mniej więcej tak (nie pamiętam dokładnej składni, ale powinno być wystarczająco blisko):
Z tego powodu posiadanie różnych certyfikatów SSL dla kilku hostów na tym samym IP jest problematyczne, żądana nazwa hosta jest znana dopiero po odszyfrowaniu.
źródło
HTTP/1.1
na końcu pierwszej linii.Żądanie GET jest szyfrowane podczas korzystania z protokołu HTTPS - w rzeczywistości właśnie dlatego zabezpieczone witryny internetowe muszą mieć unikalny adres IP - nie ma możliwości uzyskania zamierzonej nazwy hosta (lub katalogu wirtualnego) z żądania, dopóki nie zostanie odszyfrowane.
źródło