Il y a souvent beaucoup de confusion sur les différents termes: SSL, TLS, STARTTLS et STLS.

SSL et TLS

SSL et TLS sont des protocoles cryptographiques, qui permettent de chiffrer le canal de communication entre deux machines sur Internet (par exemple, un ordinateur client et un serveur). SSL signifie Secure Sockets Layer et la version actuelle est 3.0. TLS signifie Transport Layer Security et la version actuelle est 1.2. TLS est le successeur de SSL., Les termes SSL et TLS peuvent être utilisés de manière interchangeable, sauf si vous faites référence à une version de protocole spécifique.

La numérotation des versions est incohérente entre SSL et TLSs. Lorsque TLS a repris SSL comme nom de protocole préféré, il a commencé par un nouveau numéro de version. L’ordre des protocoles en termes de plus ancien à plus récent est: SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2.

STARTTLS et STLS

STARTTLS est une commande de protocole, qui est émise par un client de messagerie. Il indique que le client souhaite mettre à niveau une connexion existante non sécurisée vers une connexion sécurisée à l’aide du protocole cryptographique SSL/TLS., Le nom de la commande STARTTLS est utilisé par les protocoles SMTP et IMAP, tandis que le protocole POP3 utilise STLS comme nom de commande.

Bien qu’il y ait TLS dans le nom, STARTTLS ne signifie pas que TLS sera utilisé. SSL et TLS sont des protocoles acceptables pour sécuriser la communication.

Texte clair/Texte brut

Aucun protocole de sécurité n’est utilisé. Toutes les commandes, réponses et données sont transférées en texte brut.

client.Connect("mail.example.com");

Mode SSL implicite

Le mode SSL implicite signifie que vous vous connectez au port crypté SSL / TLS.,

client.ConnectSSL("mail.example.com");

Mode SSL explicite

Le mode SSL explicite signifie que vous vous connectez au port plaint text et sécurisez la connexion en émettant la commande STARTTLS (ou STLS) par la suite (vous sécurisez explicitement la connexion).

client.Connect("mail.example.com");client.StartTLS();

Sécurisation de la connexion

Que vous utilisiez le mode implicite (connexion à un port crypté SSL / TLS) ou explicite (utilisation de STARTTLS pour mettre à niveau une connexion existante), les deux parties négocieront quel protocole et quelle version utiliser., Cette négociation est basée sur la façon dont le client et le serveur ont été configurés et ce que chaque côté prend en charge.

Prise en charge de SSL/TLS

La prise en charge de SSL / TLS est pratiquement universelle, mais les versions prises en charge sont variables. À peu près tout prend en charge SSLv3. La plupart des machines prennent en charge TLSv1.0.

Problème de nommage TLS vs STARTTLS

Un facteur de complication important est que certains logiciels de messagerie utilisent incorrectement le terme TLS alors qu’ils auraient dû utiliser « STARTTLS” ou « SSL / TLS explicite”., Les anciennes versions de Thunderbird utilisaient  » TLS « pour signifier” appliquer l’utilisation de STARTTLS pour mettre à niveau la connexion, et échouer si STARTTLS n’est pas pris en charge « et” TLS, si disponible « pour signifier” utiliser STARTTLS pour mettre à niveau la connexion, si le serveur annonce le support, sinon utilisez simplement une connexion non sécurisée » (très problématique, comme nous

Numéros de port

Pour ajouter de la sécurité à certains protocoles existants (IMAP, POP3, SMTP), il a été décidé d’ajouter simplement le cryptage SSL / TLS en tant que couche sous le protocole existant., Cependant à distinguer que le logiciel devrait parler le SSL/TLS version chiffrée du protocole plutôt que le texte en clair, un numéro de port différent a été utilisé pour chaque protocole:

Protocole texte SSL
IMAP 143 993
POP3 110 995
SMTP 587 ou 25 465

Trop de ports?, Solution: Texte brut + STARTTLS

À un moment donné, il a été décidé qu’avoir 2 ports pour chaque protocole était inutile, et à la place, il est préférable d’avoir 1 port, qui commence en texte brut, mais les clients peuvent mettre à niveau la connexion vers une connexion cryptée SSL/TLS à l’aide de la commande STARTTLS (ou

Problèmes STARTTLS

Il y avait quelques problèmes avec cela. Il existe de nombreux logiciels qui utilisent les numéros de port alternatifs avec des connexions SSL/TLS pures., Le logiciel client peut avoir une très longue durée de vie, vous ne pouvez donc pas simplement désactiver les ports cryptés jusqu’à ce que tous les logiciels aient été mis à niveau.

Chaque protocole a reçu des mécanismes pour indiquer aux clients que le serveur prenait en charge la mise à niveau vers SSL / TLS (par exemple STARTTLS dans la réponse de CAPACITÉ d’IMAP) et qu’ils ne devaient pas tenter de se connecter sans effectuer la mise à niveau STARTTLS (LOGINDISABLED dans la réponse de capacité d’IMAP)., Cela a créé deux situations malheureuses:

  • Certains logiciels ont simplement ignoré l’annonce” login disabled until upgraded  » (LOGINDISABLED, STARTTLS) et ont simplement essayé de se connecter de toute façon, en envoyant le nom de connexion et le mot de passe de l’utilisateur sur un canal en texte clair. Le serveur a rejeté le login et le mot de passe, mais les détails avaient déjà été envoyés sur Internet en texte brut.
  • D’autres logiciels ont vu l’annonce « connexion désactivée jusqu’à la mise à niveau”, mais n’ont pas mis à niveau la connexion automatiquement, et ont donc signalé des erreurs de connexion à l’utilisateur, ce qui a causé une confusion sur ce qui n’allait pas.,
    • Ces deux problèmes ont entraîné des problèmes de compatibilité importants avec les clients existants, et la plupart des administrateurs système ont donc continué à utiliser simplement des connexions en texte brut sur un port et des connexions cryptées sur un numéro de port distinct.

      Désactiver le texte brut pour IMAP et POP3

      De nombreuses entreprises (par exemple Gmail, Outlook.com) désactivé plain IMAP (port 143) et plain POP3 (port 110), donc les gens doivent utiliser une connexion cryptée SSL/TLS – cela supprime le besoin d’avoir la commande STARTTLS complètement.

      SMTP STARTTLS stays

      La seule exception réelle à ce qui précède est SMTP., La plupart des logiciels de messagerie utilisaient SMTP sur le port 25 pour soumettre des messages au serveur de messagerie pour une transmission ultérieure vers la destination. Cependant, SMTP a été conçu à l’origine pour le transfert, pas la soumission. Donc encore un autre port (587) a été défini pour la soumission de message.

      Le port 587 ne nécessite pas de STARTTLS, cependant l’utilisation du port 587 est devenue populaire à peu près en même temps que la prise de conscience que le cryptage SSL / TLS des communications entre les clients et les serveurs était un problème important., Le résultat est que la plupart des systèmes, qui offrent la soumission de message au-dessus du port 587 exigent des clients d’utiliser STARTLS pour améliorer la connexion. Le login et le mot de passe pour s’authentifier sont également requis.

      Cette approche présente également un avantage supplémentaire. En éloignant les utilisateurs de l’utilisation du port 25 pour la soumission d’e-mails, les FAI peuvent bloquer les connexions au port 25 sortant des ordinateurs des utilisateurs, qui étaient une source importante de spam, en raison des ordinateurs des utilisateurs infectés par des virus d’envoi de spam.,

      lectures Supplémentaires

      à l’Aide de SSL/TLS avec IMAP
      à l’Aide de SSL/TLS avec SMTP
      à l’Aide de SSL/TLS avec POP3

      Tags: IMAP, POP3, SMTP, SSL, TLS