Aller au contenu principal

TLS de la messagerie, de l'annuaire et des bases de données (STARTTLS)

S'applique à :
Messagerie : SMTP, IMAP, POP3Annuaire : LDAPBases : PostgreSQL, MySQL, MongoDB, Redis, CassandraFiles : Kafka, AMQPÉchange de clés post-quantique

Vue d'ensemble​

Une analyse TLS classique ne fonctionne que si le premier octet échangé est un handshake TLS, ce qui couvre HTTPS et peu d'autres choses. La messagerie, l'annuaire et la plupart des bases de données commencent par un court échange en clair avant de passer en TLS, et plusieurs bases et files de messages ne servent TLS sur leur propre port que si l'exploitant l'a activé.

Ce type d'analyse (nommé starttls dans l'API et la CLI) traite les deux cas. Une fois la connexion prête pour TLS, il exécute le même handshake de certificat et la même sonde d'échange de clés post-quantique qu'une analyse de domaine : les résultats sont directement comparables à ceux de vos endpoints HTTPS. Il n'envoie aucun identifiant et ne lit aucune donnée.

Protocoles pris en charge​

Passage en TLS dans la session​

Un échange en clair précède TLS. Le scanner effectue cet échange, puis confie la connexion aux sondes TLS.

ProtocolePort par défautPassage en TLS
SMTP (soumission)587EHLO, puis STARTTLS
IMAP143Commande STARTTLS
POP3110Commande STLS
LDAP389Opération étendue StartTLS (RFC 4511)
FTP21AUTH TLS
XMPP5222En-tête de flux, puis <starttls/>
PostgreSQL5432SSLRequest
MySQL / MariaDB3306Handshake du serveur, vérification de la capacité SSL, puis requête SSL

TLS sur le port du service​

Ces services parlent TLS dès le premier octet quand TLS est activé, et en clair sinon. Il n'y a rien à négocier : le handshake TLS est le test lui-même.

ServicePort par défautRemarque
MongoDB27017Même port avec ou sans TLS
Redis6379Même port avec ou sans TLS (Redis 6+)
Kafka9093Listener SSL dédié
AMQP (par ex. RabbitMQ)5671AMQPS ; 5672 est le port en clair
Cassandra9142Port TLS natif CQL
Ports TLS implicites de la messagerie et de l'annuaire

SMTPS (465), IMAPS (993), POP3S (995) et LDAPS (636) parlent TLS dès le premier octet. Analysez-les plutôt avec une analyse de domaine / TLS sur ce port. Si vous pointez cette analyse sur l'un de ces ports, le résultat vous le signale au lieu de déclarer l'hôte injoignable.

Ce qui est rapporté​

RésultatCe qu’il vous apprend
Échange de clés post-quantiqueLe groupe TLS 1.3 négocié par le serveur et s'il est post-quantique (par exemple l'hybride X25519MLKEM768), ainsi que les groupes post-quantiques et classiques acceptés. Un serveur uniquement classique est signalé pour que vous activiez un groupe hybride ; un serveur sans TLS 1.3 reçoit un « indéterminé » explicite plutôt qu'une supposition.
Configuration TLSVersion de TLS et suite de chiffrement négociées. TLS 1.2 est signalé car seul TLS 1.3 transporte un échange de clés hybride standardisé ; les versions antérieures à TLS 1.2 et les suites sans confidentialité persistante sont classées High.
Chaîne de certificatsLe certificat du serveur et sa chaîne, avec algorithmes et tailles de clés, inventoriés comme pour tout autre endpoint TLS.
Service en clairVoir ci-dessous : un service qui refuse TLS est un résultat Critical.

Le clair est un résultat, pas une erreur d'analyse​

SituationSévérité
Le serveur a répondu mais a refusé de passer en TLS (par exemple un serveur de messagerie qui ne propose pas STARTTLS)Critical : le trafic vers ce serveur circule en clair
MongoDB ou Redis : le port accepte TCP mais aucun handshake TLS n’aboutitCritical : ce même port transporte le trafic en clair
Kafka, AMQP ou Cassandra : le port TLS dédié accepte TCP mais aucun handshake TLS n’aboutitHigh : le listener TLS est défaillant ; vérifiez que les clients ne se rabattent pas sur le port en clair
Le serveur a accepté le passage en TLS mais le handshake a échouéInfo : TLS est proposé, mais son certificat n’a pas pu être inventorié
L'hôte n'a pas répondu, ou a répondu comme un autre protocoleInfo : vérifiez l'hôte, le port et les règles de pare-feu

Chaque résultat est accompagné de recommandations : activer TLS, refuser les connexions clientes non chiffrées, passer à TLS 1.3 et configurer un échange de clés hybride post-quantique. Le trafic des bases, des files et de la messagerie a une longue durée de vie et est souvent archivé, ce qui le place pleinement dans le périmètre « récolter maintenant, déchiffrer plus tard ».

Quand l'utiliser​

✉

Messagerie et annuaire

Répondre à : notre trafic de messagerie et LDAP est-il vulnérable au quantique, voire simplement chiffré ?

🗃

Bases et files de messages

Trouver les endpoints de bases de données et de files qui servent en clair ou sans échange de clés post-quantique

Comment lancer l'analyse​

Depuis le Cockpit​

1

Ouvrir Lancer une analyse

Dans le Cockpit, accédez à Lancer une analyse.

2

Choisir la source

À l'étape 1 (Source), choisissez Services de messagerie, d'annuaire et de données.

3

Configurer et lancer

Saisissez un ou plusieurs hôtes (séparés par des virgules), choisissez le protocole et, si besoin, modifiez le port. Lancez l'analyse et consultez les résultats.

L'analyse part du Cockpit : les cibles doivent donc être joignables depuis celui-ci. Pour des services sur un réseau interne, lancez l'analyse avec l'agent de scan à l'intérieur de ce réseau (voir ci-dessous).

Via l'API​

curl -X POST "$COCKPIT/api/pqc/scans" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"scan_type": "starttls",
"target": "mail1.example.com,mail2.example.com",
"options": { "starttls_protocol": "smtp" }
}'
OptionDescriptionDéfaut
starttls_protocolsmtp, imap, pop3, ldap, ftp, xmpp, postgres, mysql, mongodb, redis, cassandra, kafka ou amqpsmtp
portPort TCPPort par défaut du protocole (tableaux ci-dessus)
timeout_secondsDélai par étape10
starttls_no_pq_probeIgnorer la sonde d'échange de clés post-quantique. Ouvre beaucoup moins de connexions par hôte, mais le résultat n'a pas de verdict post-quantiquefalse

Avec l'agent de scan (CLI)​

# Serveurs de soumission de messagerie
dke-scanner-agent starttls --target mail1.example.com,mail2.example.com --protocol smtp

# Un serveur PostgreSQL sur un port non standard, résumé lisible
dke-scanner-agent starttls --target db.internal.example.com --protocol postgres --port 6432 --format summary

# Brokers Kafka, JSON écrit dans un fichier
dke-scanner-agent starttls --target kafka1,kafka2,kafka3 --protocol kafka -o kafka-tls.json

Toutes les options figurent dans la référence CLI.

Depuis un assistant IA (MCP)​

Le serveur MCP du Cockpit expose un outil scan_starttls avec les mêmes paramètres (target, protocol, port, skip_pq_probe), jusqu'à 64 hôtes par appel. Voir MCP.

Astuce

Beaucoup d'hôtes à analyser ? Combinez cette analyse avec une analyse de domaine de vos endpoints HTTPS : les verdicts d'échange de clés utilisent la même sonde, les résultats s'alignent donc dans le même inventaire et le même Quantum Risk Score.