Introdução
Este documento descreve como configurar a preferência para PFS em conexões criptografadas TLS no Email Security Appliance (ESA).
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento de Secure Sockets Layer (SSL)/Transport Layer Security (TLS).
Componentes Utilizados
As informações neste documento são baseadas no AsyncOS para e-mail versão 9.6 e superior.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O ESA suporta PFS (Perfect Forward Secrecy). O PFS significa que os dados são transferidos por um canal que usa criptografia simétrica com segredos efêmeros. Mesmo que a chave privada em um ou ambos os hosts esteja comprometida, uma sessão gravada anteriormente não pode ser descriptografada.
O segredo não é transferido através do canal. Em vez disso, o segredo compartilhado é derivado com o problema Diffie-Hellman (DH). O segredo é armazenado apenas na RAM (Memória de Acesso Aleatório) do host durante a sessão estabelecida ou o tempo limite de regeneração de chave.
O ESA suporta DH para troca de chaves.
Configurar
ENTRADA - ESA atua como servidor TLS
Esses conjuntos de cifras estão disponíveis no ESA para tráfego SMTP de entrada e fornecem PFS. Neste exemplo, a seleção de cifra permite apenas conjuntos de cifras considerados HIGH ou MEDIUM, usa Ephemeral Diffie-Hellman (EDH) para troca de chaves e prefere TLSv1.2. A sintaxe de seleção de cifra é depois da sintaxe OpenSSL.
Cifras com sigilo de encaminhamento no 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
O campo Kx (troca de chaves) mostra que DH é usado para derivar o segredo.
O ESA suporta essas cifras com a configuração padrão sslconfig (:ALL), mas não as prefere. Para preferir cifras que ofereçam PFS, modifique sslconfig e adicione EDH ou uma combinação como EDH+<nome da cifra ou do grupo de cifras> à seleção de cifra.
- Revise a configuração padrão.
ESA> sslconfig
sslconfig settings:
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
RC4-SHA
RC4-MD5
ALL
2. Configure a nova preferência de codificação de entrada.
ESA> sslconfig
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
EDH+TLSv1.2
EDH+HIGH
EDH+MEDIUM
RC4-SHA
RC4-MD5
ALL
Note: RC4 como uma cifra e MD5 como um MAC são considerados fracos e legados. Evite seu uso com SSL/TLS, especialmente para volumes de dados mais altos sem regeneração de chave.
Configurações sslconfig recomendadas para ENTRADA
Este exemplo mostra uma configuração recomendada que permite apenas cifras geralmente consideradas fortes e seguras.
Uma configuração de entrada recomendada remove RC4 e MD5, bem como outras opções legadas e fracas, como Exportar (EXP), Baixo (LOW), IDEA, SEED, 3DES, certificados DSS, troca de chave anônima (aNULL), chaves pré-compartilhadas (PSK) e SRP. Ele também desabilita o ECDH (Elliptic Curve Diffie-Hellman) para troca de chave e ECDSA (Elliptic Curve Digital Signature Algorithm).
- Digite a próxima cifra em sslconfig.
EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:HIGH:MEDIUM:!ECDH:!ECDSA:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
A sequência inserida em sslconfig resulta nesta lista de cifras suportadas 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
Note: O ESA que atua como um servidor TLS para o tráfego de entrada não suporta atualmente o ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) para troca de chaves ou certificados ECDSA.
SAÍDA - ESA atua como cliente TLS
Para o tráfego SMTP de saída, o ESA suporta certificados ECDHE e ECDSA, além das capacidades de entrada.
Note: Os certificados de Criptografia de Curva Elíptica (ECC) que usam ECDSA não são amplamente adotados.
Quando um e-mail de saída é entregue, o ESA é o cliente TLS. Um certificado de cliente TLS é opcional. Se o servidor TLS não exigir que o ESA forneça um certificado de cliente ECDSA, o ESA poderá continuar com uma sessão protegida por ECDSA. Quando o ESA, como cliente TLS, é solicitado a fornecer seu certificado, ele fornece o certificado RSA configurado para a direção de saída.
Caution: O Trusted CA Certificate Store (System List) pré-instalado no ESA não inclui certificados raiz ECC (ECDSA). Você pode precisar adicionar manualmente certificados raiz ECC confiáveis à lista personalizada para tornar a cadeia ECC de confiança verificável.
Para preferir cifras DHE/ECDHE que ofereçam PFS, modifique a seleção de cifra sslconfig.
- Adicionar esta string à seleção de cifra atual.
"EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM"
Configurações sslconfig recomendadas para SAÍDA
Este exemplo mostra uma configuração recomendada que permite apenas cifras geralmente consideradas fortes e seguras.
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
A sequência de caracteres inserida em sslconfig resulta nesta lista de cifras suportadas para SAÍDA:
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
Verificar
Use estas etapas para verificar se o ESA prefere pacotes de cifras PFS.
- Execute sslconfig e revise as cadeias de caracteres de cifra de entrada e saída configuradas.
- Confirme se a seleção de codificação inclui EDH para a preferência DHE e, para o tráfego de saída, entradas ECDH, quando aplicável.
- Revise a lista de cifras resultante mostrada por sslconfig e confirme se os conjuntos de cifras DHE ou ECDHE aparecem antes dos conjuntos de cifras de troca de chaves RSA.
- Teste uma conexão TLS e confirme se o conjunto de cifras negociadas usa DHE ou ECDHE quando o peer TLS remoto a suporta.
Troubleshooting
Use essas verificações se o ESA não negociar um conjunto de cifras PFS.
- Verifique se a string de cifra sslconfig configurada inclui EDH para o tráfego de entrada e os valores EDH ou ECDH necessários para o tráfego de saída.
- Confirme se o servidor TLS remoto ou o cliente TLS suporta conjuntos de cifras DHE ou ECDHE. Se o peer não os suportar, o ESA pode negociar um conjunto de cifras não-PFS que ainda é permitido pela configuração.
- Para sessões de saída baseadas no ECDSA, confirme se o peer não requer um certificado de cliente ECDSA. O ESA apresenta o certificado RSA configurado para a direção de saída quando um certificado de cliente é solicitado.
- Para validação de confiança de ECC de saída, confirme se os certificados raiz de ECC necessários estão presentes na lista personalizada se não estiverem incluídos na lista do sistema.
Informações Relacionadas