Citrix ADC

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

Citrix ADC VPXおよびCitrix ADC MPXアプライアンスでは、RFC 8446で指定されているTLSv1.3プロトコルがサポートされるようになりました。

注:

  • TLSv1.3プロトコルのソフトウェアのみのサポートは、Citrix ADC FIPSアプライアンスを除くすべてのCitrix ADC MPXアプライアンスで使用できます。

  • 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. アプリケーションプロトコルネゴシエーション (ALPN) を使用して、アプリケーションプロトコルネゴシエーション (アプリケーションプロトコルネゴシエーション)。

  8. OCSP ホチキス止め

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

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

  11. 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 プロファイルの追加

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

    TLSv13 プロファイルの作成

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

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

コマンドプロンプトで、次のように入力します。

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

:

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

    デフォルト値: DISABLED

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

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

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

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

    デフォルト値:1

    最小値:1

    最大値:10

    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 1
    
    set ssl profile tls13profile -tls13sessionTicketsPerAuthContext 10
    
  3. 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
    
  4. 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 サーバオペレータは、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 プロトコルのサポート