Permet à Chrome d'utiliser le tunnel SSL en tant que proxy (HTTP CONNECT) pour les requêtes HTTP

2

Je souhaite que Chrome utilise SSL pour toutes les demandes sortantes adressées à un proxy (que je contrôle). Le proxy peut accepter une connexion HTTPS standard (en tant que proxy transparent). Il prend également en charge une connexion HTTP non chiffrée à l'intérieur de laquelle le client peut effectuer une connexion HTTP, puis négocier SSL.

Cependant, Chrome utilise uniquement HTTP CONNECT pour les URL http . Lorsque j'ouvre une URL http, chrome envoie un HTTP GET au proxy au lieu de HTTP CONNECT. Cela se produit même si j'utilise un script PAC qui renvoie "hôte HTTPS: port" pour les URL http et https. Et je ne peux pas faire en sorte que Chrome utilise du HTTPS ordinaire lors de la connexion au proxy.

Mon objectif est de protéger le trafic entre le navigateur et le proxy des écouteurs de réseau passifs, notamment en masquant les jetons d'authentification de proxy transmis dans les en-têtes HTTP. Comment puis-je accomplir cela?

Danarmak
la source
Sérieux Chrome utilise HTTP CONNECT pour les requêtes https? La demande directe n'est-elle pas utilisée à la place?
Pacerier
Veuillez préciser "..si le client peut utiliser HTTP CONNECT puis négocier SSL". Je ne comprends pas
Pacerier
Juste un conseil pour les futurs visiteurs: en combinant un proxy avec une connexion VPN, vous pouvez obtenir un «tunneling fractionné» dans lequel seul le trafic du navigateur est acheminé via la connexion VPN.
Daniel B

Réponses:

0

Mon objectif est de protéger le trafic entre le navigateur et le proxy des écouteurs de réseau passifs, notamment en masquant les jetons d'authentification de proxy transmis dans les en-têtes HTTP. Comment puis-je accomplir cela?

CONNECT n'est pas un protocole utilisé pour proxy les connexions HTTP simples, mais il est uniquement utilisé pour créer un tunnel vers un autre hôte. Les connexions HTTPS créent ensuite une connexion TLS à l'intérieur de ce tunnel qui fournit alors la protection souhaitée.

Cela signifie que même si vous pouviez convaincre Chrome de créer un tunnel pour HTTP pur à l'aide de CONNECT, il ne fournirait pas la protection attendue, car il utiliserait ce tunnel avec HTTP simple. Le cryptage est une propriété de HTTPS et non du tunnel CONNECT et aucun cryptage ne serait effectué pour le tunneling HTTP de cette façon. Ainsi, un attaquant serait toujours en mesure de renifler toutes les données que vous aimez protéger.

Ce qu'il vous faudrait pour protéger la connexion entre Chrome et le proxy, ce serait un VPN. Mais cela ne protège pas la connexion entre le proxy et le serveur. Cette protection ne peut être effectuée que si le serveur lui-même prend en charge le protocole HTTPS.

Steffen Ullrich
la source
Je comprends que. C'est pourquoi j'ai mentionné que je pouvais également fournir un proxy HTTPS transparent (avec le bon certificat de backend). Je ne peux pas dire à mes utilisateurs d'utiliser un VPN, j'ai besoin d'une solution prise en charge par Chrome lui-même (configuration du module de proxy).
danarmak
Si je vous ai bien compris, vous envisagez un proxy http auquel on peut accéder via SSL. Il n’ya pas de prise en charge de cela dans les navigateurs et les mandataires actuels, mais vous pouvez créer quelque chose comme ceci avec stunnel. Bien sûr, cela nécessite une instance Stunnel sur chaque client puisque vous souhaitez protéger la connexion entre le client et le proxy.
Steffen Ullrich
@danarmak, attendez, vous voulez dire que vous voulez convertir toutes les demandes HTTP de Chrome en HTTPS, comme ce que fait HTTPS PARTOUT?
Pacerier
0

Il semble n'y avoir aucun moyen de faire cela à Chrome.

Je tiens à noter que l'API d'extension Chrome permettant de contrôler les paramètres de proxy semble permettre ce scénario, mais il n'existe aucun moyen d'obtenir la configuration équivalente via des paramètres de proxy manuels ou un script PAC.

Danarmak
la source
Voir ma réponse pour les mises à jour.
Pacerier
-2

Je n'ai jamais essayé auparavant, mais vous pouvez expérimenter avec --proxy-serverflag .

Pacerier
la source
Cela ne fait pas ce que veut le PO. Cela n'entraînera pas de connexion cryptée entre le navigateur et le proxy. C'est simplement une façon de faire en sorte que Chrome utilise un serveur proxy spécifique, en remplaçant la source de configuration normale pour cette valeur.
Daniel B