TLS 1.3 プロトコルのサポート
NetScaler VPXおよびNetScaler MPXアプライアンスは、RFC 8446で規定されているTLS 1.3プロトコルをサポートするようになりました。
注:
TLS 1.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
TLS 1.3プロトコルのソフトウェアのみのサポートは、NetScaler FIPSアプライアンスを除く他のすべてのNetScaler MPXおよびSDXアプライアンスで利用できます。
TLS 1.3 は拡張プロファイルでのみサポートされます。拡張プロファイルを有効にするには、「 デフォルトプロファイルを有効にする」を参照してください。SSL プロファイルでは、「デフォルト」と「拡張」という用語は同じ意味で使用されます。
TLS 1.3 を使用するには、RFC 8446 仕様に準拠したクライアントを使用する必要があります。
サポートされているNetScaler ADC機能
次の SSL 機能がサポートされています。
SSL の機能 | フロントエンドのサポート | バックエンドのサポート |
---|---|---|
暗号スイート TLS 1.3-AES256-GCM-SHA384 (0x1302) | はい | はい |
暗号スイート TLS 1.3_CHACHA20_POLY1305_SHA256 (0x1303) | はい | はい |
暗号スイート TLS 1.3-AES128_GCM-SHA256 (0x1301) | はい | はい |
エフェメラル DH キー交換用の ECC カーブ P_256 | はい | はい |
エフェメラル DH キー交換用の ECC カーブ P_384 | はい | はい |
エフェメラル DH キー交換用の ECC カーブ P_521 | はい | はい |
チケットベースのセッション再開が有効な場合のハンドシェイクの簡略化 | はい | いいえ |
0-RTT アーリーアプリケーションデータ | はい | いいえ |
0-RTT アーリーアプリケーションデータのリプレイ攻撃保護 | はい | *NA |
ピア証明書のOCSPおよびCRL検証をサポートする、オプションまたは必須の証明書ベースのクライアント認証 | はい | はい |
サーバー名拡張:SNI を使用したサーバー証明書の選択 | はい | *NA |
application_level_protocol_negotiation エクステンションを使用したアプリケーションプロトコルネゴシエーション (ALPN) | はい | はい |
OCSPステープリング | はい | *NA |
TLS 1.3 ハンドシェイク用にログメッセージと AppFlow レコードが生成されます | はい | はい |
nstrace パケットキャプチャユーティリティによるTLS 1.3トラフィックシークレットのロギング(オプション) |
はい | はい |
RFC 8446 を実装している TLS ピアとの相互運用性。たとえば、Mozilla Firefox、 Google Chrome、OpenSSL などです。 | はい | はい |
*NA-該当なし
構成
TLS 1.3 は SSL プロファイルではデフォルトで無効になっています。レガシープロファイルで TLS 1.3 を有効にすることはできますが、チケットベースのセッション再開が有効になっている場合の短縮ハンドシェイクや 0-RTT アーリーアプリケーションデータなどの一部の機能は、レガシープロファイルではサポートされていません。
CLI を使用してフロントエンド SSL プロファイルを追加する
コマンドプロンプトで入力します。
add ssl profile tls13profile -tls13 ENABLED
<!--NeedCopy-->
例:
sh ssl profile tls13profile
1) Name: tls13profile (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: ENABLED
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 プロファイルを追加する
コマンドプロンプトで入力します。
add ssl profile profile1 -sslprofileType BackEnd -tls13 ENABLED
<!--NeedCopy-->
例:
add ssl profile tls13profile2 -sslprofileType BackEnd
sh ssl profile tls13profile2
1) Name: tls13profile2 (Back-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: ENABLED
Server Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 300 seconds
DH: DISABLED
Ephemeral RSA: DISABLED
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
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
Allow Extended Master Secret: NO
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT_BACKEND Priority :1
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
GUI を使用してバックエンド SSL プロファイルを追加する
- [ システム] > [プロファイル] に移動します。[ SSL プロファイル] を選択します。
- [ 追加 ] をクリックし、プロファイルの名前を指定します。
-
「 SSL プロファイルタイプ」で、「 バックエンド」を選択します。
- [ プロトコル] で TLSv13を選択します。
- 「 OK」 をクリックし、「 完了」をクリックします。
CLI を使用して SSL プロファイルを SSL 仮想サーバにバインドする
コマンドプロンプトで入力します。
set ssl vserver <vserverName> -sslProfile <profile-name>
例:
set ssl vserver ssl-vs -sslProfile tls13profile
GUI を使用して SSL プロファイルを SSL 仮想サーバにバインドする
- [ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを選択します。
- [編集]をクリックします。
- [ 詳細設定]で [ SSL プロファイル] をクリックします。
- 以前に作成した TLS 1.3 プロファイルを選択します。
- 「 OK」 をクリックし、「 完了」をクリックします。
CLI を使用して SSL プロファイルを SSL サービスにバインドする
コマンドプロンプトで入力します。
set ssl service <serviceName> -sslProfile <profile-name>
例:
set ssl service ssl-service -sslProfile tls13profile2
注:
フロントエンドプロファイルを SSL サービスにバインドすると、警告が表示されます。
GUI を使用して SSL プロファイルを SSL サービスにバインドする
- [ トラフィック管理] > [負荷分散] > [サービス] に移動し、SSL サービスを選択します。
- [編集]をクリックします。
- [ 詳細設定]で [ SSL プロファイル] をクリックします。
- 以前に作成した TLS 1.3 プロファイルを選択します。
- 「 OK」 をクリックし、「 完了」をクリックします。
TLS 1.3 プロトコルの SSL プロファイルパラメータ
注:バックエンド SSL プロファイルには **tls13
** のみ適用されます。
-
SSL プロファイルの TLS 1.3 パラメータを有効または無効にします。
tls13: SSL プロファイルの TLS 1.3 プロトコルサポートの状態。
設定可能な値:ENABLED, DISABLED
デフォルト値: 無効
set ssl profile tls13profile -tls13 enable <!--NeedCopy-->
set ssl profile tls13profile -tls13 disable <!--NeedCopy-->
-
発行されたセッションチケットの数を設定します。
TLS13SessionTicketsPerAuthContext: TLS 1.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
デフォルト値: 無効
set ssl profile tls13profile -zeroRttEarlyData ENABLED set ssl profile tls13profile -zeroRttEarlyData DISABLED <!--NeedCopy-->
既定の暗号グループ
デフォルトの暗号グループには TLS 1.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: TLS 1.3-AES256-GCM-SHA384 Priority : 27
Description: TLS 1.3 Kx=any Au=any Enc=AES-GCM(256) Mac=AEAD HexCode=0x1302
28) Cipher Name: TLS 1.3_CHACHA20_POLY1305_SHA256 Priority : 28
Description: TLS 1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD HexCode=0x1303
29) Cipher Name: TLS 1.3-AES128_GCM-SHA256 Priority : 29
Description: TLS 1.3 Kx=any Au=any Enc=AES-GCM(128) Mac=AEAD HexCode=0x1301
Done
<!--NeedCopy-->
sh cipher DEFAULT_BACKEND
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: TLS 1.3-AES256-GCM-SHA384 Priority : 27
Description: TLS 1.3 Kx=any Au=any Enc=AES-GCM(256) Mac=AEAD HexCode=0x1302
28) Cipher Name: TLS 1.3-CHACHA20-POLY1305-SHA256 Priority : 28
Description: TLS 1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD HexCode=0x1303
29) Cipher Name: TLS 1.3-AES128-GCM-SHA256 Priority : 29
Description: TLS 1.3 Kx=any Au=any Enc=AES-GCM(128) Mac=AEAD HexCode=0x1301
Done
<!--NeedCopy-->
制限事項
- TLS 1.3はNetScaler FIPSアプライアンスではサポートされていません。
- TLS 1.3 ハンドシェイクでは、1024 ビット以上のキーを含む RSA 証明書のみがサポートされます。
セキュリティ制限
TLS 1.3サーバー運営者は、RFC 8446で概説されている下位互換性のために、以下のセキュリティ制限に留意する必要があります。NetScalerアプライアンスのデフォルト構成は、これらの制限に準拠しています。ただし、NetScalerアプライアンスはこれらのルールを適用しません。
-
RC4 暗号スイートのセキュリティは、RFC7465 で説明されているように不十分であると考えられています。実装では、TLS のどのバージョンでも RC4 暗号スイートを提供したり、ネゴシエートしたりしてはなりません。
-
古いバージョンの TLS では、低強度の暗号を使用できました。強度が 112 ビット未満の暗号は、どのバージョンの TLS でも提供またはネゴシエートしてはなりません。
-
SSL 3.0 [SSLv3] のセキュリティは、RFC7568 で説明されているように不十分であると見なされ、ネゴシエートしWindows てはなりません。TLS 1.3 が有効な場合は SSLv3 を無効にします (SSLv3 はデフォルトで無効になっています)。
注:
TLS 1.3 上で動作するプロトコルのトラブルシューティングについては、「パケットトレースからの TLS 1.3 トラフィックの復号化」を参照してください。