NetScalerアプライアンスで利用可能な暗号
NetScaler ADCアプライアンスには、事前定義された一連の暗号グループが付属しています。DEFAULT 暗号グループに含まれない暗号を使用するには、SSL 仮想サーバーに明示的にバインドする必要があります。また、ユーザー定義の暗号グループを作成して、SSL 仮想サーバーにバインドすることもできます。ユーザー定義の暗号グループの作成の詳細については、 ADCアプライアンスでのユーザー定義の暗号グループの構成を参照してください。
メモ
リリース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 仕様に準拠したクライアントを使用する必要があります。
RC4暗号は、NetScaler ADCアプライアンスのデフォルトの暗号グループには含まれません。ただし、N3 ベースのアプライアンス上のソフトウェアではサポートされています。ハンドシェイクを含む RC4 暗号化はソフトウェアで行われます。
この暗号は安全ではないと見なされ、RFC 7465で非推奨になっているため、使用しないことをお勧めします。
アプライアンスに N3 チップが搭載されているかどうかを確認するには、「show hardware」コマンドを使用します。
sh hardware
Platform: NSMPX-22000 16*CPU+24*IX+12*E1K+2*E1K+4*CVM N3 2200100
Manufactured on: 8/19/2013
CPU: 2900MHZ
Host Id: 1006665862
Serial no: ENUK6298FT
Encoded serial no: ENUK6298FT
<!--NeedCopy-->
- フロントエンド (仮想サーバー) でデフォルトでバインドされている暗号スイートに関する情報を表示するには、次のように入力します。
sh cipher DEFAULT
- バックエンドで (サービスに) デフォルトでバインドされている暗号スイートに関する情報を表示するには、以下のように入力します。
sh cipher DEFAULT_BACKEND
- アプライアンスに定義されているすべての暗号グループ (エイリアス) に関する情報を表示するには、次のように入力します。
sh cipher
- 特定の暗号グループに含まれるすべての暗号スイートに関する情報を表示するには、
sh cipher <alias name>
と入力します。たとえば、sh 暗号 ECDHE です。
以下のリンクは、さまざまなNetScaler ADCプラットフォームおよび外部ハードウェアセキュリティモジュール(HSM)でサポートされている暗号スイートの一覧です。
- NetScaler MPX/SDX Intel ルイスバーグアプライアンス: NetScaler MPX/SDX Intel ルイスバーグSSLチップベースのアプライアンスでの暗号サポート
- NetScaler MPX/SDX(N3)アプライアンス: NetScaler MPX/SDX(N3)アプライアンスでの暗号サポート
- NetScaler MPX/SDX Intel Coletoアプライアンス: NetScaler MPX/SDX Intel Coleto SSLチップベースのアプライアンスでの暗号サポート
- NetScaler VPXアプライアンス: NetScaler VPXアプライアンスでの暗号サポート
- NetScaler MPX/SDX 14000 FIPSアプライアンス: NetScaler MPX/SDX 14000 FIPSアプライアンスでの暗号サポート
- 外部 HSM (Thales/セーフネット): 外部 HSM でサポートされる暗号 (Thales/Safenet)
- NetScaler VPX FIPSおよびMPX FIPSアプライアンス: NetScaler VPX FIPSおよびMPX FIPSアプライアンスでの暗号サポート
注:
DTLS暗号のサポートについては、 NetScaler VPX、MPX、およびSDXアプライアンスでのDTLS暗号のサポートを参照してください。
表1-仮想サーバー/フロントエンドサービス/内部サービスのサポート:
プロトコル/プラットフォーム | MPX/SDX (N2) | MPX/SDX (N3) | VPX | MPX/SDX 14000** FIPS | MPX 5900/8900 MPX 15000-50G MPX 26000-100G |
---|---|---|---|---|---|
TLS 1.3 | - | 14.1 全ビルド | 14.1 全ビルド | 未サポート | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 未サポート | 13.1 全ビルド | |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 未サポート | ||
12.1—50.x (TLS1.3-CHACHA20-POLY1305-SHA256を除く) | 12.1—50.x (TLS1.3-CHACHA20-POLY1305-SHA256を除く) | 12.1–50.x | 未サポート | ||
TLS 1.1/1.2 | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
ECDHE/DHE (例 TLS1-ECDHE-RSA-AES128-SHA) | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | ||
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
AES-GCM (例 TLS1.2-AES128-GCM-SHA256) | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
SHA-2 暗号 (例 TLS1.2-AES-128-SHA256) | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | ||
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
ECDSA (例 TLS1-ECDHE-ECDSA-AES256-SHA) | 未サポート | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
未サポート | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | |
未サポート | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
未サポート | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
CHACHA20 | 未サポート | 14.1 全ビルド | 14.1 全ビルド | 未サポート | 14.1 全ビルド |
未サポート | 13.1 全ビルド | 13.1 全ビルド | 未サポート | 13.1 全ビルド | |
未サポート | 13.0 すべてのビルド | 13.0 すべてのビルド | 未サポート | ||
未サポート | 未サポート | 12.1 全ビルド | 未サポート |
表 2-バックエンドサービスのサポート:
プロトコル/プラットフォーム | MPX/SDX (N2) | MPX/SDX (N3) | VPX | MPX/SDX 14000** FIPS | MPX 5900/8900 MPX 15000-50G MPX 26000-100G |
---|---|---|---|---|---|
TLS 1.3 | - | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
TLS 1.1/1.2 | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
ECDHE/DHE (例 TLS1-ECDHE-RSA-AES128-SHA) | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | ||
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
AES-GCM (例 TLS1.2-AES128-GCM-SHA256) | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
SHA-2 暗号 (例 TLS1.2-AES-128-SHA256) | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド |
13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
ECDSA (例 TLS1-ECDHE-ECDSA-AES256-SHA) | 未サポート | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド | 14.1 全ビルド |
未サポート | 13.1 全ビルド | 13.1 全ビルド | 13.1 全ビルド | ||
未サポート | 13.0 すべてのビルド | 13.0 すべてのビルド | 13.0 すべてのビルド | ||
未サポート | 12.1 全ビルド | 12.1 全ビルド | 12.1 全ビルド | ||
CHACHA20 | 未サポート | 14.1 全ビルド | 14.1 全ビルド | 未サポート | 14.1 全ビルド |
未サポート | 13.1 全ビルド | 13.1 全ビルド | 未サポート | 13.1 全ビルド | |
未サポート | 13.0 すべてのビルド | 13.0 すべてのビルド | 未サポート | ||
未サポート | 未サポート | 12.1 全ビルド | 未サポート |
サポートされる ECDSA 暗号の詳細なリストについては、 ECDSA 暗号スイートのサポートを参照してください。
メモ
TLS-fallback_SCSV 暗号スイートは、リリース 10.5 ビルド 57.x 以降のすべてのアプライアンスでサポートされています。
HTTP 厳密なトランスポートセキュリティ (HSTS) のサポートはポリシーベースです。
すべての SHA-2 署名付き証明書(SHA256、SHA384、SHA512)は、すべてのアプライアンスのフロントエンドでサポートされています。リリース 11.1 ビルド 54.x 以降では、これらの証明書はすべてのアプライアンスのバックエンドでもサポートされています。リリース 11.0 以前では、すべてのアプライアンスのバックエンドで SHA256 署名付き証明書のみがサポートされています。
- リリース11.1ビルド52.x以前では、次の暗号はMPX9700のフロントエンドでのみサポートされています。 MPX/SDX 14000 FIPSアプライアンス:
- TLS1.2-ECDHE-RSA-AES-256-SHA384
- TLS1.2-ECDHE-RSA-AES256-GCM-SHA384 From release 11.1 build 53.x, and in release 12.0, these ciphers are also supported on the back end.
- すべてのChaCha20-Poly1035暗号は、SHA-256ハッシュ関数とTLS擬似ランダム関数(PSF)を使用します。
Perfect Forward Secrecy (PFS)
Perfect Forward Secrecy は、ウェブサーバーのセッションキーが後の時点で侵害された場合でも、現在の SSL 通信を確実に保護します。
なぜPerfect Forward Secrecy (PFS) が必要なのですか
SSL 接続は、クライアントとサーバー間で渡されるデータを保護するために使用されます。この接続は、クライアントのブラウザとアクセスした Web サーバの間で行われる SSL ハンドシェイクから始まります。このハンドシェイク中に、ブラウザとサーバーが特定の情報を交換してセッションキーに到達します。セッションキーは、通信の残りの部分を通してデータを暗号化する手段として機能します。
RSA は、鍵交換で最も一般的に使用されるアルゴリズムです。ブラウザはサーバーの公開鍵を使用して暗号化し、プレマスターシークレットを介してサーバーに送信します。この事前マスターシークレットは、セッションキーに到達するために使用されます。RSA 鍵交換アプローチの問題点は、攻撃者が将来の任意の時点でサーバーの秘密鍵をなんとか入手できた場合、攻撃者はセッション鍵を取得できるプレマスターシークレットを入手できることです。攻撃者がこのセッションキーを使用して、すべての SSL カンバセーションを復号化できるようになりました。その結果、サーバーの盗まれた秘密キーを使用してセッションキーに到達し、保存された履歴カンバセーションも復号化される可能性があるため、以前にセキュリティで保護されていた履歴 SSL 通信はセキュリティで保護されなくなります。
サーバーの秘密鍵が侵害された場合でも、過去の SSL 通信を保護できることが必要です。Perfect Forward Secrecy (PFS) を設定すると、この問題に対処できます。
PFSはどのように役立つのですか
PFS は、クライアントとサーバがセッションごとに新しいキーについて合意し、このセッションキーの計算を秘密にしておくことで、過去の SSL 通信を保護します。これは、サーバーキーの侵害によってセッションキーが侵害されてはならないという基準で機能します。セッションキーは両端で別々に派生し、ワイヤを介して転送されることはありません。セッションキーは、通信が完了すると破棄されます。これらの事実により、誰かがサーバーの秘密鍵にアクセスできたとしても、セッション鍵に到達できないことが保証されます。したがって、過去のデータを復号化することはできません。
例を挙げた説明
PFS の達成に DHE を使用していると仮定します。DH アルゴリズムは、ハッカーがサーバーの秘密キーを入手しても、ハッカーがセッションキーに到達できないようにします。その理由は、セッションキーと乱数 (セッションキーに到達するために使用) は両端で秘密にされ、ネットワーク上で交換されることはないからです。 PFS は、SSL セッションごとに新しい一時キーを作成するエフェメラル Diffie-Hellman キー交換を使用することで実現できます。
セッションごとにキーを作成する反対に、追加の計算が必要になるという点があります。ただし、この問題は、キーサイズが小さい楕円曲線を使用することで解決できます。
NetScaler ADCアプライアンスでPFSを構成する
PFSは、DHEまたはECDHE暗号を構成することで、NetScaler ADC上で構成できます。これらの暗号により、作成されたシークレットセッションキーがワイヤ上で共有されず(DH アルゴリズム)、セッションキーが短時間だけ存続することが保証されます(エフェメラル)。次のセクションでは、両方の構成について説明します。
注: DHE の代わりに ECDHE 暗号を使用すると、小さなキーサイズで通信がより安全になります。
GUI を使用して DHE を構成する
-
DH キーを生成します。
a. [ トラフィック管理] > [SSL] > [ツール]に移動します。
b. 「 Diffie Helman (DH) キーを作成」をクリックします。
注: 2048 ビット DH キーの生成には最大 30 分かかることがあります。
-
SSL 仮想サーバーの DH Param を有効にし、SSL 仮想サーバーに DH キーを接続します。
a. [ 設定] > [トラフィック管理] > [仮想サーバ] に移動します。
b. DH を有効にする仮想サーバーを選択します。
c. [ 編集] をクリックし、[ SSL パラメータ] をクリックし、[ DH パラメータを有効にする] をクリックします。
-
DHE 暗号を仮想サーバーにバインドします。
a. [ 設定] > [トラフィック管理] > [仮想サーバ] に移動します。
b. DH を有効にする仮想サーバーを選択し、鉛筆アイコンをクリックして編集します。
c. [ 詳細設定] で、[ SSL Ciphers ] の横にあるプラスアイコンをクリックし、DHE 暗号グループを選択して [ OK ] をクリックしてバインドします。
注: DHE 暗号が仮想サーバにバインドされた暗号リストの一番上に配置されていることを確認してください。
GUI を使用した ECDHE の設定
-
ECC カーブを SSL 仮想サーバーにバインドします。
a.[設定] > [トラフィック管理] > [負荷分散] > [仮想サーバー]に移動します。
b. 編集するSSL仮想サーバーを選択し、[ ECC Curve ] をクリックして、[ バインドの追加] をクリックします。
c. 必要な ECC カーブを仮想サーバにバインドします。
-
ECDHE 暗号を仮想サーバにバインドします。
a. [ 構成] > [トラフィック管理] > [仮想サーバー ] に移動し、DH を有効にする仮想サーバーを選択します。
b. [ 編集] > [SSL 暗号 ] をクリックし、ECDHE 暗号グループを選択して [ バインド] をクリックします。
注: ECDHE 暗号が、仮想サーバーにバインドされた暗号リストの一番上にあることを確認してください。
注: それぞれのケースで、NetScaler ADCアプライアンスが通信に使用する暗号をサポートしていることを確認します。
SSL プロファイルを使用した PFS の設定
注: SSL プロファイルを使用して PFS(暗号または ECC)を設定するオプションは、11.0 64.x リリース以降から導入されます。古いバージョンの場合は、次のセクションを無視してください。
SSL プロファイルを使用して PFS を有効にするには、仮想サーバ上で直接設定するのではなく、SSL プロファイルで同様の設定(前の設定セクションで説明した)を実行する必要があります。
GUI を使用して SSL プロファイルを使用した PFS の設定
-
SSL プロファイルで ECC カーブと ECDHE 暗号をバインドします。
注: ECC カーブは、デフォルトですべての SSL プロファイルに既にバインドされています。
a. [ システム] > [プロファイル] > [SSL プロファイル ] に移動し、PFS を有効にするプロファイルを選択します。
b. ECDHE 暗号をバインドします。
-
SSL プロファイルを仮想サーバーにバインドします。
a. [ 構成] > [トラフィック管理] > [仮想サーバー ] に移動し、仮想サーバーを選択します。
b. 鉛筆アイコンをクリックして SSL プロファイルを編集します。
c. 「 OK」 をクリックし、「 完了」をクリックします。
CLI を使用した SSL を使用した PFS の設定
コマンドプロンプトで入力します:
-
ECC カーブを SSL プロファイルにバインドします。
bind sslprofile <SSLProfileName> -eccCurveName <Name_of_curve> <!--NeedCopy-->
-
ECDHE 暗号グループをバインドします。
bind sslprofile <SSLProfileName> cipherName <ciphergroupName> <!--NeedCopy-->
-
ECDHE 暗号のプライオリティを 1 に設定します。
set sslprofile <SSLProfileName> cipherName <ciphergroupName> cipherPriority <positive_integer> <!--NeedCopy-->
-
SSL プロファイルを仮想サーバーにバインドします。
set SSL vserver <vservername> sslProfile <SSLProfileName> <!--NeedCopy-->