Quand vous obtenez
https://encrypted.google.com/search?q=%s
Le %s
la requête est cryptée? Ou juste la réponse? Si ce n'est pas le cas, pourquoi Google devrait-il également diffuser son contenu public avec cryptage?
La demande entière est chiffrée, y compris l'URL et même la commande (GET
). L'adresse de destination et le port sont les seuls éléments dont une partie intervenante, telle qu'un serveur proxy, puisse se renseigner.
Notez cependant que le paquet Client Hello d'une négociation TLS peut annoncer le nom de domaine complet en texte clair via l'extension [~ # ~] sni [~ # ~] (merci @hafichuk), qui est utilisé par tous les navigateurs classiques actuels, même si certains ne sont utilisés que sur les nouveaux systèmes d'exploitation.
EDIT: (Depuis que je viens d'obtenir un badge "Bonne réponse", je suppose que je devrais répondre à toute la question…)
La réponse entière est également cryptée; Les mandataires ne peuvent en intercepter aucune partie.
Google diffuse des recherches et d'autres contenus via https car ceux-ci ne sont pas tous publics et vous pouvez également masquer une partie du contenu public d'un MITM . Dans tous les cas, il vaut mieux laisser Google répondre par lui-même .
L'URL elle-même est cryptée. Par conséquent, les paramètres de la chaîne de requête ne sont pas transmis en clair sur le réseau.
Cependant, gardez à l'esprit que les URL, y compris les données GET, sont souvent consignées par le serveur Web, alors que les données POST le sont rarement. Par conséquent, si vous envisagez de faire quelque chose comme /login/?username=john&password=doe
, alors ne le faites pas; utilisez plutôt un POST).
HTTPS Établit une connexion SSL sous-jacente avant le transfert des données HTTP. Cela garantit que toutes les données d'URL (à l'exception du nom d'hôte utilisé pour établir la connexion) sont uniquement acheminées au sein de cette connexion chiffrée et protégées des attaques de type "man-in-the-middle" de la même manière que les données HTTPS.
Ce qui précède fait partie d’une réponse TRÈS complète de Google Answers située ici:
http://answers.google.com/answers/threadview/id/758002.html#answer
La partie de l'URL qui suit le nom d'hôte est envoyée en toute sécurité.
Par exemple, https://somewhere.com/index.php?NAME=FIELD
Le /index.php?NAME=FIELD
la partie est cryptée. Le somewhere.com
n'est pas.
Tout est crypté, mais vous devez vous rappeler que votre requête restera dans les journaux du serveur et sera accessible à divers analyseurs de journaux, etc. (ce qui n'est généralement pas le cas avec la requête POST)).
La connexion est cryptée avant la transmission de la demande. Donc, oui, la demande est également cryptée, y compris la chaîne de requête.
Oui, c'est sécurisé. SSL chiffre tout.
Extrait de POST requête:
POST /foo HTTP/1.1
... some other headers
Extrait de la requête GET:
GET /foo?a=b HTTP/1.1
... some other headers
Dans les deux cas, tout ce qui est envoyé sur le socket est crypté. Le fait que le client voit dans son navigateur lors d’une requête GET ne signifie pas qu’un homme au milieu verrait la même chose.
Le SSL a lieu avant l'analyse de l'en-tête, cela signifie:
Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
Une demande ressemble à quelque chose comme ceci (je ne me souviens pas de la syntaxe exacte, mais celle-ci devrait être suffisamment proche):
GET /search?q=qwerty HTTP/1.1
Host: www.google.de
C'est également pourquoi avoir des certificats SSL différents pour plusieurs hôtes sur la même adresse IP pose problème, le nom d'hôte demandé n'est pas connu avant le déchiffrement.
Je viens de me connecter via HTTPS à un site Web et de transmettre plusieurs paramètres GET. J'ai ensuite utilisé Wireshark pour renifler le réseau. En utilisant HTTP, l'URL est envoyée non cryptée, ce qui signifie que je peux facilement voir tous les paramètres GET dans l'URL. Avec HTTPS, tout est crypté et je ne peux même pas voir quel paquet est la commande GET, sans parler de son contenu!
La demande GET est cryptée lors de l’utilisation du protocole HTTPS (c’est en fait la raison pour laquelle les sites Web sécurisés doivent disposer d’une adresse IP unique). Il n’est pas possible d’obtenir le nom d’hôte (ou le répertoire virtuel) voulu à partir de la demande tant qu’elle n’a pas été déchiffrée.