Un proxy HTTPS est un serveur proxy qui relaie le trafic HTTPS chiffré entre un client et un site web. Le client envoie une requête HTTP CONNECT nommant l'hôte et le port de destination. Le proxy ouvre ensuite un tunnel et transfère les données dans les deux sens. TLS fonctionne de bout en bout à l'intérieur de ce tunnel, donc le proxy voit où le trafic va mais pas ce qu'il contient.

Chiffrement de la connexion au proxy

  • Proxy de tunneling simple : Le client communique avec le proxy via HTTP simple et envoie CONNECT host:port. Seul le trafic à l'intérieur du tunnel est chiffré, donc l'hôte et le port de destination dans cette requête voyagent non chiffrés vers le proxy.
  • Proxy atteint via TLS : Certains clients chiffrent également le saut vers le proxy. Dans curl, une URL de proxy commençant par https:// fait en sorte que curl ouvre une connexion TLS vers le proxy et vérifie le certificat du proxy avant de continuer.
  • Paramètres de confiance séparés : curl vous permet de vérifier le certificat du proxy contre un fichier CA différent (--proxy-cacert) de celui utilisé pour le site de destination.

Proxies d'interception TLS

Certains proxies HTTPS déchiffrent le trafic au lieu de le tunneliser. Ils agissent comme un homme du milieu : le proxy termine la session TLS du client, inspecte le contenu, puis le rechiffre et le transfère au véritable serveur. Pour éviter les avertissements du navigateur, les administrateurs doivent installer un certificat que le client fait confiance sur chaque appareil. CISA avertit que le client ne peut alors vérifier que sa connexion au produit d'interception, et non au serveur de destination.

Termes associés