Introduzione
In questo documento viene descritto come configurare la preferenza per PFS nelle connessioni crittografate TLS su Email Security Appliance (ESA).
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza di SSL (Secure Sockets Layer)/TLS (Transport Layer Security).
Componenti usati
Le informazioni di questo documento si basano su AsyncOS for Email versione 9.6 e successive.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
ESA supporta PFS (Perfect Forward Secrecy). PFS significa che i dati vengono trasferiti su un canale che utilizza la crittografia simmetrica con segreti effimeri. Anche se la chiave privata su uno o su entrambi gli host è compromessa, non è possibile decrittografare una sessione registrata in precedenza.
Il segreto non viene trasferito tramite il canale. Al contrario, il segreto condiviso deriva dal problema Diffie-Hellman (DH). Il segreto viene archiviato solo nella memoria RAM (Random Access Memory) dell'host durante la sessione stabilita o il timeout di rigenerazione della chiave.
ESA supporta DH per lo scambio di chiavi.
Configurazione
IN ENTRATA - ESA agisce come server TLS
Queste suite di cifratura sono disponibili su ESA per il traffico SMTP (Simple Mail Transfer Protocol) in entrata e forniscono PFS. In questo esempio, la selezione di cifratura consente solo suite di cifratura considerate HIGH o MEDIUM, utilizza la tecnologia Ephemeral Diffie-Hellman (EDH) per lo scambio di chiavi e preferisce TLSv1.2. La sintassi di selezione della cifratura segue la sintassi OpenSSL.
Crittografi con inoltro segreto su 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
Il campo Kx (scambio di chiavi) indica che per derivare il segreto viene utilizzato DH.
L'ESA supporta questi cifrari con l'impostazione predefinita sslconfig (:ALL), ma non li preferisce. Per preferire i cifrari che offrono PFS, modificare sslconfig e aggiungere EDH o una combinazione come EDH+<nome cifratura o gruppo cifratura> alla selezione cifratura.
- Esaminare la configurazione predefinita.
ESA> sslconfig
sslconfig settings:
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
RC4-SHA
RC4-MD5
ALL
2. Configurare la nuova preferenza di cifratura in entrata.
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 come cifratura e MD5 come MAC sono considerati deboli e legacy. Evitare l'utilizzo con SSL/TLS, in particolare per volumi di dati superiori senza rigenerazione della chiave.
Impostazioni sslconfig consigliate per INBOUND
Nell'esempio viene mostrata una configurazione consigliata che consente solo le cifrature generalmente considerate sicure.
Una configurazione in entrata consigliata rimuove RC4 e MD5, oltre ad altre opzioni legacy e deboli quali Esporta (EXP), Bassa (LOW), IDEA, SEED, 3DES, certificati DSS, scambio di chiavi anonime (aNULL), chiavi precondivise (PSK) e SRP. Disabilita inoltre ECDH (Elliptic Curve Diffie-Hellman) per lo scambio di chiavi e ECDSA (Elliptic Curve Digital Signature Algorithm).
- Immettere la stringa di crittografia successiva in sslconfig.
EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:HIGH:MEDIUM:!ECDH:!ECDSA:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
La stringa immessa in sslconfig restituisce il seguente elenco di cifrature supportate per 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: L'ESA che opera come server TLS per il traffico in entrata non supporta attualmente l'ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) per lo scambio di chiavi o i certificati ECDSA.
IN USCITA - ESA agisce come client TLS
Per il traffico SMTP in uscita, ESA supporta i certificati ECDHE e ECDSA oltre alle funzionalità in entrata.
Nota: I certificati ECC (Elliptic Curve Cryptography) che utilizzano l'ECDSA non sono molto diffusi.
Quando viene recapitato un messaggio e-mail in uscita, ESA è il client TLS. Un certificato client TLS è facoltativo. Se il server TLS non richiede a ESA di fornire un certificato client ECDSA, ESA può continuare con una sessione protetta da ECDSA. Quando l'ESA come client TLS riceve una richiesta di certificato, fornisce il certificato RSA configurato per la direzione in uscita.
Attenzione: L'archivio certificati CA attendibili (elenco sistemi) preinstallato in ESA non include i certificati radice ECC (ECDSA). È possibile aggiungere manualmente i certificati radice ECC attendibili all'elenco personalizzato per rendere verificabile la catena di attendibilità ECC.
Per preferire i cifrari DHE/ECDHE che offrono PFS, modificare la selezione del cifrario sslconfig.
- Aggiunge la stringa alla selezione di cifratura corrente.
"EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM"
Impostazioni sslconfig consigliate per OUTBOUND
Nell'esempio viene mostrata una configurazione consigliata che consente solo le cifrature generalmente considerate sicure.
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 stringa immessa in sslconfig restituisce il seguente elenco di cifrature supportate per 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
Verifica
Per verificare che ESA preferisca le suite di cifratura PFS, attenersi alla seguente procedura.
- Eseguire sslconfig ed esaminare le stringhe di crittografia in entrata e in uscita configurate.
- Confermare che la selezione della cifratura includa EDH per la preferenza DHE e, per il traffico in uscita, le voci ECDH, ove applicabili.
- Esaminare l'elenco di cifratura risultante mostrato da sslconfig e verificare che le suite di cifratura DHE o ECDHE siano visualizzate prima delle suite di cifratura RSA Key Exchange.
- Verificare una connessione TLS e verificare che la suite di cifratura negoziata utilizzi DHE o ECDHE quando è supportata dal peer TLS remoto.
Risoluzione dei problemi
Utilizzare questi controlli se ESA non negozia una suite di cifratura PFS.
- Verificare che la stringa di cifratura sslconfig configurata includa EDH per il traffico in entrata e i valori EDH o ECDH richiesti per il traffico in uscita.
- Verificare che il server TLS remoto o il client TLS remoto supporti le suite di cifratura DHE o ECDHE. Se il peer non li supporta, ESA può negoziare una suite di cifratura non PFS ancora consentita dalla configurazione.
- Per le sessioni in uscita basate su ECDSA, confermare che il peer non richiede un certificato client ECDSA. ESA presenta il certificato RSA configurato per la direzione in uscita quando viene richiesto un certificato client.
- Per la convalida dell'attendibilità ECC in uscita, verificare che i certificati radice ECC richiesti siano presenti nell'elenco personalizzato se non sono inclusi nell'elenco di sistema.
Informazioni correlate