RFC 8446 で定義されている TLSv1.3 プロトコルのサポート
Citrix ADC VPXおよびCitrix ADC MPXアプライアンスでは、RFC 8446で指定されているTLSv1.3プロトコルがサポートされるようになりました。
メモ:
リリース13.0ビルド71.x以降では、TLS1.3ハードウェアアクセラレーションが次のプラットフォームでサポートされています。
- MPX 5900
- MPX/SDX 8900
- MPX/SDX 15000
- MPX/SDX 15000-50G
- MPX/SDX 26000
- MPX/SDX 26000-50S
- MPX/SDX 26000-100G
- TLSv1.3プロトコルのソフトウェアのみのサポートは、Citrix ADCFIPSアプライアンスを除く他のすべてのCitrixADCMPXおよびSDXアプライアンスで利用できます。
TLSv1.3 は、拡張プロファイルでのみサポートされます。拡張プロファイルを有効にするには、拡張プロファイルの有効化を参照してください。
TLS1.3 を使用するには、RFC 8446 仕様に準拠したクライアントを使用する必要があります。
サポートされている Citrix ADC の機能
次の SSL 機能がサポートされています。
- TLSv1.3 暗号スイート:
- TLS1.3-AES256-GCM-SHA384 (0x1302)
- TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)
- TLS1.3-AES128_GCM-SHA256 (0x1301)
- 一時的なDiffie-Hellman鍵交換のためのECC曲線:
- P_256
- P_384
- P_521
-
チケットベースのセッション再開が有効な場合の短縮ハンドシェイク
-
0-RTT初期アプリケーションデータ
-
クライアント証明書のOCSPおよびCRL検証をサポートする、オプションまたは必須の証明書ベースのクライアント認証
-
サーバー名拡張子:SNI を使用したサーバー証明書の選択
-
アプリケーションプロトコルネゴシエーション (ALPN) を使用して、アプリケーションプロトコルネゴシエーション (アプリケーションプロトコルネゴシエーション)。
-
OCSP ホチキス止め
-
TLSv1.3ハンドシェイクでは、ログメッセージとAppFlowレコードが生成されます。
-
nstrace
パケットキャプチャユーティリティによる TLS 1.3 トラフィックシークレットのオプションのロギング。 - RFC 8446 を実装する TLS クライアントとの相互運用性。たとえば、Mozilla Firefox, Google Chrome, OpenSSLなどです。
サポートされているブラウザー
以下のブラウザバージョンがサポートされ、Citrix ADC実装oF TLS 1.3プロトコルと互換性があります。
- Google Chrome - バージョン72.0.3626.121 (公式ビルド) (64ビット)
- Mozilla Firefox-65.0.2 (64ビット)
- Opera-バージョン:58.0.3135.79
構成
TLSv1.3 は、SSL プロファイルではデフォルトで無効になっています。
CLI を使用した SSL プロファイルの追加
コマンドプロンプトで、次のように入力します。
add ssl profile <tls13-profile-name>
例:
add ssl profile tls13profile
sh ssl profile tls13profile
1) Name: tls13profile (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: DISABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :1
Description: Predefined Cipher Alias
Done
GUIを使用してSSLプロファイルを追加します
- System > Profilesに移動します。[SSL プロファイル] を選択します。
- [追加] をクリックし、プロファイルの名前を指定します。
-
[プロトコル]で、[TLSv13]を選択します。
- [OK] をクリックします。
CLI を使用して SSL プロファイルを SSL 仮想サーバーにバインドする
コマンドプロンプトで、次のように入力します。
set ssl vserver <vServerName> -sslProfile <tls13-profile-name>
例:
set ssl vserver ssl-vs -sslProfile tls13profile
GUIを使用してSSLプロファイルをSSL仮想サーバーにバインドします
- Traffic Management > Load Balancing > Virtual Serversに移動してSSL仮想サーバーを選択します。
- Advanced SettingsでSSL Profileをクリックします。
- 以前に作成したTLSv1.3プロファイルを選択します。
- [OK] をクリックします。
- [完了] をクリックします。
TLSv1.3 プロトコル用の SSL プロファイルパラメータ
-
SSL プロファイルで TLS1.3 パラメータを有効または無効にします。
tls13: SSL プロファイルに対する TLSv1.3 プロトコルのサポート状態。
設定可能な値:ENABLED, DISABLED
デフォルト値: DISABLED
set ssl profile tls13profile -tls13 enable
set ssl profile tls13profile -tls13 disable
-
発行されたセッションチケットの数を設定します。
tls13SessionTicketsPerAuthContext: TLS1.3 がネゴシエートされ、チケットベースの再開が有効になっていて、(1) ハンドシェイクが完了するか、(2) ハンドシェイク後にクライアント認証が完了した場合に SSL 仮想サーバーが発行するチケット数。
この値を増やすと、クライアントは接続ごとに新しいチケットを使用して複数の並列接続を開くことができます。
再開が無効になっている場合、チケットは送信されません。
デフォルト値:1
最小値:1
最大値:10
set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1 set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
-
DH Key Exchangeを選択します。
dheKeyExchangeWithPsk
: TLS 1.3 セッション再開ハンドシェイク中に事前共有キーが受け入れられたときに、SSL 仮想サーバーで DHE キー交換が必要かどうかを指定します。DHE キー交換は、チケットキーが侵害された場合でも、 DHE キー交換の実行に必要な余分なリソースを犠牲にして、前方機密性を確保します。セッション・チケットが有効になっている場合、使用可能な設定は次のように機能します。
YES: クライアントがキー交換をサポートしているかどうかにかかわらず、事前共有キーが受け入れられる場合は、DHE キー交換が必要です。事前共有キーの提供時にクライアントが DHE キー交換をサポートしていない場合、ハンドシェイクは致命的なアラートで中断されます。
NO: DHE キー交換は、事前共有キーが受け入れられたときに、クライアントが要求した場合にのみ実行されます。
指定可能な値:YES、NO
デフォルト値:NO
set ssl profile tls13profile dheKeyExchangeWithPsk yes set ssl profile tls13profile dheKeyExchangeWithPsk no
-
0-RTT 早期データ受け入れを有効または無効にする
zeroRttEarlyData
: TLS 1.3 初期アプリケーションデータの状態。適用可能な設定は次のとおりです。ENABLED: ハンドシェイクが完了する前に早期アプリケーションデータが処理されることがあります。 DISABLED: 初期のアプリケーションデータは無視されます。
設定可能な値:ENABLED, DISABLED
デフォルト値: DISABLED
set ssl profile tls13profile -zeroRttEarlyData ENABLED set ssl profile tls13profile -zeroRttEarlyData DISABLED
デフォルトの暗号グループ
デフォルトの暗号グループには TLS1.3 暗号が含まれます。
sh cipher DEFAULT
1) Cipher Name: TLS1-AES-256-CBC-SHA Priority : 1
Description: SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 HexCode=0x0035
2) Cipher Name: TLS1-AES-128-CBC-SHA Priority : 2
Description: SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 HexCode=0x002f
…
…
27) Cipher Name: TLS1.3-AES256-GCM-SHA384 Priority : 27
Description: TLSv1.3 Kx=any Au=any Enc=AES-GCM(256) Mac=AEAD HexCode=0x1302
28) Cipher Name: TLS1.3_CHACHA20_POLY1305_SHA256 Priority : 28
Description: TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD HexCode=0x1303
29) Cipher Name: TLS1.3-AES128_GCM-SHA256 Priority : 29
Description: TLSv1.3 Kx=any Au=any Enc=AES-GCM(128) Mac=AEAD HexCode=0x1301
Done
制限事項
- Citrix ADC MPXプラットフォームでは、TLSv1.3処理は暗号化ハードウェアにオフロードされません。
- TLSv1.3 はバックエンドではサポートされていません。
- TLSv1.3は、Citrix Secure Web GatewayアプライアンスおよびCitrix ADC FIPSアプライアンスではサポートされません。
運用上の考慮事項
TLS 1.3ドラフトバージョンの互換性に関する注意:Citrix ADCアプライアンスは、以前のドラフトバージョンのプロトコルとは対照的に、TLS 1.3プロトコルのRFC 8446バリアントを実装しています。RFC 8446(または相互運用可能なドラフト番号-26、27、28)をサポートするTLS 1.3クライアントを使用して、Citrix ADCアプライアンスとのTLS 1.3ハンドシェイクを完了します。TLS 1.3 プロトコルの異なるドラフトバージョンを実装するクライアントとサーバーは、相互に動作しない場合があります。
セキュリティの制限
TLSv1.3サーバーのオペレーターは、RFC8446で概説されている下位互換性のために次のセキュリティ制限に留意する必要があります。NetScaler アプライアンスのデフォルト構成は、これらの制限に準拠しています。ただし、NetScaler アプライアンスでは、これらのルールが守られていることは強制されません。
-
RC4 暗号スイートのセキュリティは、RFC7465 で説明されているように不十分と見なされます。実装では、どのバージョンの TLS でも RC4 暗号スイートを提供したり、ネゴシエートしたりすることはできません。
-
古いバージョンの TLS では、低強度の暗号を使用することができました。強度が 112 ビット未満の暗号は、どのバージョンの TLS でも提供またはネゴシエートしてはなりません。
-
SSL 3.0[SSLv3]のセキュリティは、RFC7568 で説明されているように不十分と見なされ、ネゴシエートしてはいけません。TLSv1.3 が有効になっている場合は、SSLv3 を無効にします(SSLv3 はデフォルトで無効になっています)。
-
SSL 2.0[SSLv2]のセキュリティは、RFC6176 で説明されているように不十分と見なされ、ネゴシエートしてはいけません。TLS 1.3 が有効な場合は、SSLv2 を無効にします (SSLv2 はデフォルトで無効になっています)。
注:
TLS1.3 で実行されるプロトコルのトラブルシューティングについては、パケットトレースからの TLS1.3 トラフィックの復号化を参照してください。