Qu'est-ce que StartTLS ?

Publié: 2020-03-21

Vous êtes-vous déjà demandé comment les e-mails sont envoyés en toute sécurité d'un serveur à un autre ? Lorsque nous utilisons le protocole SMTP (Simple Mail Transfer Protocol) pour envoyer du courrier, nous nous appuyons sur une combinaison de StartTLS et de Transport Layer Security (TLS) ou Secure Sockets Layer (SSL) pour chiffrer notre courrier et l'aider à atterrir en toute sécurité dans la boîte de réception.

Mais qu'est-ce que StartTLS ?

StartTLS est une commande de protocole utilisée pour informer le serveur de messagerie que le client de messagerie souhaite passer d'une connexion non sécurisée à une connexion sécurisée à l'aide de TLS ou SSL. StartTLS est utilisé avec SMTP et IMAP, tandis que POP3 utilise la commande légèrement différente pour le chiffrement, STLS.

Nous allons creuser les différences entre TLS et SSL, le processus StartTLS et comment tester StartTLS pour votre programme.

Comment fonctionne StartTLS ?

TLS contre SSL

Même si "TLS" est dans son nom, StartTLS fonctionne avec les deux protocoles de cryptage, TLS et SSL.

Bien que StartTLS fonctionne avec les deux protocoles, nous vous recommandons d'utiliser TLS sur SSL. SSL est un protocole plus ancien et n'est pas aussi sécurisé que son successeur, TLS. SSLv2 et SSLv3 sont tous deux obsolètes.

Pour référence, voici une liste des protocoles SSL et TLS du plus ancien au plus récent :

SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3

Le client de messagerie et le serveur de messagerie doivent s'accorder sur la connexion à utiliser. Le client de messagerie peut prendre en charge TLSv1.3, mais le serveur de messagerie ne peut prendre en charge que jusqu'à TLSv1.2. Cela signifie que les deux parties devront utiliser TLSv1.2 pour procéder au chiffrement.

Pour encore plus d'informations sur TLS par rapport à SSL, consultez notre page de documentation .

Le processus StartTLS

SMTP démarre toujours sans chiffrement. La commande StartTLS démarre la négociation entre le serveur et le client. Voici un aperçu de la communication qui se produit entre le client de messagerie et le serveur de messagerie.

  1. Le processus commence par la poignée de main TCP (Transmission Control Protocol) pour aider le client de messagerie et le serveur à s'identifier.
  2. Le serveur identifie avec 220 Prêt que le client de messagerie peut poursuivre la communication.
  3. Le client envoie au serveur "EHLO" pour informer le serveur que le client souhaite utiliser le SMTP étendu (la version la plus avancée de SMTP qui vous permet d'inclure des images, des pièces jointes, etc.).
  4. Le client envoie "250-STARTTLS" au serveur de messagerie pour demander si StartTLS est accepté ou non.
  5. Si le serveur renvoie "go head", la connexion StartTLS peut être créée.
  6. Le client redémarre la connexion et le message électronique a été chiffré.

Voici une représentation visuelle du processus StartTLS.

Quel port devez-vous utiliser ?

Le port qui utilise le plus souvent StartTLS est le port 587. Il nécessite souvent que les clients de messagerie utilisent StartTLS pour envoyer du courrier. Les autres ports utilisés pour envoyer du courrier crypté sont 25, 465 et 2525. Le port 25 ayant été conçu pour le transfert de courrier et non pour la soumission, votre FAI peut bloquer le courrier envoyé via ce port. Le port 465 est le deuxième port le plus couramment utilisé pour StartTLS.

TLS opportuniste ou imposé

Il existe plusieurs façons de configurer votre programme de chiffrement des e-mails en utilisant soit Opportunistic TLS, soit Enforced TLS :

Le TLS opportuniste (ou TLS explicite) permet au client de messagerie de fournir le niveau de cryptage le plus élevé accepté par le serveur destinataire. Si le serveur destinataire n'accepte pas TLS, le client de messagerie négociera avec le serveur et acceptera de passer à une connexion non chiffrée. Le message sera ensuite envoyé sous forme de texte brut non crypté. Cette méthode est utile car vous pouvez utiliser le même port pour les messages chiffrés et en texte brut.

Le protocole TLS appliqué (ou TLS implicite) nécessite que le courrier soit envoyé via une connexion sécurisée. Si la connexion n'est pas cryptée, l'envoi du courrier sera bloqué. Cette méthode est beaucoup plus sécurisée que TLS opportuniste, mais entraîne la suppression d'un plus grand nombre de messages.

Les deux approches sont largement utilisées dans le monde du courrier électronique, alors réfléchissez à ce qui convient le mieux à votre programme. Si vous envoyez des e-mails contenant des informations personnelles sensibles, il peut être préférable d'utiliser le protocole TLS appliqué. D'un autre côté, si vous envoyez du matériel non sensible, comme du marketing ou des promotions, vous serez peut-être plus enclin à utiliser Opportunistic TLS.

Autres cas d'utilisation de TLS

TLS est fréquemment utilisé pour chiffrer diverses méthodes de communication en dehors du courrier électronique. Étant donné que TLS est un protocole relativement simple à plusieurs étapes, il permet de s'adapter facilement à une variété de types de communication. Cela inclut les navigateurs Web, les SMS et la voix sur IP. En fait, de nombreuses entreprises utilisent TLS pour chiffrer toutes les communications entre leurs serveurs Web et leurs navigateurs, même si la majorité des communications ne sont pas sensibles.

Pour plus d'informations sur la façon dont Twilio utilise TLS, consultez la page Sécurité de Twilio .

Pourquoi StartTLS est-il important ?

SMTP n'est pas sécurisé par défaut, ce qui signifie que si vous deviez envoyer un e-mail via SMTP sans StartTLS, l'e-mail pourrait être intercepté et facilement interprété. Cela est particulièrement inquiétant lors de l'envoi d'informations personnelles sensibles telles que des noms d'utilisateur, des mots de passe ou des informations bancaires.

Sans StartTLS, vos informations personnelles risquent d'être volées.

Lorsqu'un client de messagerie utilise StartTLS, il informe le serveur que le contenu doit être chiffré. De cette façon, si le courrier est intercepté, le contenu a été brouillé et est très difficile à déchiffrer. Le serveur de messagerie et le client de messagerie sont les seuls à détenir la clé pour décoder le message.

Désavantages

L'utilisation de StartTLS présente certains inconvénients. Les clients de messagerie sont sensibles aux attaques de l'homme du milieu car, lors de la connexion initiale entre le client de messagerie et le serveur, les adresses IP ne sont pas cryptées.

L'utilisation de StartTLS peut également ajouter une certaine latence à la connexion SMTP. Ce ne serait pas un délai suffisant pour rendre nécessaire l'envoi d'e-mails non cryptés, mais il est bon de le garder à l'esprit.

Comment tester StartTLS ?

Il est important de tester à l'avance pour s'assurer que le serveur est capable de traiter StartTLS. S'il n'est pas capable de traiter StartTLS, vous pourriez accidentellement envoyer une bonne quantité d'e-mails non cryptés et donc sensibles aux vecteurs d'attaque.

Voici un exemple de la façon dont vous testeriez StartTLS à partir du serveur SMTP de SendGrid.

Comment Twilio SendGrid utilise-t-il StartTLS ?

Twilio SendGrid prend en charge TLS v1.1 et supérieur. Les connexions non chiffrées et TLS sont acceptées sur les ports 25, 587 et 2525. Vous pouvez également vous connecter via SSL sur le port 465.

Nous suivons le TLS opportuniste et envoyons au niveau de cryptage le plus élevé que le serveur destinataire accepte. Nous proposons également le TLS imposé . Vous avez le choix d'exiger ou non que votre e-mail soit envoyé via une connexion cryptée. Si le serveur destinataire n'accepte pas les messages chiffrés, le message est supprimé et nous envoyons un événement de blocage.

Vous interagissez principalement avec StartTLS lors du lancement de la requête SMTP à Twilio SendGrid, demandant d'envoyer du courrier. Sinon, Twilio SendGrid gère la correspondance des certificats TLS, le reste du processus de chiffrement et tout problème pouvant survenir en cours de route.

Pour plus d'informations sur Twilio SendGrid et SMTP, rendez-vous sur notre article de documentation, Comment envoyer un e-mail SMTP .