RFC 8446で定義されているTLSv1.3プロトコルのサポート
NetScaler VPXおよびNetScaler ADC MPXアプライアンスは、RFC 8446で指定されているTLSv1.3プロトコルをサポートするようになりました。
注:
リリース13.0ビルド71.x以降では、TLS1.3ハードウェアアクセラレーションが次のプラットフォームでサポートされています。
- MPX 5900
- MPX/SDX 8900
- MPX/SDX 9100
- MPX/SDX 15000
- MPX/SDX 15000-50G
- MPX/SDX 16000
- MPX/SDX 26000
- MPX/SDX 26000-50S
- MPX/SDX 26000-100G
TLSv1.3プロトコルのソフトウェアのみのサポートは、NetScaler FIPSアプライアンスを除く他のすべてのNetScaler ADC MPXおよびSDXアプライアンスで利用できます。
TLSv1.3 は、拡張プロファイルでのみサポートされます。拡張プロファイルを有効にするには、「 デフォルトプロファイルを有効にする」を参照してください。
TLS1.3 を使用するには、RFC 8446 仕様に準拠したクライアントを使用する必要があります。
サポートされているNetScaler 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 を使用したサーバー証明書の選択
-
application_level_protocol_negotiation 拡張機能を使用した、アプリケーションプロトコルネゴシエーション (ALPN)。
-
OCSPステープリング
-
TLSv1.3 ハンドシェイク用のログメッセージと AppFlow レコードが生成されます。
-
nstrace
パケットキャプチャユーティリティによる TLS 1.3 トラフィックシークレットのロギング(オプション)。 - RFC 8446 を実装する TLS クライアントとの相互運用性。たとえば、Mozilla Firefox、 Google Chrome、OpenSSL などです。
サポートされているブラウザー
次のブラウザバージョンがサポートされ、TLS 1.3プロトコルのNetScaler ADC実装と互換性があります。
- 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>
<!--NeedCopy-->
例:
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
<!--NeedCopy-->
GUI を使用して SSL プロファイルを追加する
- [ システム] > [プロファイル] に移動します。[ SSL プロファイル] を選択します。
- [ 追加 ] をクリックし、プロファイルの名前を指定します。
-
[ プロトコル] で TLSv13を選択します。
- [OK] をクリックします。
CLI を使用して SSL プロファイルを SSL 仮想サーバにバインドする
コマンドプロンプトで入力します。
set ssl vserver <vServerName> -sslProfile <tls13-profile-name>
<!--NeedCopy-->
例:
set ssl vserver ssl-vs -sslProfile tls13profile
GUI を使用して SSL プロファイルを SSL 仮想サーバにバインドする
- [ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを選択します。
- [ 詳細設定]で [ SSL プロファイル] をクリックします。
- 以前に作成した TLSv1.3 プロファイルを選択します。
- [OK] をクリックします。
- [完了] をクリックします。
TLSv1.3 プロトコルの SSL プロファイルパラメータ
-
SSL プロファイルで TLS1.3 パラメータを有効または無効にします。
tls13: SSL プロファイルに対する TLSv1.3 プロトコルサポートの状態。
設定可能な値:ENABLED, DISABLED
デフォルト値: 無効
set ssl profile tls13profile -tls13 enable <!--NeedCopy-->
set ssl profile tls13profile -tls13 disable <!--NeedCopy-->
-
発行されたセッションチケットの数を設定します。
TLS13SessionTicketsPerAuthContext: TLS1.3 がネゴシエートされ、チケットベースの再開が有効になっていて、(1) ハンドシェイクが完了した、または (2) ハンドシェイク後にクライアント認証が完了したときに、SSL 仮想サーバーが発行するチケットの数。
この値を増やすと、クライアントは接続ごとに新しいチケットを使用して複数のパラレル接続を開くことができます。
再開が無効になっている場合、チケットは送信されません。
デフォルト値:1
最小値:1
最大値:10
set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1 set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10 <!--NeedCopy-->
-
DH キー交換の設定
dheKeyExchangeWithPsk
:TLS 1.3 セッション再開ハンドシェイク中に事前共有キーが受け入れられたときに、SSL 仮想サーバで DHE キー交換が必要かどうかを指定します。DHE キー交換は、チケットキーが侵害された場合でも、 DHE キー交換の実行に必要な追加リソースを犠牲にして、前方秘匿性を確保します。セッションチケットが有効な場合、使用可能な設定は次のように機能します。
はい:DHE キー交換は、クライアントがキー交換をサポートしているかどうかにかかわらず、事前共有キーが受け入れられる場合に必要です。事前共有キーを提供するときにクライアントが DHE キー交換をサポートしていない場合、ハンドシェイクは致命的なアラートで中止されます。
NO: DHE キー交換は、事前共有キーが受け入れられたときに、クライアントから要求された場合にのみ実行されます。
可能な値:はい、いいえ
デフォルト値:NO
set ssl profile tls13profile dheKeyExchangeWithPsk yes set ssl profile tls13profile dheKeyExchangeWithPsk no <!--NeedCopy-->
-
0-RTT アーリーデータ受け入れの有効化または無効化
zeroRttEarlyData
: TLS 1.3 の初期アプリケーションデータの状態。適用可能な設定は次のように機能します。ENABLED: ハンドシェイクが完了する前に早期アプリケーションデータが処理されることがあります。 DISABLED: 初期のアプリケーションデータは無視されます。
設定可能な値:ENABLED, DISABLED
デフォルト値: 無効
set ssl profile tls13profile -zeroRttEarlyData ENABLED set ssl profile tls13profile -zeroRttEarlyData DISABLED <!--NeedCopy-->
既定の暗号グループ
デフォルトの暗号グループには 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
<!--NeedCopy-->
制限事項
- TLSv1.3 はバックエンドではサポートされていません。
- TLSv1.3は、Citrix Secure Web GatewayアプライアンスおよびNetScaler ADC FIPSアプライアンスではサポートされていません。
- TLSv1.3 ハンドシェイクでは、1024 ビット以上のキーを含む RSA 証明書のみがサポートされます。
セキュリティ制限
TLSv1.3 サーバオペレータは、RFC 8446 で概説されている下位互換性のために、次のセキュリティ制限に留意する必要があります。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 トラフィックの復号化を参照してください。