TLS est un protocole de chiffrement permettant à 2 partenaires de mener une discussion sans que celle-ci soit lue par un tiers, et certifiant l'identité d'au moins un des 2 partenaires à l'autre partenaire.
Il est utilisé pour sécuriser d'autres protocoles, répondant à des besoins spécifiques (HTTP pour le web, SMTP et IMAP pour l'envoi d'emails, FTP pour le transfert de fichiers, T-SQL pour l'interrogation de bases de données SQL server).
TLS et le protocole chiffré par TLS peuvent s'articuler de 2 façons :
- on commence par établir la connexion chiffrée avec TLS puis on démarre le second protocole, entièrement chiffré (mode "implicite")
- on commence le protocole d'échange, puis les participants signalent leur souhait de chiffrer la communication, l'échange TLS se met en place puis le premier protocole reprend son cours, désormais protégé par le chiffrement (mode "explicite").
Le premier mode est considéré comme plus sûr mais, pour des raisons de rétrocompatibilité, de nombreux protocoles utilisent encore le mode explicite.
Cette étude fait le point sur de nombreuses failles logicielles permises par le mode explicite de SMTP ("starttls"), le protocole d'envoi de mails. Quasiment tous les clients mails sachant utiliser smtps (TLS implicite pour SMTP), il est recommandé d'autoriser seulement ce mode dans les clients SMTP.
Ayant identifié récemment quelques fragilités dans l'usage de TLS avec SQL Server, je ne serai pas surpris si certaines de ces failles trouvaient à s'appliquer pour le T-SQL :-) .