Comment les clients SMTP déterminent-ils s'ils doivent utiliser SSL explicite ou implicite?

StackOverflow https://stackoverflow.com/questions/803899

  •  03-07-2019
  •  | 
  •  

Question

La plupart des clients de messagerie prenant en charge SSL / TLS exigent seulement que l'utilisateur indique si SSL doit être activé ou non. L’utilisateur ne doit rien savoir d’Explicit & amp; SSL implicite et leurs différences.

Comment le client de messagerie détermine-t-il le type de SSL à utiliser? Est-il basé sur les numéros de port par défaut? Est-ce qu'il essaie juste l'un puis l'autre?

Était-ce utile?

La solution

Un client de messagerie doit savoir si le protocole SSL implicite est utilisé lors de la connexion, car il est chargé d'initier l'établissement de la liaison SSL avec un message ClientHello . Comment cela détermine-t-il que cela dépend du client? Les numéros de port sont un bon conseil, mais il est également possible qu'une case à cocher soit activée dans certaines interfaces utilisateur, même lorsque le numéro de port standard (non protégé) est utilisé.

Il existe des numéros de port IANA enregistrés pour la messagerie sécurisée, mais certains fournisseurs de services Internet peuvent utiliser d'autres ports.

  • IMAP / SSL: 993
  • POP3 / SSL: 995

SMTP / SSL est souvent proposé sur le port 465, mais ceci n'est pas enregistré et est moins courant car la prise en charge de SSL explicite est largement prise en charge par les agents SMTP.

La prise en charge de SSL explicite peut être publiée par un serveur à l'aide d'une négociation spécifique au protocole. Par exemple, lorsqu'un client se connecte à un serveur SMTP et émet la commande EHLO, le serveur listera ses fonctionnalités, ce qui pourrait inclure la prise en charge de la commande STARTTLS.

Autres conseils

Le port 465 est très courant parmi les serveurs de messagerie commerciaux et est utilisé très souvent. Le plus souvent, il est utilisé pour SSL implicite. Lorsque vous établissez une connexion Telnet vers ce port, vous obtenez un délai d’expiration du fait que vous devez configurer la connexion SSL avant de communiquer avec le serveur de messagerie. Ainsi, un délai d'attente peut être le premier indice d'une connexion SSL implicite. Vous ne pouvez pas utiliser EHLO pour renvoyer des résultats, car aucune connexion autre qu'une connexion SSL n'est autorisée. ET NON, vous ne vous connectez pas simplement à un serveur SMTP utilisant un protocole SSL implicite. Il ne répondra pas et supprimera simplement la connexion. C'est ce qu'il est censé faire. Explicit SSL permettra d'abord la connexion, puis la configuration de SSL. ET oui, SSL implicite est souvent utilisé. L'inconvénient est que les normes RFC ne sont pas spécifiques quant à la manière dont elle est mise en œuvre, de sorte que différents développeurs la configurent de différentes manières, même si le SSL implicite est considéré par certains comme déprécié.

Je pense que la plupart des clients prenant en charge SMTP sur SSL commencent par une connexion non chiffrée et émettent un EHLO plutôt que HELO. Le premier comporte des réponses d'indicateur supplémentaires, dont l'une indique si le serveur prend en charge la commande STARTTLS ou non. Si tel est le cas, le client peut utiliser STARTTLS, puis utiliser SSL à partir de cet instant.

Exemple:

% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top