Introducción
Este documento describe cómo configurar la preferencia para PFS en las conexiones cifradas de TLS en el dispositivo de seguridad de correo electrónico (ESA).
Prerequisites
Requirements
Cisco recomienda que tenga conocimientos de Secure Sockets Layer (SSL)/Transport Layer Security (TLS).
Componentes Utilizados
La información de este documento se basa en AsyncOS para Email versión 9.6 y posterior.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
ESA admite Perfect Forward Secrecy (PFS). PFS significa que los datos se transfieren a través de un canal que utiliza cifrado simétrico con secretos efímeros. Incluso si la clave privada en uno o ambos hosts está comprometida, una sesión previamente grabada no se puede descifrar.
El secreto no se transfiere a través del canal. En su lugar, el secreto compartido se deriva del problema Diffie-Hellman (DH). El secreto solo se almacena en la memoria de acceso aleatorio (RAM) del host durante la sesión establecida o el tiempo de espera de regeneración de claves.
El ESA admite DH para el intercambio de claves.
Configurar
ENTRANTE: ESA actúa como servidor TLS
Estos conjuntos de cifrado están disponibles en ESA para el tráfico entrante de protocolo simple de transferencia de correo (SMTP) y proporcionan PFS. En este ejemplo, la selección de cifrado sólo permite conjuntos de cifrado considerados HIGH o MEDIUM, utiliza Diffie-Hellman efímero (EDH) para el intercambio de claves y prefiere TLSv1.2. La sintaxis de selección de cifrado es posterior a la sintaxis de OpenSSL.
Cifrados con Confidencialidad directa en AsyncOS 9.6+:
"EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP"
List:
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-CAMELLIA256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-CAMELLIA128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA256
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
El campo Kx (intercambio de claves) muestra que DH se utiliza para derivar el secreto.
ESA soporta estos cifrados con la configuración predeterminada sslconfig (:ALL), pero no los prefiere. Para preferir los cipher que ofrecen PFS, modifique sslconfig y agregue EDH o una combinación como EDH+<cipher or cipher group name> a la selección de cipher.
- Revise la configuración predeterminada.
ESA> sslconfig
sslconfig settings:
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
RC4-SHA
RC4-MD5
ALL
2. Configure la nueva preferencia de cifrado entrante.
ESA> sslconfig
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
EDH+TLSv1.2
EDH+HIGH
EDH+MEDIUM
RC4-SHA
RC4-MD5
ALL
Nota: RC4 como cifrado y MD5 como MAC se consideran débiles y heredadas. Evite su uso con SSL/TLS, especialmente para volúmenes de datos más altos sin regeneración de claves.
Configuración de sslconfig recomendada para INBOUND
En este ejemplo se muestra una configuración recomendada que sólo permite cifrados considerados generalmente como fuertes y seguros.
Una configuración entrante recomendada elimina RC4 y MD5, así como otras opciones antiguas y débiles como Exportar (EXP), Bajo (LOW), IDEA, SEED, 3DES, certificados DSS, intercambio de claves anónimas (aNULL), claves previamente compartidas (PSK) y SRP. También desactiva el Diffie-Hellman de curva elíptica (ECDH) para el intercambio de claves y el algoritmo de firma digital de curva elíptica (ECDSA).
- Ingrese la siguiente cadena de cifrado en sslconfig.
EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:HIGH:MEDIUM:!ECDH:!ECDSA:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
La cadena ingresada en sslconfig da como resultado esta lista de cifrados soportados para INBOUND:
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-CAMELLIA256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-CAMELLIA128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA256
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(256) Mac=AEAD
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(128) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
CAMELLIA256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA256
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
CAMELLIA128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA256
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1
Nota: El ESA que actúa como servidor TLS para el tráfico entrante no admite actualmente el intercambio de claves o los certificados ECDSA Diffie-Hellman Ephemeral (ECDHE) de curva elíptica.
SALIENTE: ESA actúa como cliente TLS
Para el tráfico SMTP saliente, ESA admite certificados ECDHE y ECDSA, además de las capacidades entrantes.
Nota: Los certificados de criptografía de curva elíptica (ECC) que utilizan ECDSA no se han adoptado ampliamente.
Cuando se envía un correo electrónico saliente, ESA es el cliente TLS. Un certificado de cliente TLS es opcional. Si el servidor TLS no requiere que ESA proporcione un certificado de cliente ECDSA, ESA puede continuar con una sesión protegida por ECDSA. Cuando se solicita el certificado de ESA como cliente TLS, proporciona el certificado RSA configurado para la dirección saliente.
Precaución: El almacén de certificados de CA de confianza (lista del sistema) preinstalado en ESA no incluye certificados raíz ECC (ECDSA). Puede que necesite agregar manualmente certificados raíz ECC de confianza a la lista personalizada para que la cadena ECC de confianza sea verificable.
Para preferir los cifrados DHE/ECDHE que ofrecen PFS, modifique la selección del cifrado sslconfig.
- Agregue esta cadena a la selección de cifrado actual.
"EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM"
Valores de configuración de sslconfig recomendados para SALIENTES
En este ejemplo se muestra una configuración recomendada que sólo permite cifrados considerados generalmente como fuertes y seguros.
EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM:HIGH:MEDIUM:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
La cadena ingresada en sslconfig da como resultado esta lista de cifrados soportados para OUTBOUND:
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
ECDHE-RSA-AES256-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1
ECDHE-ECDSA-AES256-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1
ECDHE-RSA-AES128-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
ECDHE-ECDSA-AES128-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1
Verificación
Utilice estos pasos para verificar que ESA prefiere conjuntos de cifrado PFS.
- Ejecute sslconfig y revise las cadenas de cifrado entrantes y salientes configuradas.
- Confirme que la selección de cifrado incluya EDH para la preferencia DHE y, para el tráfico saliente, las entradas ECDH donde corresponda.
- Revise la lista de cifrado resultante que muestra sslconfig y confirme que las suites de cifrado DHE o ECDHE aparecen antes que las suites de cifrado de intercambio de claves RSA.
- Pruebe una conexión TLS y confirme que el conjunto de cifrado negociado utiliza DHE o ECDHE cuando el par TLS remoto lo admite.
Troubleshoot
Utilice estas comprobaciones si ESA no negocia un conjunto de cifrado PFS.
- Verifique que la cadena de cifrado sslconfig configurada incluya EDH para el tráfico entrante y los valores EDH o ECDH requeridos para el tráfico saliente.
- Confirme que el servidor TLS remoto o el cliente TLS sean compatibles con conjuntos de cifrado DHE o ECDHE. Si el peer no los soporta, ESA puede negociar un conjunto de cifrado no PFS que aún está permitido por la configuración.
- Para las sesiones salientes basadas en ECDSA, confirme que el par no requiere un certificado de cliente ECDSA. El ESA presenta el certificado RSA configurado para la dirección saliente cuando se solicita un certificado de cliente.
- Para la validación de confianza ECC saliente, confirme que los certificados raíz ECC requeridos están presentes en la lista personalizada si no están incluidos en la lista del sistema.
Información Relacionada