Navigation par Proxy, https bloqué

Mammouth du PHP | 1967 Messages

14 août 2013, 13:41

Bonjour à tous,

Je bosse comme chercheur sur un campus, c'est donc une service externe qui s'occupe de toute notre informatique. Récemment il ont modifié la manière d’accéder à internet. On doit passer à travers un proxy avec une authentification. Cela me pose pas mal de problème pour faire fonctionner divers services qui ont besoin d'un accès internet.

De plus, tous les sites https demande l'ajout d'une exception car le certificat n'est pas signé par une autorité reconnue. Par exemple pour faire fonctionner hotmail, j'ai du aller voir le code source de la page pour trouver tous les serveurs utilisées pour les fichiers externes (feuille de style, script js, ...) et ajouter les exceptions pour enfin pouvoir l'utiliser. Pour google Map impossible de l'utiliser.

Quand on contact le service informatique, on tombe systématiquement sur des personnes qui ne connaissent rien au système de proxy mis en place.

J'aurais voulu avoir des avis externes sur le type de protection mis en place dans des grandes structures pour limiter les accès à des sites comme facebook, youtube, ...
Est-ce qu'une solution posant soucis à chaque connexion https vous semble aberrant ou pas ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 août 2013, 14:50

Est-ce qu'une solution posant soucis à chaque connexion https vous semble aberrant ou pas ?
Une solution qui bloque la navigation sécurisée est bien entendu une aberration !
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 5924 Messages

19 août 2013, 20:14

Bonjour,
De plus, tous les sites https demande l'ajout d'une exception car le certificat n'est pas signé par une autorité reconnue. Par exemple pour faire fonctionner hotmail, j'ai du aller voir le code source de la page pour trouver tous les serveurs utilisées pour les fichiers externes (feuille de style, script js, ...) et ajouter les exceptions pour enfin pouvoir l'utiliser. Pour google Map impossible de l'utiliser.

(...)

J'aurais voulu avoir des avis externes sur le type de protection mis en place dans des grandes structures pour limiter les accès à des sites comme facebook, youtube, ...
Est-ce qu'une solution posant soucis à chaque connexion https vous semble aberrant ou pas ?
S'ils installent un proxy (un vrai proxy) ça ne doit pas altérer l'authentification https. Pour une connexion https, le proxy http classique est sensé relayer le trafic inaltéré (méthode http CONNECT). Est-ce que le proxy est bien renseigné dans le navigateur, y compris pour le protocole https ?

Ceci dit certaines appliances proxy cassent intentionnellement les sessions https, notamment pour contrôler les virus ou le trafic y compris contenu dans des sessions sécurisées. En général c'est combiné avec l'ajout dans les navigateurs et les systèmes d'exploitation de l'autorité de confiance du constructeur ou du certificat de l'appliance. Cette pratique est extrêmement intrusive puisqu'elle permet à l'appliance de décoder toutes les sessions chiffrées, notamment les connexions bancaires &cie, et elles suppriment toute possibilité à l'utilisateur de contrôler les sites web de confiance. Si cette pratique est avérée et pose problème, ce n'est pas normal, et il faut les harceler pour désactiver le comportement.

Avant tout il faut vérifier que le problème est bien celui ci, cela peut se voir dans les détails du certificat qui est renvoyé lors de l'accès à un site https.

Cordialement.

Mammouth du PHP | 1967 Messages

20 août 2013, 08:38

Merci de ta réponse, cela confirme mes soupçons.

Dans les paramètres, c'est un fichier de configuration proxy.pac qui est renseigné si on lit ce fichier, il renseigne une série d'exception avec connexion directe (site locale, localhost, etc.) puis trie selon les protocoles
http => 2 adresses proxy avec un numéro de port
https => les 2 même adresses mais sans numéro de port
ftp => les 2 même adresses avec un autre numéro de port.

Je m'étonne que le protocole https n'ai pas de numéro de port, je ne sais donc pas quoi mettre dans les paramètres de dropbox par exemple.

Pour les certificat, je ne suis pas un expert mais cela me semble être des certificat autosigné par eux même. Je pense en avoir eu la confirmation d'une des personnes du service informatique qui m'a dit qu'il demandait depuis plus d'un an l'achat de certificat à une autorité compétente afin d'éviter de devoir ajouter une exception pour chaque site.

Si ils achètent des certificats, pourront ils toujours décrypter toutes nos données envoyées sur des sites sécurisés ? Pour donner une métaphore, une connexion https est comme un tunnel entre moi et le serveurs sécurisé, de l’extérieure on ne peut pas voir ce qui transite dedans. Mais si ils arrêtent ce tunnel à leur serveur pour le remplacer par leur propre tunnel il peuvent donc intercepter la totalité des données qui transitent. Est-ce que j'ai bien compris le principe ?

Merci de vos réponses, j'essaie de comprendre comment cela fonctionne surtout pour me protéger et éviter d'utiliser des données sensibles sur un système non protégée
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ViPHP
ViPHP | 5924 Messages

20 août 2013, 09:30

Merci de ta réponse, cela confirme mes soupçons.

Dans les paramètres, c'est un fichier de configuration proxy.pac qui est renseigné si on lit ce fichier, il renseigne une série d'exception avec connexion directe (site locale, localhost, etc.) puis trie selon les protocoles
http => 2 adresses proxy avec un numéro de port
https => les 2 même adresses mais sans numéro de port
ftp => les 2 même adresses avec un autre numéro de port.

Je m'étonne que le protocole https n'ai pas de numéro de port, je ne sais donc pas quoi mettre dans les paramètres de dropbox par exemple.
Oui, bizarre. Dans le doute, tu peux mettre le même port pour https que pour http (certainement le port 8080). Pour ftp je ne me souviens plus, peut être 21 ou 2121, n'hésite pas à tester.
Pour les certificat, je ne suis pas un expert mais cela me semble être des certificat autosigné par eux même. Je pense en avoir eu la confirmation d'une des personnes du service informatique qui m'a dit qu'il demandait depuis plus d'un an l'achat de certificat à une autorité compétente afin d'éviter de devoir ajouter une exception pour chaque site.
Tu peux le vérifier. Lorsque tu accèdes à un site en https (par exemple google) et qu'il te renvoie une exception de sécurité, en principe le navigateur te permet de visionner les détails du certificat. Tu peux poster ces informations ici si tu veux que l'on vérifie.
Si ils achètent des certificats, pourront ils toujours décrypter toutes nos données envoyées sur des sites sécurisés ? Pour donner une métaphore, une connexion https est comme un tunnel entre moi et le serveurs sécurisé, de l’extérieure on ne peut pas voir ce qui transite dedans. Mais si ils arrêtent ce tunnel à leur serveur pour le remplacer par leur propre tunnel il peuvent donc intercepter la totalité des données qui transitent. Est-ce que j'ai bien compris le principe ?
Pour le premier point: pas exactement, ceci dit ta conception de la connexion sécurisée est juste ! :)
La connexion https t'assures la confidentialité et l'authenticité de ta communication, et l'identité de ton pair:
* La confidentialité parce que le trafic est chiffré, personne ne peut voir de l'extérieur le contenu de la communication.
* L'authenticité parce que même si une portion du trafic est altérée ou supprimée, ton navigateur le détectera.
* L'identité de ton pair car le certificat TLS envoyé par le site web est émis pour un nom de domaine précis. Si le certificat est valide, cela signifie que tu parles à un pair dûment autorisé.
On peut donc apparenter cela à un tunnel dans le sens où, si quelqu'un observe de l'extérieur il ne peut rien voir, et si quelqu'un cherche à se mettre en coupure entre toi et le serveur tu le détecteras car le serveur placé en coupure ne peut pas te prouver son identité (certificat autosigné).

Pour tenter d"éclaircir le premier point:
Concrêtement lorsque tu demandes un certificat TLS pour rendre ton site web disponible en https, tu dois prouver que tu détiens le domaine (ou faire l'opération via ton bureau d'enregistrement). Ce certificat est demandé à une autorité de confiance, qui viendra attester que tu détiens bien le domaine. Si cette autorité de confiance est sérieuse et que ses procédures sont suffisamment solides pour assurer que personne ne peut générer un certificat pour un domaine dont il n'est pas titulaire, elle sera ajoutée dans les différents navigateurs et systèmes d'exploitation.
Ton école n'étant pas titulaire des domaines auxquels tu accèdes, elle ne peut pas demander un certificat à une autorité de confiance sérieuse. Elle ne peut générer que des certificats autosignés. Ce faisant ces certificats ne sont pas reconnus comme valides par ton navigateur. Pour cette raison la plupart des entreprises ou structures qui utilisent ce principe de proxy en coupure ajoutent à chaque poste client de leur organisation le certificat autosigné généré par leur appliance de proxy. Dans ce cas tu ne fais plus confiance directement au serveur de ton site web, mais à l'appliance proxy, qui elle est supposée vérifier la confiance de ton site web. Ceci dit c'est un système "boite noire", dans lequel tu n'as aucun contrôle, en tant qu'utilisateur, des règles et autorités de confiance configurées sur cette appliance. La seule chose que tu peux faire est inférer, en testant différents sites web...

Cordialement

Mammouth du PHP | 1967 Messages

20 août 2013, 11:23

Un grand merci pour ces éclaircissement.

J'ai vérifié, celui qui délivre les certificats dont je doit donner une exception est la même adresse que le proxy.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ViPHP
ViPHP | 5924 Messages

20 août 2013, 11:57

Un grand merci pour ces éclaircissement.

J'ai vérifié, celui qui délivre les certificats dont je doit donner une exception est la même adresse que le proxy.
Ok. Le comportement est-il le même en "hard-codant" le port du proxy https à 8080 ? 443 ? (logiquement oui mais sait-on jamais)

Si la structure est suffisamment petite et le service informatique suffisamment compréhensif il doit être possible de leur faire lever cette limitation, surtout s'il y a moyen de leur donner la marche à suivre en connaissant le constructeur de l'appliance de proxy. Il peut y avoir des indices sur le constructeur dans les certificats auto-signés, à défaut dans une capture du trafic réseau via des logiciels comme wireshark (attention de ne pas poster le résultat d'une telle capture ici ! ;) ).
En dernier recours, s'il n'est pas possible de leur faire entendre raison, il est possible de monter un tunnel sécurisé au dessus d'une connexion http pour bénéficier à nouveau d'une connexion non filtrée.

Enfin il semble qu'il n'y a eu aucune communication ou information aux utilisateurs lors de l'installation de cet équipement, ce qui n'est pas normal...

Cordialement.