Interception TLS

On parle ici d'interception TLS et non d'interception SSL car SSL n'est plus sensé être utilisé aujourd'hui. Voir les recommandations de l'ANSSI concernant la cryptographie.

Il est possible de lire sur un serveur mandataire les flux des clients grâce à une interception TLS. En effet, le serveur mandataire possède une extrémité du tunnel TLS, ainsi il peut lire les données.

Configuration

Pour réaliser des interceptions TLS, une version particulière de Squid est nécessaire. Sous Debian, il faut installer le paquet squid-openssl. Il est cependant possible de recompiler squid directement avec les options qui sont intéressantes.

Voici la configuration nécessaire :

http_port 3128 ssl-bump tls-cert=/etc/ssl/certs/squid-cert.pem tls-key=/etc/ssl/private/squid-key.pem generate-host-certificates=on dynamic_cert_mem_cache_size=128MB cipher=HIGH:!MEDIUM:!LOW:!IDEA:!3DES:!MD5 options=NO_TLSv1,NO_SSLv3,NO_SSLv2,SINGLE_DH_USE,SINGLE_ECDH_USE

ssl_bump bump all

sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/spool/squid/ssl_db -M 128MB
sslcrtd_children 32 startup=10 idle=5

Il est nécessaire d'avoir une base de donnée pour la création dynamique de certificat, ici /var/spool/squid/ssl_db. La commande suivante est nécessaire pour sa création :

/usr/lib/squid/security_file_certgen -c -s /var/spool/squid/ssl_db -M 128 MB

Cela permet de voir les méta-données des flux, comme ci-dessous :

1688376761.272    699 192.168.1.9 TCP_MISS/200 5508 GET https://wiki.salo.pe/archlinux/shell.html - HIER_DIRECT/149.56.15.239 text/html

La partie URL ou contentMIME est normalement chiffré, mais ici on peut de voir grâce à l'interception.

Utilisation

Cette interception toute seul ne sert qu'à des fins de journalisation. Cependant, elle permet d'ajouter des outils de filtrage des flux. On va aborder squidGuard et squidClamav.

Il est important d'avoir à l'esprit que le chiffrement/déchiffrement des flux à la volée est couteux au niveau des performances machines. Ainsi, il est peut-être souhaitable d'installer des exceptions à l'interception TLS. On peut par exemple citer les sites faisant du flux vidéo comme YouTube ou Netflix. Il s'agit de sites relativement de confiance et qui envoient beaucoup de données par très utile à analyser.