La tarea de verificar el certificado del servidor y de que coincida con el nombre de host del servidor es puramente la función del cliente, para cualquier protocolo que use SSL / TLS.
Como tal, el nombre de host en el certificado debe coincidir con el nombre al que el cliente está intentando acceder.
Cuando la conexión SSL / TLS se inicia por adelantado (SMTPS), el servidor no tiene forma de ver lo que dice el mensaje HELO antes de que se establezca la conexión, por lo que debe usar el que hizo la solicitud.
Cuando se usa SSL / TLS después STARTTLS
, el cliente todavía tiene la intención de hablar con el servidor con el que se configuró, por lo que eso es lo que debe verificar. De lo contrario, los ataques MITM serían posibles:
- C-> S: Hola, soy Alice, quiero hablar con Bob.
- S-> C: Hola, soy Chuck, aquí está mi certificado para Chuck.
- C-> S: Oh, sí, su certificado es válido para Chuck. Vamos a proceder
- ... Hay una falla allí, por supuesto, ya que Alice quería una comunicación segura con Bob.
En ambos casos, se debe usar la dirección MX.
Las reglas de coincidencia de nombres de host se han recopilado recientemente en todos los protocolos en RFC 6125 , pero pocos clientes lo implementan completamente (es más una RFC de mejores prácticas que un cambio completo, y aún es bastante reciente).
En su apéndice , resume lo que existía antes sobre SMTP (tomado de RFC 3207 y RFC 4954 ). En particular, " el cliente NO DEBE utilizar ninguna forma del nombre de host del servidor derivado de una fuente remota insegura (por ejemplo, búsqueda de DNS insegura) " (que se aplica al banner del servidor, por supuesto). Aparte de esto, las reglas heredadas SMTP eran un poco más relajado que en relación con HTTPS (nombres alternativos del sujeto debe en lugar de debe ser utilizado).
La forma moderna es definitivamente poner el nombre del host en una entrada DNS de Nombre alternativo del sujeto. El uso de comodines también se desaconseja .