El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
En este documento, se describe el proceso de verificación de la identidad del servidor de seguridad de la capa de transporte (TLS) para el dispositivo de seguridad Cisco Email Security Appliance (ESA)
El proceso de verificación de TLS es básicamente un proceso de validación de dos etapas:
Esto implica la verificación de:
Este es un proceso de validación de la identidad presentada por el servidor (contenida en el certificado de clave pública X.509) frente a la identidad de referencia del servidor.
Sigamos con la terminología del nombre de identidad descrita en RFC 6125.
Nota: la identidad presentada es un identificador presentado por un certificado de clave pública X.509 del servidor que puede incluir más de un identificador presentado de diferentes tipos. En el caso del servicio SMTP, se incluye como una extensión subjectAltName de tipo dNSName o como CN (Common Name) derivado del campo subject.
Nota: la identidad de referencia es un identificador construido a partir de un nombre de dominio DNS completo que un cliente espera que un servicio de aplicación presente en el certificado.
El proceso de verificación es principalmente importante para un cliente TLS, ya que en general un cliente inicia una sesión TLS y un cliente necesita autenticar la comunicación. Para lograr esto, un cliente necesita verificar si la identidad presentada coincide con la identidad de referencia. La parte importante es comprender que la seguridad del proceso de verificación de TLS para la entrega de correo se basa casi completamente en el cliente TLS.
El primer paso en la validación de la identidad del servidor es determinar la identidad de referencia por el cliente TLS. Depende de la aplicación qué lista de identificadores de referencia el cliente TLS considere aceptable. Asimismo, debe elaborarse una lista de identificadores de referencia aceptables independientemente de los identificadores presentados por el servicio. [rfs6125#6.2.1]
La identidad de referencia debe ser un nombre de dominio DNS completo y se puede analizar desde cualquier entrada (que es aceptable para un cliente y se considera segura). La identidad de referencia debe ser un nombre de host DNS al que el cliente está intentando conectarse.
El nombre de dominio de correo electrónico del destinatario es una identidad de referencia que expresa directamente el usuario, con la intención de enviar un mensaje a un usuario determinado en un dominio determinado y que también cumple el requisito de ser un FQDN al que el usuario está intentando conectarse. Es coherente sólo en el caso de un servidor SMTP autoalojado en el que el mismo propietario es el propietario y el servidor SMTP es el propietario y no aloja demasiados dominios. Como cada dominio debe ser enumerado en el certificado (como uno de subjectAltName: dNSName valores). Desde el punto de vista de la implementación, la mayoría de las autoridades de certificados (CA) limitan el número de nombres de dominio a tan solo 25 entradas (hasta 100). Esto no se acepta en el caso del entorno alojado; pensemos en los proveedores de servicios de correo electrónico (ESP), donde los servidores SMTP de destino alojan miles y más de dominios. Esto simplemente no se escala.
La identidad de referencia explícitamente configurada parece ser la respuesta, pero esto impone algunas limitaciones, ya que es necesario asociar manualmente una identidad de referencia al dominio de origen para cada dominio de destino o "obtener los datos de un servicio de asignación de dominios de terceros en el que un usuario humano ha puesto explícitamente confianza y con el que el cliente se comunica a través de una conexión o asociación que proporciona autenticación mutua y comprobación de integridad". [RFC6125#6.2.1]
Conceptualmente, esto se puede pensar en una "consulta segura MX" única en el momento de la configuración, con el resultado almacenado en caché permanentemente en el MTA para protegerse contra cualquier riesgo de DNS mientras está en estado de ejecución. [2]
Esto proporciona una autenticación más segura solo con dominios "asociados", pero para dominios genéricos que no se han asignado, esto no pasa el examen y tampoco es inmune a los cambios de configuración en el lado del dominio de destino (como los cambios de nombre de host o dirección IP).
El siguiente paso en el proceso es determinar una identidad presentada. La identidad presentada es proporcionada por un certificado de clave pública X.509 del servidor, como extensión subjectAltName de tipo dNSName o como Common Name (CN) que se encuentra en el campo subject. Donde es perfectamente aceptable que el campo de asunto esté vacío, siempre y cuando el certificado contenga una extensión subjectAltName que incluya al menos una entrada subjectAltName.
Aunque el uso de Common Name todavía está en la práctica, se considera obsoleto y la recomendación actual es utilizar entradas subjectAltName. La compatibilidad con la identidad de Nombre común se mantiene para la compatibilidad con versiones anteriores. En tal caso, se debe utilizar primero un dNSName de subjectAltName y sólo cuando esté vacío, se activará Common Name (Nombre común).
Nota: el nombre común no tiene establecimiento inflexible de tipos porque un nombre común puede contener una cadena descriptiva para el servicio, en lugar de una cadena cuya forma coincida con la de un nombre de dominio DNS completo
Al final, cuando se han determinado ambos tipos de identidades, el cliente TLS necesita comparar cada uno de sus identificadores de referencia con los identificadores presentados con el fin de encontrar una coincidencia.
El ESA permite habilitar la verificación de certificados y TLS en la entrega a dominios específicos (mediante la página Controles de destino o el comando destconfig CLI). Cuando se requiere la verificación del certificado TLS, puede elegir una de las dos opciones de verificación desde la versión 8.0.2 de AsyncOS. El resultado esperado de la verificación puede variar en función de la opción configurada. A partir de 6 configuraciones diferentes para TLS, disponibles bajo control de destino, hay dos importantes que son responsables de la verificación del certificado:
CLI: destconfig
Do you want to use TLS support?
1. No
2. Preferred
3. Required
4. Preferred - Verify
5. Required - Verify
6. Required - Verify Hosted Domains
[6]>
Un proceso de verificación de TLS para la opción (4) Preferido - Verificar es idéntico a (5) Requerido - Verificar, pero la acción tomada basada en los resultados difiere según se presenta en la tabla a continuación. Los resultados de la opción (6) Requerido - Verificar dominios alojados es idéntico a (5) Requerido - Verificar pero un flujo de verificación de TLS es muy diferente.
Configuración de TLS | Significado |
4. Preferido (Verificar) | TLS se negocia desde el dispositivo Email Security a los MTA para el dominio. El dispositivo intenta verificar el certificado de dominios. Existen tres resultados posibles:
|
5. Obligatorio (verificar) |
TLS se negocia desde el dispositivo Email Security a los MTA para el dominio. Se requiere la verificación del certificado de dominios. Existen tres resultados posibles:
|
La diferencia entre las opciones TLS requerido - Verificar y TLS requerido - Verificar dominio alojado se encuentra en el proceso de verificación de identidad. La forma en que se procesa la identidad presentada y el tipo de identificadores de referencia que se permite utilizar marcan la diferencia en cuanto al resultado final. La finalidad de la descripción que aparece a continuación, así como de todo el documento, es acercar este proceso al usuario final. Como la comprensión incorrecta o poco clara de este tema puede tener un impacto en la seguridad de la red del usuario.
La identidad presentada se deriva primero de subjectAltName - extensión dNSName y si no hay coincidencia o la extensión subjectAltName no existe, se marca CN-ID - Common Name from subject.
La lista de identidad de referencia (REF-ID) se construye a partir de un dominio de destinatario o dominio de destinatario y un nombre de host derivado de una consulta DNS PTR ejecutada en la dirección IP a la que está conectado el cliente. Nota: En este caso concreto, se comparan diferentes identidades de referencia con diferentes comprobaciones de identidad presentadas.
~= representa una coincidencia exacta o comodín
La identidad presentada (dNSName o CN-ID) se compara con las identidades de referencia aceptadas hasta que coincide y en el orden en que se enumeran a continuación.
Para resumir, con la opción 'TLS requerido - Verificar' no hay un nombre de host MX comparado con dNSName o CN, un DNS PTR RR se verifica solamente para CN y se compara solamente si se conserva la consistencia DNS A(PTR(IP)) = IP, se realizan pruebas exactas y de comodines para dNSName y CN.
La identidad presentada se deriva primero de la extensión subjectAltName de tipo dNSName. Si no hay ninguna coincidencia entre el nombre dNSN y una de las identidades de referencia aceptadas (REF-ID), la verificación no se realiza con independencia de si existe CN en el campo de asunto y podría pasar otra verificación de identidad. El CN derivado del campo de asunto se valida sólo cuando el certificado no contiene ninguna extensión subjectAltName de tipo dNSName.
Recuerde que la identidad presentada (dNSName o CN-ID) se compara con las identidades de referencia aceptadas hasta que coincide y en el orden en que se enumeran a continuación.
CN se valida sólo cuando dNSName no existe en el certificado. El CN-ID se compara con la siguiente lista de identidades de referencia aceptadas.
Cuando se configura la ruta SMTP y la identidad presentada no coincide con el dominio del destinatario de correo electrónico, se comparan todos los nombres de rutas FQDN y, si no coinciden, no se realizan más comprobaciones. Con rutas SMTP explícitamente configuradas, no se considera que ningún nombre de host MX se compare con una identidad presentada. La excepción aquí hace una ruta SMTP que fue establecida como una dirección IP.
Las siguientes reglas se aplican en el caso de rutas SMTP explícitamente configuradas:
Cuando hablamos de la opción TLS Required Verify para dominios alojados, la forma en que ESA se ha conectado con un servidor de destino es importante para el proceso de verificación de TLS debido a las rutas SMTP explícitamente configuradas que proporcionan una identidad de referencia adicional que se debe considerar en el proceso.
~= representa una coincidencia exacta o comodín
Tomemos un ejemplo de la vida real, pero para el dominio del destinatario: example.com. A continuación, traté de describir todos los pasos necesarios para verificar manualmente la identidad del servidor.
example.com -> IN MX mx01.subd.emailhosted.not.
example.com -> IN MX mx02.subd.emailhosted.not.
mx01.subd.emailhosted.not. -> IN A 192.0.2.1
mx02.subd.emailhosted.not. -> IN A 192.0.2.2
192.0.2.1 -> IN PTR mx0a.emailhosted.not.
192.0.2.2 -> IN PTR mx0b.emailhosted.not.
mx0a.emailhosted.not. -> IN A 192.0.2.1
mx0b.emailhosted.not. -> IN A 192.0.2.2
Nota: los nombres de host MX y los nombres revDNS no coinciden en este caso
$ echo QUIT |openssl s_client -connect mx0a.emailhosted.not:25 -starttls smtp 2>/dev/null| openssl x509 -text | grep -iEo 'DNS:.*|CN=.*'
CN=thawte SHA256 SSL CA
CN=*.emailhosted.not
DNS:*.emailhosted.not, DNS:emailhosted.not
echo QUIT |openssl s_client -connect mx0b.emailhosted.not:25 -starttls smtp 2>/dev/null| openssl x509 -text | grep -iEo 'DNS:.*|CN=.*'
CN=thawte SHA256 SSL CA
CN=*.emailhosted.not
DNS:*.emailhosted.not, DNS:emailhosted.not
mx01.subd.emailhosted.not. -> IN A 192.0.2.1
PTR(IP): 192.0.2.1 -> IN PTR mx0a.emailhosted.not.
A(PTR(IP)): mx0a.emailhosted.not. -> IN A 192.0.2.1
El nombre de dominio PTR valida la identidad y, como el certificado es un certificado firmado por la CA, valida todo el certificado y se establece la sesión TLS.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
16-Apr-2018 |
Versión inicial |