簡介
本文檔介紹如何在郵件安全裝置(ESA)上的TLS加密連線中配置PFS首選項。
必要條件
需求
思科建議您瞭解安全套接字層(SSL)/傳輸層安全性(TLS)。
採用元件
本文檔中的資訊基於AsyncOS for Email 9.6及更高版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
ESA支援完全向前保密(PFS)。PFS意味著資料將通過使用具有臨時機密的對稱加密的通道傳輸。即使一台或兩台主機上的私鑰已被破壞,先前記錄的會話仍無法解密。
金鑰不會通過通道傳輸。而是由於Diffie-hellman(DH)問題派生出共用金鑰。在建立的作業階段或金鑰重新產生逾時,密碼僅儲存在主機隨機存取記憶體(RAM)中。
ESA支援DH進行金鑰交換。
設定
入站 — ESA充當TLS伺服器
ESA上提供適用於傳入簡易郵件傳輸通訊協定(SMTP)流量的這些密碼套件,並提供PFS。在本例中,密碼選擇僅允許被視為HIGH或MEDIUM的密碼套件,使用短暫Diffie-Hellman(EDH)進行金鑰交換,並優先使用TLSv1.2。密碼選擇語法在OpenSSL語法之後。
在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
Kx(金鑰交換)欄位顯示DH用於派生金鑰。
ESA使用預設sslconfig設定(:ALL)支援這些密碼,但並不優先使用它們。若要優先使用提供PFS的密碼,請修改sslconfig,並將EDH或組合(例如EDH+<cipher or cipher group name>)新增到密碼選擇中。
- 檢查預設配置。
ESA> sslconfig
sslconfig settings:
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
RC4-SHA
RC4-MD5
ALL
2.配置新的入站密碼首選項。
ESA> sslconfig
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
EDH+TLSv1.2
EDH+HIGH
EDH+MEDIUM
RC4-SHA
RC4-MD5
ALL
附註:RC4作為密碼而MD5作為MAC則被視為弱和傳統。避免將其與SSL/TLS一起使用,尤其是對於沒有金鑰再生的更高資料卷。
建議的INBOUND的sslconfig設定
此範例顯示僅允許一般視為強而安全的密碼的建議設定。
建議的入站配置可刪除RC4和MD5,以及其他傳統和弱選項,如匯出(EXP)、低(LOW)、IDEA、SEED、3DES、DSS證書、匿名金鑰交換(aNULL)、預共用金鑰(PSK)和SRP。它還對金鑰交換禁用橢圓曲線Diffie-hellman(ECDH)和橢圓曲線數位簽章演算法(ECDSA)。
- 在sslconfig中輸入下一個密碼字串。
EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:HIGH:MEDIUM:!ECDH:!ECDSA:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
在sslconfig中輸入的字串導致此受支援的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
附註:作為入站流量的TLS伺服器的ESA當前不支援金鑰交換或ECDSA證書的橢圓曲線Diffie-Hellman短程(ECDHE)。
出站 — ESA充當TLS客戶端
對於出站SMTP流量,除了入站功能之外,ESA還支援ECDHE和ECDSA證書。
附註:使用ECDSA的橢圓曲線加密(ECC)證書並未被廣泛採用。
傳送出站電子郵件時,ESA是TLS客戶端。TLS客戶端證書是可選的。如果TLS伺服器不要求ESA提供ECDSA客戶端證書,則ESA可以繼續進行ECDSA安全會話。當ESA作為TLS客戶端請求其證書時,它提供已配置的RSA證書用於出站方向。
注意:ESA上預安裝的受信任CA證書儲存(系統清單)不包括ECC(ECDSA)根證書。您需要手動將受信任的ECC根證書新增到自定義清單,以使ECC信任鏈可驗證。
要優先使用提供PFS的DHE/ECDHE密碼,請修改sslconfig密碼選擇。
- 將此字串新增到當前的密碼選擇中。
"EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM"
建議的OUTBOUND的sslconfig設定
此範例顯示僅允許一般視為強而安全的密碼的建議設定。
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
在sslconfig中輸入的字串導致此受支援的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
驗證
使用以下步驟驗證ESA是否優先使用PFS密碼套件。
- 運行sslconfig並檢查已配置的入站和出站密碼字串。
- 確認密碼選擇包括DHE首選項的EDH,以及出站流量的ECDH條目(如果適用)。
- 檢視sslconfig顯示的結果密碼清單,並確認DHE或ECDHE密碼套件出現在RSA金鑰交換密碼套件之前。
- 測試TLS連線並確認當遠端TLS對等體支援協商的密碼套件使用DHE或ECDHE。
疑難排解
如果ESA不協商PFS密碼套件,則使用這些檢查。
- 驗證已設定的sslconfig密碼字串是否包含傳入流量的EDH以及傳出流量的EDH或ECDH值。
- 確認遠端TLS伺服器或TLS客戶端支援DHE或ECDHE密碼套件。如果對等體不支援它們,ESA可以協商配置仍允許的非PFS密碼套件。
- 對於基於出站ECDSA的會話,請確認對等體不需要ECDSA客戶端證書。當請求客戶端證書時,ESA為出站方向提供配置的RSA證書。
- 對於出站ECC信任驗證,如果所需的ECC根證書未包含在系統清單中,請確認其存在於自定義清單中。
相關資訊