概要
このドキュメントでは、Eメールセキュリティアプライアンス(ESA)上のTLS暗号化接続(TLS)でPFSのプリファレンスを設定する方法について説明します。
前提条件
要件
Secure Sockets Layer(SSL)/Transport Layer Security(TLS)に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、AsyncOS for Emailバージョン9.6以降に基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
ESAはPerfect Forward Secrecy(PFS)をサポートします。 PFSとは、一時的なシークレットを使用した対称暗号化を使用するチャネル経由でデータが転送されることを意味します。一方または両方のホストの秘密キーが侵害されても、以前に記録されたセッションは復号化できません。
秘密はチャネルを介して転送されません。代わりに、共有秘密はDiffie-Hellman(DH)問題によって取得されます。秘密は、確立されたセッションまたはキー再生成のタイムアウト時に、ホストのランダムアクセスメモリ(RAM)にのみ保存されます。
ESAは、キー交換のためにDHをサポートします。
設定
インバウンド:ESAがTLSサーバとして機能
これらの暗号スイートは、着信Simple Mail Transfer Protocol(SMTP)トラフィック用にESAで使用でき、PFSを提供します。この例では、暗号の選択ではHIGHまたはMEDIUMと見なされる暗号スイートだけが許可され、キー交換にEphemeral 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とMACとしてのMD5は、脆弱でレガシーであると見なされます。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証明書用のElliptic Curve Diffie-Hellman Ephemeral(ECDHE)をサポートしていません。
アウトバウンド:ESAはTLSクライアントとして機能
発信SMTPトラフィックについては、ESAは着信機能に加えてECDHEおよびECDSA証明書をサポートします。
注:ECDSAを使用する楕円曲線暗号(ECC)証明書は、広く採用されていません。
送信電子メールが配信されると、ESAがTLSクライアントになります。TLSクライアント証明書はオプションです。TLSサーバでESAがECDSAクライアント証明書を提供する必要がない場合、ESAはECDSAで保護されたセッションを続行できます。TLSクライアントとしてのESAに証明書を要求すると、発信方向に対して設定済みの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ルート証明書がSystem Listに含まれていない場合は、それらの証明書がCustom Listに含まれていることを確認します。
関連情報