Est-il possible d'avoir des connexions HTTPS sur des serveurs proxy? Si oui, quel type de serveur proxy permet cela?
Dupliqué avec Comment utiliser le proxy Socks 5 avec Apache HTTP Client 4?
Est-il possible d'avoir des connexions HTTPS sur des serveurs proxy? Si oui, quel type de serveur proxy permet cela?
Dupliqué avec Comment utiliser le proxy Socks 5 avec Apache HTTP Client 4?
Réponses:
TLS / SSL (Le S en HTTPS) garantit qu'il n'y a pas d'espionnage entre vous et le serveur que vous contactez, c'est-à-dire pas de mandataires. Normalement, vous utilisez
CONNECT
pour ouvrir une connexion TCP via le proxy. Dans ce cas, le proxy ne pourra pas mettre en cache, lire ou modifier les requêtes / réponses, et donc être plutôt inutile.Si vous souhaitez que le proxy puisse lire les informations, vous pouvez adopter l'approche suivante:
Un exemple est la bosse SSL de Squid . De même, burp peut être configuré pour ce faire. Cela a également été utilisé dans un contexte moins bénin par un FAI égyptien .
Notez que les sites Web et les navigateurs modernes peuvent utiliser HPKP ou des broches de certificat intégrées qui vont à l'encontre de cette approche.
la source
Unconditionally trusted
fait référence à un certificat CA. Les certificats d'autorité de certification n'ont pas de domaine. J'ai modifié la réponse avec deux exemples où cela fonctionne / a fonctionné dans la pratique sans aucune alerte à l'utilisateur.La réponse courte est: c'est possible et peut être fait avec un proxy HTTP spécial ou un proxy SOCKS.
Tout d'abord, HTTPS utilise SSL / TLS qui, de par sa conception, assure la sécurité de bout en bout en établissant un canal de communication sécurisé sur un canal non sécurisé. Si le proxy HTTP est capable de voir le contenu, alors c'est un homme du milieu qui écoute et cela va à l'encontre de l'objectif de SSL / TLS. Donc, il doit y avoir quelques astuces en cours de lecture si nous voulons proxy via un proxy HTTP simple.
L'astuce est que nous transformons un proxy HTTP en proxy TCP avec une commande spéciale nommée
CONNECT
. Tous les proxys HTTP ne prennent pas en charge cette fonctionnalité, mais beaucoup le font maintenant. Le proxy TCP ne peut pas voir le contenu HTTP transféré en texte clair, mais cela n'affecte pas sa capacité à transférer les paquets dans les deux sens. De cette manière, le client et le serveur peuvent communiquer entre eux à l'aide du proxy. C'est le moyen sécurisé de proxy des données HTTPS.Il existe également une manière non sécurisée de le faire, dans laquelle le proxy HTTP devient un homme du milieu. Il reçoit la connexion initiée par le client, puis initie une autre connexion au serveur réel. Dans un SSL / TLS bien implémenté, le client sera informé que le proxy n'est pas le vrai serveur. Le client doit donc faire confiance au proxy en ignorant l'avertissement pour que les choses fonctionnent. Après cela, le proxy décrypte simplement les données d'une connexion, les rechiffre et les alimente dans l'autre.
Enfin, nous pouvons certainement proxy HTTPS via un proxy SOCKS , car le proxy SOCKS fonctionne à un niveau inférieur. Vous pouvez penser qu'un proxy SOCKS est à la fois un proxy TCP et un proxy UDP.
la source
autant que je me souvienne, vous devez utiliser une requête HTTP CONNECT sur le proxy. cela convertira la connexion de demande en un tunnel TCP / IP transparent.
vous devez donc savoir si le serveur proxy que vous utilisez prend en charge ce protocole.
la source
Si cela vous intéresse encore, voici une réponse à une question similaire: Convertir le proxy HTTP en proxy HTTPS dans Twisted
Pour répondre à la deuxième partie de la question:
Hors de la boîte, la plupart des serveurs proxy seront configurés pour autoriser les connexions HTTPS uniquement au port 443, de sorte que les URI https avec des ports personnalisés ne fonctionneraient pas. Ceci est généralement configurable, en fonction du serveur proxy. Squid et TinyProxy prennent en charge cela, par exemple.
la source
Voici mon code Java complet qui prend en charge les requêtes HTTP et HTTPS à l'aide du proxy SOCKS.
la source
Vous pouvez accomplir cela en utilisant des techniques man-in-the-middle avec la génération SSL dynamique. Jetez un œil à mitmproxy - c'est un proxy MITM basé sur Python et compatible SSL.
la source
tunneling HTTPS via SSH (version linux):
tout ce que vous faites sur localhost. puis:
la source
J'avais essayé
ssh -N -D 12345 login@proxy_server
localhost:12345
mais cela entraînait l'erreur «Connexion non sécurisée» chaque fois que j'essayais de me connecter à un site Web https.
La solution était de
Référence tirée de la documentation numérique sur l'océan
Comment acheminer le trafic Web en toute sécurité sans VPN à l'aide d'un tunnel SOCKS
la source
Je ne pense pas que "avoir des connexions HTTPS sur des serveurs proxy" signifie le type d'attaque Man-in-the-Middle du serveur proxy. Je pense que cela demande si l'on peut se connecter à un serveur proxy http via TLS. Et la réponse est oui.
Oui, voir ma question et ma réponse ici. Le serveur proxy HTTP ne fonctionne que dans SwitchOmega
Le type de serveur proxy déploie des certificats SSL, comme le font les sites Web ordinaires. Mais vous avez besoin d'un
pac
fichier pour le navigateur pour configurer la connexion proxy via SSL.la source