暗号スイート (Cipher Suite) の設定方法

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは。Windows Commercial Support Directory Services チームです。
今回は、暗号スイート (Cipher Suite) の設定方法についてご紹介いたします。

暗号スイートについて

暗号スイートは、暗号化アルゴリズムのセットです。SSL/TLS プロトコルでは、「キー交換」、「一括暗号化」、「メッセージ認証」 のタスク毎に 1 つのアルゴリズムを指定しています。暗号スイートについての詳細と、各 OS で対応している暗号化スイートの一覧については以下の公開情報でご案内しています。

TLS/SSL (Schannel SSP) の暗号スイート
https://docs.microsoft.com/ja-jp/windows/win32/secauthn/cipher-suites-in-schannel

暗号スイートの選定動作

SSL/TLS ハンドシェイク時にクライアントとサーバー間で一致する暗号スイートを利用し、暗号化などのやり取りの方式を決定します。クライアントとサーバーでそれぞれ優先順位があり、クライアントから提示された暗号スイートとサーバーで利用可能な暗号スイートの一致するものを選定します。このとき、サーバー側の暗号スイートの優先順位の高いものとクライアントから提示された暗号スイートの一覧を比較していき、最初に一致する暗号スイートが選定されます。

以下のような例でご案内いたします。※ 上から優先度が高いとします。

・クライアント
 暗号スイート A
 暗号スイート B
 暗号スイート C
 暗号スイート D

・サーバー
 暗号スイート E
 暗号スイート F
 暗号スイート C
 暗号スイート D

上記の例の場合、サーバー側の暗号スイート E と一致するものがあるかを確認していき、一致しないため E は選定されず、次に暗号スイート F と一致するものを確認して一致しないため、F も選定されず、次の C では一致するため、暗号スイート C が利用されます。

暗号スイートの設定変更手順 (ローカル設定)

サーバーとクライアントで、ローカルで暗号化スイートを設定する場合の手順をご案内いたします。

  1. 設定対象の端末にて、レジストリ エディターを管理者として起動します。

  2. 次のレジストリを右クリックし、[修正] を選択します。

    キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002
    名前: Functions
    種類: REG_MULTI_SZ

  3. 必要に応じて設定を行います。

    // 表示例
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_AES_256_GCM_SHA384
    TLS_RSA_WITH_AES_128_GCM_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA256
    TLS_RSA_WITH_AES_128_CBC_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_3DES_EDE_CBC_SHA
    TLS_RSA_WITH_NULL_SHA256
    TLS_RSA_WITH_NULL_SHA
    TLS_PSK_WITH_AES_256_GCM_SHA384
    TLS_PSK_WITH_AES_128_GCM_SHA256
    TLS_PSK_WITH_AES_256_CBC_SHA384
    TLS_PSK_WITH_AES_128_CBC_SHA256
    TLS_PSK_WITH_NULL_SHA384
    TLS_PSK_WITH_NULL_SHA256

  4. 設定を反映させるために OS を再起動します。

暗号スイートの設定変更手順 (グループ ポリシー設定)

グループ ポリシーで暗号化スイートを設定する場合の手順をご案内いたします。

  1. ドメインのグループ ポリシーもしくは、ローカル グループ ポリシーにて設定を行います。
    ※ ドメインのグループ ポリシーの場合には、対象端末が所属する OU に適用ください。

  2. [コンピューターの構成] - [管理用テンプレート] - [ネットワーク] - [SSL 構成設定] - [SSL 暗号の順位] を選択します。

  3. [有効] を選択して、下の 「SSL 暗号」 の部分に表示された文字列に利用する暗号スイートを設定します。
    ※ 設定する際は、半角のカンマで区切り下記の様に設定します。
    ※ 日本語 OS をご利用の場合は、既定の設定が全角のカンマ ( 、 ) になっている場合がありますので、半角のカンマ ( , ) に置き換えてから設定をお願いいたします。詳細は以下のブログにてご案内しておりますので、ご参照いただけますと幸いです。

    「SSL 暗号の順位」ポリシーの初期値が全角カンマ区切りになる事象について
    https://jpwinsup.github.io/blog/2021/03/28/PublicKeyInfrastructure/SSLTLSConnection/ciphersuite-adml-incorrectly-uses-fullwidth-commas/

    • 既定の設定
      TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256

    • 半角のカンマに置き換えた設定 (例)
      TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_NULL_SHA256,TLS_RSA_WITH_NULL_SHA,TLS_PSK_WITH_AES_256_GCM_SHA384,TLS_PSK_WITH_AES_128_GCM_SHA256,TLS_PSK_WITH_AES_256_CBC_SHA384,TLS_PSK_WITH_AES_128_CBC_SHA256,TLS_PSK_WITH_NULL_SHA384,TLS_PSK_WITH_NULL_SHA256

  4. グループ ポリシー設定後に対象端末で下記コマンドを実行します。

    gpupdate /force

  5. 設定を反映させるために OS を再起動します。

<補足>
グループ ポリシーで設定した場合には下記に反映され、ローカル設定より優先されます。
キー: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
名前: Functions

暗号スイートの設定の反映は、OS の再起動が必須となります。
OS の再起動を行うまでは設定変更は反映されませんのでご留意ください。
また、OS でサポートしていない暗号スイートをレジストリもしくはポリシーで設定したとしても、利用することはできません。

更新履歴

2021/12/23 : 本ブログの公開