Sommaire
Objectif
Afin de faciliter le débogage, plusieurs implémentations du protocole TLS sauvegardent les clefs de chiffrement utilisées par ce dernier. Ces sauvegardes utilisent un fichier généralement défini par une variable d'environnement appeléeSSLKEYLOGFILE.
Cette page a pour objectif de décrire la mise en place de ce fichier ainsi que son utilisation dans Wireshark pour déchiffrer les flux TLS.
💡 Information :
Certaines bibliothèques, comme BoringSSL, n'utilisent pas cette fonctionnalité. Par conséquent, la méthode décrite ci-dessous ne peut pas être utilisée, en l'état, pour des flux mobiles.
Pré-requis
- Avoir Wireshark installé
- Avoir les droits suffisants pour capturer les flux
- Avoir accès à un terminal
Procédure à suivre
- Créer un fichier vide (par exemple /tmp/tlskeys). Celui-ci recevra les clés utilisées par votre navigateur. Cette étape est optionnel, le fichier sera automatiquement créer lors des premiers échanges.
- Définir la variable d'environnement
SSLKEYLOGFILEavec le chemin vers le fichier créé. Cette action peut être réalisée avec la commande suivante :
3. export SSLKEYLOGFILE=/tmp/tlskeys
- Dans Wireshark, aller dans Preferences → Protocols → TLS et remplir le champ « (Pre)-Master-Secret log filename » avec le chemin vers le fichier précédemment créé.
Maintenant, si vous lancez une capture avec Wireshark, vous pouvez analyser le contenu des segments TLS.
⚠️ Remarque :
Il est important de prendre une copie du fichier contenant les clés de chiffrement. Sans lui, si vous enregistrez votre capture et que vous souhaitez l'analyser plus tard, il vous sera impossible de déchiffrer les segments.