ADC

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 プロファイルを追加する

  1. [ システム] > [プロファイル] に移動します。[ SSL プロファイル] を選択します。
  2. [ 追加 ] をクリックし、プロファイルの名前を指定します。
  3. [ プロトコル] で TLSv13を選択します。

    TLSv13 プロファイルの作成

  4. 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 プロファイルを追加する

  1. [ システム] > [プロファイル] に移動します。[ SSL プロファイル] を選択します。
  2. [ 追加 ] をクリックし、プロファイルの名前を指定します。
  3. SSL プロファイルタイプ」で、「 バックエンド」を選択します。

    SSL バックエンドプロファイル

  4. [ プロトコル] で TLSv13を選択します。
  5. OK」 をクリックし、「 完了」をクリックします。

CLI を使用して SSL プロファイルを SSL 仮想サーバにバインドする

コマンドプロンプトで入力します。

set ssl vserver <vserverName> -sslProfile <profile-name>

:

set ssl vserver ssl-vs -sslProfile tls13profile

GUI を使用して SSL プロファイルを SSL 仮想サーバにバインドする

  1. [ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを選択します。
  2. [編集]をクリックします。
  3. [ 詳細設定]で [ SSL プロファイル] をクリックします。
  4. 以前に作成した TLS 1.3 プロファイルを選択します。
  5. OK」 をクリックし、「 完了」をクリックします。

CLI を使用して SSL プロファイルを SSL サービスにバインドする

コマンドプロンプトで入力します。

set ssl service <serviceName> -sslProfile <profile-name>

:

set ssl service ssl-service -sslProfile tls13profile2

注:

フロントエンドプロファイルを SSL サービスにバインドすると、警告が表示されます。

GUI を使用して SSL プロファイルを SSL サービスにバインドする

  1. [ トラフィック管理] > [負荷分散] > [サービス] に移動し、SSL サービスを選択します。
  2. [編集]をクリックします。
  3. [ 詳細設定]で [ SSL プロファイル] をクリックします。
  4. 以前に作成した TLS 1.3 プロファイルを選択します。
  5. OK」 をクリックし、「 完了」をクリックします。

TLS 1.3 プロトコルの SSL プロファイルパラメータ

注:バックエンド SSL プロファイルには **tls13

** のみ適用されます。

  1. 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-->
    
  2. 発行されたセッションチケットの数を設定します。

    TLS13SessionTicketsPerAuthContext: TLS 1.3がネゴシエートされ、チケットベースの再開が有効になっていて、(1) ハンドシェイクが完了するか、(2) ハンドシェイク後にクライアント認証が完了した場合に、SSL仮想サーバーが発行するチケットの数。

    この値を増やすと、ピアは接続ごとに新しいチケットを使用して複数の並列接続を開くことができます。

    再開が無効になっている場合、チケットは送信されません。

    デフォルト値:1

    最小値:1

    最大値:10

    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1
    
    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
    <!--NeedCopy-->
    
  3. 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-->
    
  4. 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 トラフィックの復号化」を参照してください。

TLS 1.3 プロトコルのサポート