Onglets Squid et Squid2 : activation du déchiffrement HTTPS

Déchiffrement et interception du protocole HTTPS

Par rapport au protocole HTTP[1], le protocole HTTPS permet de chiffrer la communication entre le navigateur du poste client et le serveur du site distant.

Dans ce cas, le serveur proxy ne journalise qu'une seule connexion vers le site distant (exemple : https://pcll.ac-dijon.fr) mais pas les différentes requêtes d'accès aux pages ou aux fichiers se trouvant sur ce serveur (exemple : https://pcll.ac-dijon.fr/eole/).

En HTTPS, le serveur Proxy ne peut pas filtrer le contenu des pages consultées ni scanner les fichiers téléchargés avec un antivirus.

Le déchiffrement HTTPS sur le serveur Proxy permet d'intercepter l'ensemble des requêtes et de les journaliser, de filtrer le contenu des pages visitées et de scanner les fichiers téléchargés.

Fonctionnement HTTPS normal
Fonctionnement HTTPS normal
Fonctionnement HTTPS déchiffré par le Proxy
Fonctionnement HTTPS déchiffré par le Proxy

Certificat Racine de l'autorité de certification

Un certificat HTTPS est émis par une autorité de certification[2].

Let's Encrypt[3], par exemple, est une autorité de certification publique et connue des navigateurs ; son certificat racine est pré-installé dans les navigateurs et les systèmes d'exploitation.

Autorité de certification AC (Certificate Authority CA)
Autorité de certification AC (Certificate Authority CA)

En revanche, le certificat racine utilisé par Amon pour déchiffrer le protocole HTTPS n'est pas public et il faut donc l'installer sur les postes clients dont le trafic doit être déchiffré et intercepté. La procédure est détaillée plus bas.

AttentionATTENTION AUX LIMITATIONS LÉGALES

Dans la mesure où les connexions sont déchiffrées par le proxy, il convient de prévenir les utilisateurs, en particulier les adultes et le personnel. En effet, la loi reconnaît un droit à la vie privée même sur le lieu de travail : article 9 du Code civil et article L 1121-1 du Code du travail, entre autres.

Dans certains cas, comme par exemple lors des accès aux sites bancaires ou aux sites médicaux, il ne semble pas évident que le déchiffrement HTTPS soit légal.

Mise en œuvre

Deux variables ont été ajoutées dans les onglets Squid et Squid2 :

  • Activer le déchiffrement HTTPS ;

  • Activer le déchiffrement HTTPS sur la seconde instance de Squid.

Ces deux variables permettent d’activer le déchiffrements des flux HTTPS transitant à travers le proxy.

Une fois le déchiffrement des flux HTTPS activé, le proxy a la capacité de connaître l’ensemble des URL consultées par l’utilisateur. Dans les journaux figureront donc les URL complètes et non uniquement les noms de domaines, comme c’est le cas sans le déchiffrement.

Dans ce mode de fonctionnement, le proxy génère un nouveau certificat pour chaque domaine visité et propose celui-ci à l’utilisateur. Tous ces certificats sont signés par une autorité de certification propre au proxy.

Pour que ces certificats soient perçus comme valides par les différentes applications utilisant le proxy, il est nécessaire de diffuser l’autorité de certification propre au proxy auprès de ces applications.

Truc & astuce

Sur un module Amon configuré pour l'interception des communications HTTPS, la commande diagnose permet de connaître le chemin et l'empreinte du certificat :

1
*** Validité du certificat racine du proxy (/etc/eole/squid_CA.crt)
2
.               signingCA.crt => Ok
3
.                   Empreinte => SHA256 Fingerprint=62:1B:BF:25:28:44:31:02:7E:09:31:A6:EA:FD:A5:A8:7C:D4:EB:B6:3D:83:88:62:0F:98:85:1A:DC:50:99:E0
4

Intégration de l’autorité de certification sur distributions Debian et dérivées

Copier le fichier /etc/eole/squid_CA.crt dans le répertoire du client : /usr/local/share/ca-certificates/ et exécuter la commande :

sudo update-ca-certificates

Intégration de l’autorité de certification sur Windows

Copier le fichier /etc/eole/squid_CA.crt sur le poste. Cliquer droit dessus et faire "installer le certificat". Le certificat doit être mis dans le "magasin de certificat" : "Autorités de certification racines de confiance".

Les applications communes comme Edge, Chromium, les mises à jours, ... reconnaîtront ainsi cette autorité.

Intégration de l’autorité de certification dans le magasin du navigateur Firefox

Dans le "gestionnaire de certificats", présent dans l'onglet "Vie privée" des préférences du logiciel, se rendre dans l'onglet "Autorités". Il est alors nécessaire d'importer le fichier /etc/eole/squid_CA.crt disponible sur l'Amon. Lors de l'importation, penser à cocher "Confirmer cette AC pour identifier des sites web".

Remarque

L’intégration du certificat peut être automatisée pour les postes joints à un domaine contrôlé par un module EOLE avec le paquet eole-workstation-manager installé.

Dans ce cas précis, la configuration du module contrôleur de domaine propose l’option Activer la configuration de Firefox qui met en place la procédure de déploiement du certificat sur les postes clients salt.

Pour plus d’informations, se reporter à la documentation des modules AmonEcole et Scribe, onglet Workstation.