ssldump

Décodeur et analyseur de trafic SSL/TLS. Capture et décode les sessions SSL/TLS en affichant les détails de protocole, les informations de handshake et les données applicatives déchiffrées lorsque les clés sont disponibles. SSL/TLS traffic decoder and analyzer. Captures and decodes SSL/TLS sessions showing protocol details, handshake information, and decrypted application data when keys are available.

↗ https://github.com/adulau/ssldump

Overview

ssldump is an SSL/TLS network protocol analyzer. It captures SSL/TLS traffic from a network interface or pcap file and displays protocol messages in readable form — handshake details, cipher suites, certificate info, and decrypted application data when private keys are provided.

Basic Usage

Capture and decode SSL traffic on interface

sudo ssldump -i eth0

Read from pcap file

ssldump -r capture.pcap

Capture on specific port

sudo ssldump -i eth0 'port 443'

Decode with server private key

sudo ssldump -i eth0 -k server.key

Capturing SSL Traffic

Monitor all TLS traffic

sudo ssldump -i eth0 'tcp port 443'

Monitor SMTP over TLS

sudo ssldump -i eth0 'tcp port 465'

Monitor IMAPS

sudo ssldump -i eth0 'tcp port 993'
# Save encrypted traffic, decode later
tcpdump -i eth0 -w ssl.pcap 'port 443'
ssldump -r ssl.pcap -k server.key

Decryption with Keys

Provide server private key for decryption

ssldump -r capture.pcap -k server.key

With certificate

ssldump -r capture.pcap -k server.key -c server.crt

Output in hex

ssldump -r capture.pcap -k server.key -x

Print to stdout

ssldump -r capture.pcap -k server.key -p

Output Format

# Connection output:
# New TCP connection #1: 192.168.1.100(45123) <-> 93.184.216.34(443)
# 1 1  0.0005 (0.0005)  C>S SSLv3/TLS Handshake
#   ClientHello
#     Version 3.3 
#     cipher suites  ...
# 1 2  0.0543 (0.0538)  S>C  Handshake
#   Certificate
# 1 3  0.1234 (0.0691)  C>S  Handshake
#   ClientKeyExchange

# With decryption:
# 1 4  0.2345 (0.1111)  C>S  application_data
#   GET / HTTP/1.1
#   Host: example.com

Tips

  • Without the server private key, ssldump shows handshake details but not decrypted data
  • PFS cipher suites (ECDHE/DHE) prevent decryption even with the server key — use SSLKEYLOGFILE instead
  • For modern TLS 1.3 traffic, use Wireshark with SSLKEYLOGFILE environment variable
  • Useful for verifying TLS configuration (cipher suites, protocol versions, certificate)
  • Combine with the private key from a compromised server for full traffic decryption
Help / Man page
ssldump [options] [filter expression]

-i IFACE    Network interface
-r FILE     Read pcap file
-k FILE     Private key file for decryption
-c FILE     Certificate file
-x          Hex output
-p          Print data to stdout
-A          Print all fields
-d          Debug output

filter: BPF filter expression (e.g., 'port 443')

Vue d’ensemble

ssldump est un analyseur de protocole réseau SSL/TLS. Il capture le trafic SSL/TLS depuis une interface réseau ou un fichier pcap et affiche les messages de protocole sous forme lisible : détails du handshake, suites de chiffrement, informations de certificat, et données applicatives déchiffrées lorsque les clés privées sont fournies.

Utilisation de base

# Capturer et décoder le trafic SSL sur une interface
sudo ssldump -i eth0

# Lire depuis un fichier pcap
ssldump -r capture.pcap

# Capturer sur un port spécifique
sudo ssldump -i eth0 'port 443'

# Décoder avec la clé privée du serveur
sudo ssldump -i eth0 -k server.key

Capture du trafic SSL

# Surveiller tout le trafic TLS
sudo ssldump -i eth0 'tcp port 443'

# Surveiller SMTP sur TLS
sudo ssldump -i eth0 'tcp port 465'

# Surveiller IMAPS
sudo ssldump -i eth0 'tcp port 993'
# Sauvegarder le trafic chiffré, décoder plus tard
tcpdump -i eth0 -w ssl.pcap 'port 443'
ssldump -r ssl.pcap -k server.key

Déchiffrement avec les clés

# Fournir la clé privée du serveur pour le déchiffrement
ssldump -r capture.pcap -k server.key

# Avec certificat
ssldump -r capture.pcap -k server.key -c server.crt

# Sortie en hexadécimal
ssldump -r capture.pcap -k server.key -x

# Affichage vers stdout
ssldump -r capture.pcap -k server.key -p

Format de sortie

# Sortie de connexion :
# New TCP connection #1: 192.168.1.100(45123) <-> 93.184.216.34(443)
# 1 1  0.0005 (0.0005)  C>S SSLv3/TLS Handshake
#   ClientHello
#     Version 3.3 
#     cipher suites  ...
# 1 2  0.0543 (0.0538)  S>C  Handshake
#   Certificate
# 1 3  0.1234 (0.0691)  C>S  Handshake
#   ClientKeyExchange

# Avec déchiffrement :
# 1 4  0.2345 (0.1111)  C>S  application_data
#   GET / HTTP/1.1
#   Host: example.com

Conseils

  • Sans la clé privée du serveur, ssldump montre les détails du handshake mais pas les données déchiffrées
  • Les suites de chiffrement PFS (ECDHE/DHE) empêchent le déchiffrement même avec la clé serveur : utiliser SSLKEYLOGFILE à la place
  • Pour le trafic TLS 1.3 moderne, utiliser Wireshark avec la variable d’environnement SSLKEYLOGFILE
  • Utile pour vérifier la configuration TLS (suites de chiffrement, versions de protocole, certificat)
  • Combiner avec la clé privée d’un serveur compromis pour un déchiffrement complet du trafic
Aide / Page de manuel
ssldump [options] [filter expression]

-i IFACE    Network interface
-r FILE     Read pcap file
-k FILE     Private key file for decryption
-c FILE     Certificate file
-x          Hex output
-p          Print data to stdout
-A          Print all fields
-d          Debug output

filter: BPF filter expression (e.g., 'port 443')