Citrix ADC

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 ADC FIPSアプライアンスを除く他のすべてのCitrix ADC MPXおよびSDXアプライアンスで利用できます。

  • TLSv1.3 は、拡張プロファイルでのみサポートされます。拡張プロファイルを有効にするには、 拡張プロファイルの有効化を参照してください

  • TLS1.3 を使用するには、RFC 8446 仕様に準拠したクライアントを使用する必要があります。

サポートされているCitrix ADC機能

次の SSL 機能がサポートされています。

  1. TLSv1.3 暗号スイート:
    • TLS1.3-AES256-GCM-SHA384 (0x1302)
    • TLS1.3_CHACHA20_POLY1305_SHA256 (0x1303)
    • TLS1.3-AES128_GCM-SHA256 (0x1301)
  2. エフェメラルな Diffie-Hellman キー交換のための ECC カーブ:
    • P_256
    • P_384
    • P_521
  3. チケットベースのセッション再開が有効な場合のハンドシェイクの簡略化

  4. 0-RTT アーリーアプリケーションデータ

  5. クライアント証明書の OCSP および CRL 検証をサポートする、オプションまたは必須の証明書ベースのクライアント認証

  6. サーバー名拡張:SNI を使用したサーバー証明書の選択

  7. application_level_protocol_negotiation 拡張機能を使用した、アプリケーションプロトコルネゴシエーション (ALPN)。

  8. OCSP ホチキス

  9. TLSv1.3 ハンドシェイク用のログメッセージと AppFlow レコードが生成されます。

  10. nstraceパケットキャプチャユーティリティによる TLS 1.3 トラフィックシークレットのロギング(オプション)。

  11. RFC 8446 を実装する TLS クライアントとの相互運用性。たとえば、Mozilla Firefox、 Google Chrome、OpenSSL などです。

サポートされているブラウザー

次のブラウザバージョンがサポートされ、TLS 1.3プロトコルのCitrix 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 プロファイルを追加する

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

    TLSv13 プロファイルの作成

  4. [OK] をクリックします。

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

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

set ssl vserver <vServerName> -sslProfile <tls13-profile-name>
<!--NeedCopy-->

:

set ssl vserver ssl-vs -sslProfile tls13profile

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

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

TLSv1.3 プロトコルの SSL プロファイルパラメータ

  1. SSL プロファイルで TLS1.3 パラメータを有効または無効にします。

    tls13: SSL プロファイルに対する TLSv1.3 プロトコルサポートの状態。

    設定可能な値:ENABLED, DISABLED

    デフォルト値: 無効

    set ssl profile tls13profile -tls13 enable
    <!--NeedCopy-->
    
    set ssl profile tls13profile -tls13 disable
    <!--NeedCopy-->
    
  2. 発行されるセッションチケットの数を設定します。

    TLS13SessionTicketsPerAuthContext: TLS1.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: 初期のアプリケーションデータは無視されます。

    設定可能な値: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アプライアンスおよびCitrix ADC FIPSアプライアンスではサポートされていません。

セキュリティ制限

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 トラフィックの復号化を参照してください

RFC 8446 で定義されている TLSv1.3 プロトコルサポート