753 votes

Les en-têtes HTTPS sont-ils chiffrés ?

Lors de l'envoi de données via HTTPS, je sais que le contenu est chiffré, cependant j'entends des réponses contradictoires sur le fait que les en-têtes sont chiffrés, ou combien de l'en-tête est chiffré.

Combien des en-têtes HTTPS sont chiffrés?

Y compris les URL des requêtes GET/POST, les cookies, etc.

17 votes

Les en-têtes HTTP sur HTTPS sont cryptées et ne sont pas non plus compressées en HTTP (même si le corps l'est). Cela les rend moins vulnérables aux attaques liées à la compression comme BEAST.

676voto

Greg Points 132247

Tous les en-têtes HTTP sont cryptés†. C'est pourquoi SSL sur les vhosts ne fonctionne pas très bien - vous avez besoin d'une adresse IP dédiée car l'en-tête Host est crypté.

†La norme Server Name Identification (SNI) signifie que le nom d'hôte peut ne pas être crypté si vous utilisez TLS. De plus, que vous utilisiez SNI ou non, les en-têtes TCP et IP ne sont jamais cryptés. (S'ils l'étaient, vos paquets ne pourraient pas être routables.)

4 votes

@Greg, Comme la passerelle vhost est autorisée, ne pourrait-elle pas les désactiver, observer l'en-tête Host, puis déterminer à quel hôte envoyer les paquets?

3 votes

Afaik l'URL lui-même n'est pas crypté.

9 votes

@Teddu que voulez-vous dire par "L'URL elle-même n'est pas cryptée.". Elle est cryptée, car elle fait partie de l'en-tête.

123voto

mdb Points 20629

Les en-têtes sont entièrement cryptées. La seule information circulant sur le réseau "en clair" est liée à la configuration SSL et à l'échange de clés D/H. Cet échange est soigneusement conçu pour ne pas fournir d'informations utiles aux espions, et une fois qu'il a eu lieu, toutes les données sont cryptées.

7 votes

Tous les paramétrages SSL ne nécessitent pas DH

48 votes

Pour être un peu pointilleux: L'adresse IP du client et du serveur, le nom d'hôte du serveur et les signaux concernant leurs implémentations SSL sont utiles aux espions et sont visibles.

56voto

AviD Points 8413

La version HTTP 1.1 a ajouté une méthode spéciale HTTP, CONNECT - destinée à créer le tunnel SSL, y compris le protocole de poignée de main nécessaire et la configuration cryptographique.
Les requêtes régulières qui suivent sont toutes envoyées enveloppées dans le tunnel SSL, en incluant les en-têtes et le corps.

0 votes

Quand CONNECT est-il utilisé pour créer le tunnel SSL ?

0 votes

54voto

CMS Points 315406

HTTPS (HTTP sur SSL) envoie tout le contenu HTTP sur un tunnel SSL, de sorte que le contenu et les en-têtes HTTP sont également cryptés.

53voto

blowdart Points 28735

Avec SSL, le chiffrement se fait au niveau du transport, donc avant l'envoi d'une requête.

Ainsi, tout ce qui se trouve dans la requête est crypté.

0 votes

Puisque SSL se déroule dans la couche de transport et que l'attribution de l'adresse de destination dans les paquets (dans l'en-tête) se produit dans la couche réseau (qui est en dessous de la couche de transport), comment les en-têtes sont-ils chiffrés?

0 votes

@PrateekJoshi Parce que les en-têtes HTTP résident sur la couche d'application et sont donc, par défaut, cryptés en raison d'une couche inférieure/ancestrale étant cryptée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X