Comment accéder aux sites Web HTTPS ou à des données HTTPS depuis un ancien PC sous Windows XP. Mise en place d’un proxy d’adaptation local.

Les machines sous Windows XP ont commencé à rencontrer des problèmes pour se connecter à des sites HTTPS à partir de 2014. Ces problèmes se sont aggravés dans les années suivantes. En pratique, depuis 2020 environ, Windows XP ne permet plus d’accéder aux sites Web ou à des données en ligne sécurisées avec le protocole HTTPS.

C’est parfois regrettable, parce que de nombreux anciens PC sous Windows XP sont encore en état de marche et pourraient servir encore quelques années, avec une consommation électrique souvent très faible (cas des terminaux point de vente qui consomment seulement 10 à 20 watts). D’autre part ces machines ne peuvent pas être mises à jour vers Windows 7 ou Windows 10, en particulier parce qu’elles sont la plupart du temps limitées à 512 Mo de mémoire vive.

Windows XP pose des problèmes de sécurité s’il est exposé publiquement ou s’il se trouve dans un environnement sensible multi utilisateurs. Mais pour des utilisations non critiques eu égard à la sécurité, lorsqu’il est géré par un technicien averti, à l’intérieur d’un réseau local doté d’un firewall et de préférence isolé dans un VLAN, il est toujours possible de l’utiliser.

Il y a 3 raisons majeures pour lesquelles la compatibilité n’est plus assurée :

  • Windows XP ne prenait en charge que les versions TLS 1.0 et TLS 1.1 (et SSL 2.0/3.0 qui sont désormais considérés comme non sécurisés). Cependant, la plupart des sites web ont commencé à exiger TLS 1.2 ou même TLS 1.3 à partir de 2015. Internet Explorer 8 (la dernière version du navigateur par défaut de Windows XP) ne prend pas en charge TLS 1.2. D’autres navigateurs comme Firefox ont continué à prendre en charge Windows XP pendant un certain temps, mais ils ont aussi cessé de supporter l’OS aux alentours de 2017. TLS est situé ici dans les couches de protocoles :
  • Les certificats inclus dans Windows XP n’ont pas été mis à jour depuis la fin du support étendu de Microsoft en avril 2014. De nombreux certificats nécessaires pour établir une connexion HTTPS valide sont devenus obsolètes ou incompatibles avec Windows XP. Le 30 mai 2020, l’expiration du certificat racine AddTrust External CA Root a causé des problèmes supplémentaires.
  • Les sites HTTPS ont progressivement abandonné les suites de chiffrement compatibles avec Windows XP (comme celles utilisant SHA-1) pour migrer vers des algorithmes modernes comme SHA-256, ECDSA, ou RSA avec des tailles de clés plus grandes.

Il faut donc compenser ces manques pour permettre à Windows XP de se connecter aux sites utilisant le protocole HTTPS.

Le fonctionnement global d’une connection HTTPS :

Pour tester le degré de support TLS d’un navigateur Internet :

https://browserleaks.com/tls

Les solutions possibles

Même en installant les dernières mises à jour disponibles, le service pack 3 et les mises à jour ponctuelles qui ont suivi jusqu’en 2019 pour les terminaux point de vente, il manque des éléments dans Windows XP pour permettre un accès aux sites et données sécurisés par HTTPS, même après installation du protocole TLS 1.2 et de certificats récents.

Une solution possible consiste à utiliser un navigateur Internet qui intègre en interne la gestion des nouveaux protocoles, par exemple Mypal (nécessite un processeur avec le jeu d’instructions SSE2, ce qui exclu les processeurs Athlon de l’époque), ou Firefox ESR 52.9.0, K-Meleon, RetroZilla ou d’autres navigateurs actuellement activement développés.

Ces solutions fonctionnent en général lorsqu’il s’agit d’accéder à des sites Web, mais ne fonctionnent pas lorsqu’un logiciel spécifique a besoin d’accéder à des données dont l’accès est sécurisé par HTTPS. Parce que dans ce cas c’est le système d’exploitation et non un navigateur qui doit fournir les couches de protocoles à jour.

Prenons l’exemple du logiciel « CouCou », utilisé par les clubs radio amateurs pour annoncer l’heure et la météo sur leurs relais radio. Il ne fonctionne plus totalement sous Windows XP. En effet, pour annoncer la météo par synthèse vocale, il a besoin de récupérer des données Metar. Ce sont des fichiers textes disponibles sur des sites spécialisés et accessible en HTTPS.

Ces données étaient autrefois disponible en téléchargement par le protocole HTTP qui ne posait pas de problèmes particuliers sous Windows XP. Mais depuis quelques années il est obligatoire d’y accéder en HTTPS. En effet, pour répondre aux normes modernes de sécurisation des échanges, la migration des sites fournissant des données météo METAR vers le protocole HTTPS a commencé à s’intensifier en 2017 pour se terminer vers 2019. La disponibilité des certificats gratuits Let’s Encrypt à partir de 2015 a d’ailleurs permis d’accélérer cette adoption massive du HTTPS.

En conséquence, les systèmes de relais radio utilisant ce type de logiciel avec un PC sous Windows XP ne peuvent plus délivrer la météo parce qu’un accès HTTP non sécurisé n’est plus disponible. La situation est similaire pour nombre de systèmes anciens reposant sur Windows XP.

La solution consiste à utiliser un proxy d’adaptation, pour intercepter les requêtes HTTP ou HTTPS du logiciel CouCou (ou autre logiciel fonctionnant sur le même principe), et pour les reformater en HTTPS en utilisant une suite de protocoles et un jeu de certificats à jour. Un proxy d’adaptation agit comme un intermédiaire entre un navigateur, ou un logiciel client, et Internet :

Un proxy peut réaliser diverses tâches de conversion ou de filtrage, dans un sens ou dans l’autre (on parle alors de reverse proxy). Dans le cas qui nous intéresse ici, le proxy doit réécrire les requêtes HTTP ou HTTPS anciennes du client en les rendant compatible avec le serveur destination, puis réécrire les réponses HTTPS du serveur pour les rendre compatibles avec la suite de protocoles disponible sur le client. Si le client utilise HTTP, le proxy se charge de convertir depuis HTTP vers HTTPS pour l’accès au serveur sécurisé, et vice-versa. Si le client utilise une ancienne version de HTTPS, le proxy se charge de convertir d’une ancienne version de HTTPS à une version compatible avec le HTPPS du serveur.

Il y a deux possibilités en pratique pour y parvenir :

  • Utiliser un proxy d’adaptation externe, installé sur un PC, un serveur ou un routeur sous Linux situé dans le même réseau local.
  • Utiliser un proxy d’adaptation sur la machine Windows XP elle même.

Dans les deux cas, il est possible d’utiliser le logiciel gratuit ProxHTTPSProxy, compatible avec Windows XP, pour réaliser cette tâche.

J’ai testé et validé la deuxième solution sur une machine virtuelle, puis sur un PC sous Windows XP sp3 équipé de 512 Mo de mémoire vive.

Après l’installation du logiciel ProxHTTPSProxy et redémarrage du logiciel Coucou, les données météo Metar sont redevenues accessibles, sans nécessiter la mise en place d’un autre PC. ProxHTTPSProxy consomme typiquement environ 25 Mo de mémoire vive, ce qui le rend compatible avec des machines Windows XP équipées de 512 Mo de RAM voir moins en utilisant de la mémoire virtuelle crée sur une unité de stockage.

Ici ProxHTTPSProxy au secours du logiciel Coucou sous Windows XP, pour convertir ses requêtes de données météo Metar HTTP vers HTTPS :

Il sera nécessaire de choisir la version de ProxHTTPSProxy ou de le compiler en fonction du processeur. Les processeurs anciens de 1999 à 2003 environ supportent seulement les instructions SSE (Streaming SIMD Extensions) et peuvent poser des problèmes de compatibilité. Ceux qui ont suivi supportent en plus les instructions SSE2. En pratique les processeurs Intel compatibles SSE2 ne devraient pas poser de problèmes de compatibilité contrairement aux processeurs qui ne supportent que SSE. Il est possible d’utiliser CPU-Z Vintage Edition par exemple pour détecter le processeur et le jeu d’instruction supporté.

Chez Intel le Pentium III (Katmai, Coppermine, Tualatin) était limité à SSE tout comme le Céléron Pentium III. Chez AMD les processeurs Athlon XP, Athlon XP-M et Duron sont également limités à SSE. Le Pentium IV et l’Athlon 64 ont apporté le jeu d’instructions SSE2.

Si le PC est trop ancien pour être compatible avec ProxHTTPSProxy (pas de support SSE ou processeur incompatible), il est alors possible d’installer ProxHTTPSProxy sur une autre machine du réseau local, compatible avec SSE ou SSE2. Il faudra alors indiquer l’adresse IP de cette machine sur l’ancien PC, dans la configuration proxy du système.

Lors de mes tests, j’ai rencontré un problème de compatibilité avec le processeur Athlon XP-M. Il ne m’a pas été possible d’y installer VC++ redist 2015 version 14.28.29213.0, prérequis nécessaire à l’installation d’une version récente de ProxHTTPSProxy et compatible SSE. J’ai trouvé une solution, voir plus bas.

Différentes versions de ProxHTTPSProxy sont disponibles sur divers sites. La version PopMenu TLS 1.3 3V3 est la plus aboutie avec le support de TLS 1.3 et des anciens processeurs SSE non compatibles SSE2. Mediafire interdisant actuellement ce fichier suite à une fausse détection de virus, le voici ici :

Ainsi que les prérequis à installer dans le système :

Sur un processeur Athlon XP (non compatible SSE2), le pack Microsoft VC++ redist 2015 version 14.28.29213.0 peut ne pas s’installer. Dans ce cas utiliser cette version AIO :

Si vous avez un doute sur ces fichiers, VirusTotal permet d’analyser leur comportement : https://www.virustotal.com

Les principales informations sur ProxHTTPSProxy, avec des liens vers les différentes versions, se trouve dans ce fil sur le Forum MSFN :

https://msfn.org/board/topic/183352-proxhttpsproxy-and-httpsproxy-in-windows-xp-for-future-use/

Dépôt GitHub : Une version maintenue appelée ProxHTTPSProxyMII est hébergée sur GitHub. Elle fournit le code source et est compatible avec des proxys de filtrage comme Proxomitron.

https://github.com/asgrom/ProxHTTPSProxyMII

Forum Proxomitron (prxbx.com) : Une communauté active autour de ProxHTTPSProxy est également présente sur les forums de Proxomitron.

https://prxbx.com/forums

https://www.prxbx.com

NB : Le logiciel Proxomitron est un proxy de filtrage (ancien), principalement HTTP, qui s’utilise conjointement avec ProxHTTPSProxy pour former un ensemble de filtrage HTTPS complet. Il ne supporte pas lui-même les protocoles HTTPS récents. ProxHTTPSProxy est un proxy d’adaptation qui peut s’utiliser seul. Il sert à convertir les protocoles HTTP ou HTTPS anciens vers les protocoles HTTPS récents mais il n’est pas conçu pour filtrer.

A l’origine, ProxHTTPSProxy a été créé pour adapter Proxomitron à un environnement HTTPS moderne. Dans ce cas de figure, les deux ports d’entrée de ProxHTTPSProxy (Front et Rear) sont utilisés conjointement avec Proxomitron pour former un ensemble de filtrage HTTPS complet :

Dans le cas de figure qui nous intéresse, une simple adaptation sans filtrage, cette architecture de filtrage n’est pas nécessaire : on utilisera seulement ProxHTTPSProxy et son port d’entrée Front Server (port numéro 8079 par défaut).

©Copyright Olivier ADLER 2024


Publié

dans

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *