特定の暗号化アルゴリズムとプロトコルの使用を制限Schannel.dll

この記事では、特定の暗号化アルゴリズムとプロトコルの使用を制限する方法について説明します。Schannel.dllします。 この情報は、Microsoft 暗号化 API (CAPI) 用に作成された独立したソフトウェア ベンダー (ISV) アプリケーションにも適用されます。

適用対象:  WindowsServer 2003
元の KB 番号:   245030

注意

この記事は、サーバー 2003 Windows以前のバージョンのサーバーに適用Windows。 Windows Server 2008 以降のバージョンの Windowsに適用されるレジストリ キーについては、「TLS レジストリ設定」 を参照してください。

概要

Windows NT 4.0 Service Pack 6 に含まれる次の暗号化サービス プロバイダー (CSP) は、FIPS-140-1 暗号化検証の証明書を授与されました。

  • Microsoft Base 暗号化プロバイダー (Rsabase.dll)
  • Microsoft Enhanced 暗号化プロバイダー (Rsaenh.dll) (エクスポート以外のバージョン)

Microsoft TLS/SSL Security Provider (Schannel.dll ファイル) は、ここに記載されている CSP を使用して、Internet Explorer および インターネット インフォメーション サービス (IIS) のサポートにおいて SSL または TLS を使用してセキュリティで保護された通信を行います。

暗号化ファイルを変更Schannel.dll、Cipher Suite 1 と 2 をサポートできます。 ただし、プログラムは暗号スイート 1 と 2 もサポートする必要があります。 暗号スイート 1 と 2 は、IIS 4.0 および 5.0 ではサポートされていません。

この記事では、TLS/SSL セキュリティ プロバイダーを 4.0 Service Pack 6 以降のバージョンWindows NT構成するために必要な情報について説明します。 Windows レジストリを使用して、基本暗号化プロバイダーまたは拡張暗号化プロバイダーでサポートされている暗号化アルゴリズムに関して、特定の SSL 3.0 または TLS 1.0 暗号スイートの使用を制御できます。

注意

Windows NT 4.0 Service Pack 6 では、Schannel.dll ファイルは Microsoft Base DSS 暗号化プロバイダー (Dssbase.dll) または Microsoft DS/Diffie-Hellman 拡張暗号化プロバイダー (Dssenh.dll) を使用しない。

暗号スイート

SSL 3.0 と TLS 1.0 (RFC2246) と INTERNET-DRAFT 56 ビット エクスポート暗号スイート (TLS draft-ietf-tls-56-bit-ciphersuites-00.txt用) は、異なる暗号スイートを使用するオプションを提供します。 各暗号スイートは、SSL/TLS セッションで使用されるキー交換、認証、暗号化、および MAC アルゴリズムを決定します。 キー交換アルゴリズムと認証アルゴリズムの両方として RSA を使用する場合 、RSA という用語は、対応する暗号スイート定義に 1 回だけ表示されます。

Windows NT 4.0 Service Pack 6 Microsoft TLS/SSL セキュリティ プロバイダーは、基本暗号化プロバイダーまたは拡張暗号化プロバイダーを使用する場合、次の SSL 3.0 定義の CipherSuite をサポートします。

SSL 3.0 暗号スイート
SSL_RSA_EXPORT_WITH_RC4_40_MD5 { 0x00,0x03 }
SSL_RSA_WITH_RC4_128_MD5 { 0x00,0x04 }
SSL_RSA_WITH_RC4_128_SHA { 0x00,0x05 }
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 { 0x00,0x06 }
SSL_RSA_WITH_DES_CBC_SHA { 0x00,0x09 }
SSL_RSA_WITH_3DES_EDE_CBC_SHA { 0x00,0x0A }
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA { 0x00,0x62 }
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA { 0x00,0x64 }

注意

SSL 3.0 SSL_RSA_EXPORT1024_WITH_DES_CBC_SHAおよびSSL_RSA_EXPORT1024_WITH_RC4_56_SHAは SSL 3.0 テキストで定義されていません。 ただし、複数の SSL 3.0 ベンダーがサポートしています。 これには、Microsoft が含まれます。

Windows NT 4.0 Service Pack 6 Microsoft TLS/SSL セキュリティ プロバイダーは、基本暗号化プロバイダーまたは拡張暗号化プロバイダーを使用する場合、次の TLS 1.0 定義の CipherSuite もサポートします。

TLS 1.0 暗号スイート
TLS_RSA_EXPORT_WITH_RC4_40_MD5 { 0x00,0x03 }
TLS_RSA_WITH_RC4_128_MD5 { 0x00,0x04 }
TLS_RSA_WITH_RC4_128_SHA { 0x00,0x05 }
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 { 0x00,0x06 }
TLS_RSA_WITH_DES_CBC_SHA { 0x00,0x09 }
TLS_RSA_WITH_3DES_EDE_CBC_SHA { 0x00,0x0A }
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA { 0x00,0x62 }
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA { 0x00,0x64 }

注意

最初のバイト を使用して定義される暗号スイートは、0x00非プライベートであり、オープンな相互運用可能な通信に使用されます。 したがって、Windows NT 4.0 Service Pack 6 Microsoft TLS/SSL セキュリティ プロバイダーは、SSL 3.0 および TLS 1.0 で指定されている暗号スイートを使用して相互運用性を確認する手順に従います。

Schannel 固有のレジストリ キー

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「レジストリをバックアップおよび復元する方法」を参照Windows。

注意

CIPHERS キーまたは HASHES キーの内容に対する変更は、システムを再起動せずに直ちに有効になります。

SCHANNEL キー

レジストリ エディター (Regedt32.exe) を起動し、次のレジストリ キーを探します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

SCHANNEL\Protocols サブキー

システムが既定でネゴシエートされないプロトコル (TLS 1.1 や TLS 1.2 など) を使用するには 、Protocols キーの下の次のレジストリ キーで DisabledByDefault 値の DWORD 値データを 0x0 に変更します。

  • SCHANNEL\Protocols\TLS 1.1\Client
  • SCHANNEL\Protocols\TLS 1.1\Server
  • SCHANNEL\Protocols\TLS 1.2\Client
  • SCHANNEL\Protocols\TLS 1.2\Server

警告

Protocols キーのレジストリ キーの DisabledByDefault 値は、Schannel 資格情報のデータを含む構造で定義されている grbitEnabledProtocols 値よりも優先されません。 SCHANNEL_CRED

SCHANNEL\Ciphers サブキー

SCHANNEL キーの 下の暗号レジストリ キーは、DES や RC4 などの対称アルゴリズムの使用を制御するために使用されます。 暗号キーの有効なレジストリ キーを 次に示 します。

SCHANNEL Ciphers サブキーを次の形式で作成します。 SCHANNEL\(VALUE)\(VALUE/VALUE)

RC4 128/128

暗号サブキー: SCHANNEL\Ciphers\RC4 128/128

このサブキーは、128 ビット RC4 を参照します。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 または、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。 このレジストリ キーは、SGC 証明書を持つエクスポート可能なサーバーには適用されません。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_WITH_RC4_128_MD5
  • SSL_RSA_WITH_RC4_128_SHA
  • TLS_RSA_WITH_RC4_128_MD5
  • TLS_RSA_WITH_RC4_128_SHA

トリプル DES 168

暗号サブキー: SCHANNEL\Ciphers\Triple DES 168

このレジストリ キーは、ANSI X9.52 および Draft FIPS 46-3 で指定されている 168 ビットのトリプル DES を参照します。 このレジストリ キーは、エクスポート バージョンには適用されません。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 または、DWORD データを [データ] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_WITH_3DES_EDE_CBC_SHA

  • SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA

  • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA

    注意

    Vista の前にリリースWindowsバージョンWindows、キーは Triple DES 168/168 である必要があります

RC2 128/128

暗号サブキー: SCHANNEL\Ciphers\RC2 128/128

このレジストリ キーは、128 ビット RC2 を参照します。 エクスポート バージョンには適用されません。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

RC4 64/128

暗号サブキー: SCHANNEL\Ciphers\RC4 64/128

このレジストリ キーは、64 ビット RC4 を参照します。 エクスポート バージョンには適用されません (ただし、Microsoft Money で使用されます)。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

RC4 56/128

暗号サブキー: SCHANNEL\Ciphers\RC4 56/128

このレジストリ キーは、56 ビット RC4 を参照します。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD 値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

このアルゴリズムを無効にすると、次の値が有効に無効になります。

  • TLS_RSA_EXPORT1024_WITH_RC4_56_SHA

RC2 56/128

暗号サブキー: SCHANNEL\Ciphers\RC2 56/128

このレジストリ キーは、56 ビット RC2 を参照します。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

DES 56

暗号サブキー: SCHANNEL\Ciphers\DES 56/56

このレジストリ キーは、FIPS 46-2 で指定されている 56 ビット DES を参照します。 FIPS 140-1 暗号化Rsabase.dll検証プログラムRsaenh.dllファイルの実装が検証されます。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_DES_CBC_SHA

RC4 40/128

暗号サブキー: SCHANNEL\Ciphers\RC4 40/128

このレジストリ キーは、40 ビット RC4 を参照します。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_EXPORT_WITH_RC4_40_MD5
  • TLS_RSA_EXPORT_WITH_RC4_40_MD5

RC2 40/128

暗号サブキー: SCHANNEL\Ciphers\RC2 40/128

このレジストリ キーは、40 ビット RC2 を参照します。

この暗号アルゴリズムを許可するには、Enabled 値の DWORD値データを [有効] に 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。 Enabled 値を構成しない 場合 、既定値は有効になります。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
  • TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5

NULL

暗号サブキー: SCHANNEL\Ciphers\NULL

このレジストリ キーは暗号化を意味しません。 既定では、オフになっています。

暗号化を無効にする (すべての暗号アルゴリズムを禁止する) には、[有効] 値のDWORD 値データを [有効]に0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。

Hashes

暗号サブキー: SCHANNEL/Hashes

SCHANNEL キーの下にある Hashes レジストリ キーは、SHA-1 や MD5 などのハッシュ アルゴリズムの使用を制御するために使用されます。 Hashes キーの下の有効なレジストリ キー を次に示 します。

MD5

暗号サブキー: SCHANNEL\Hashes\MD5

このハッシュ アルゴリズムを許可するには、Enabled 値の DWORD値データを既定の値に変更 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_EXPORT_WITH_RC4_40_MD5
  • SSL_RSA_WITH_RC4_128_MD5
  • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
  • TLS_RSA_EXPORT_WITH_RC4_40_MD5
  • TLS_RSA_WITH_RC4_128_MD5
  • TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5

SHA

暗号サブキー: SCHANNEL\Hashes\SHA

このレジストリ キーは、FIPS 180-1 で指定されているセキュア ハッシュ アルゴリズム (SHA-1) を参照します。 FIPS 140-1 暗号化Rsabase.dll検証プログラムRsaenh.dllファイルの実装が検証されます。

このハッシュ アルゴリズムを許可するには、Enabled 値の DWORD値データを既定の値に変更 0xffffffff。 それ以外の場合は、DWORD 値データを [値] に 0x0。

このアルゴリズムを無効にすると、次の値が事実上禁止されます。

  • SSL_RSA_WITH_RC4_128_SHA
  • SSL_RSA_WITH_DES_CBC_SHA
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
  • SSL_RSA_EXPORT1024_WITH_RC4_56_SHA
  • TLS_RSA_WITH_RC4_128_SHA
  • TLS_RSA_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
  • TLS_RSA_EXPORT1024_WITH_RC4_56_SHA

KeyExchangeAlgorithms

暗号サブキー: SCHANNEL/KeyExchangeAlgorithms

SCHANNEL キーの下にある KeyExchangeAlgorithms レジストリ キーは、RSA などのキー交換アルゴリズムの使用を制御するために使用されます。 KeyExchangeAlgorithms キーの下の有効なレジストリ キーを次に示します。

PKCS

暗号サブキー: SCHANNEL\KeyExchangeAlgorithms\PKCS

このレジストリ キーは、キー交換および認証アルゴリズムとして RSA を参照します。

RSA を許可するには、Enabled 値の DWORD 値データを既定の値に変更 0xffffffff。 それ以外の場合は、DWORD データを次の値 0x0。

RSA を無効にすると、WINDOWS NT4 SP6 Microsoft TLS/SSL セキュリティ プロバイダーでサポートされているすべての RSA ベースの SSL および TLS 暗号スイートが無効になります。

FIPS 140-1 暗号スイート

Microsoft Base または拡張暗号化プロバイダーが提供する FIPS 46-3 または FIPS 46-2 および FIPS 180-1 アルゴリズムに対応する SSL 3.0 または TLS 1.0 暗号スイートのみを使用できます。

この記事では、それらを FIPS 140-1 暗号スイートと呼します。 具体的には、次のようになります。

  • SSL_RSA_WITH_DES_CBC_SHA
  • SSL_RSA_WITH_3DES_EDE_CBC_SHA
  • SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_DES_CBC_SHA
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA

ここで定義され、Windows NT 4.0 Service Pack 6 Microsoft TLS/SSL Security Provider および拡張暗号化プロバイダーでサポートされている FIPS 140-1 暗号スイートのみを使用するには、次のレジストリ キーで Enabled 値の DWORD 値データを 0x0 に 構成 します。

  • SCHANNEL\Ciphers\RC4 128/128
  • SCHANNEL\Ciphers\RC2 128/128
  • SCHANNEL\Ciphers\RC4 64/128
  • SCHANNEL\Ciphers\RC4 56/128
  • SCHANNEL\Ciphers\RC2 56/128
  • SCHANNEL\Ciphers\RC4 40/128
  • SCHANNEL\Ciphers\RC2 40/128
  • SCHANNEL\Ciphers\NULL
  • SCHANNEL\Hashes\MD5

次のレジストリ キーで Enabled値の DWORD 値データを構成して、次の 0xffffffff。

  • SCHANNEL\Ciphers\DES 56/56
  • SCHANNEL\Ciphers\Triple DES 168/168 (エクスポート バージョンでは適用できません)
  • SCHANNEL\Hashes\SHA
  • SCHANNEL\KeyExchangeAlgorithms\PKCS

FIPS 140-1 暗号スイートを使用したマスター シークレット計算

SSL 3.0 で FIPS 140-1 暗号スイートを使用する手順は、TLS 1.0 で FIPS 140-1 暗号スイートを使用する手順とは異なります。

SSL 3.0 では、計算の定義master_secret示します。

TLS 1.0 では、計算の定義master_secret示します。

各部分の意味は次のとおりです。

TLS 1.0 で FIPS 140-1 暗号スイートのみを使用するオプションを選択します。

この違いにより、暗号化スイートの許可セットが FIPS 140-1 暗号スイートのサブセットにのみ制限されている場合でも、SSL 3.0 の使用を禁止する場合があります。 その場合は、Enabled 値の DWORD 値データを[プロトコル] キーの0x0レジストリ キーの値に 変更 します。

  • SCHANNEL\Protocols\SSL 3.0\Client
  • SCHANNEL\Protocols\SSL 3.0\Server

警告

Protocols****キーの 下のこれらのレジストリ キーの Enabled 値データは、Schannel 資格情報のデータを含む構造で定義されている grbitEnabledProtocols 値よりも優先 SCHANNEL_CRED されます。 既定の [有効] の値のデータは 0xffffffff。

レジストリ ファイルの例

構成用のレジストリ ファイル コンテンツの 2 つの例については、この記事のセクションで説明します。 これらは Export.reg と Non-export.reg です。

エクスポート可能な Rasbase.dll ファイルと Schannel.dll ファイルを含む Windows NT 4.0 Service Pack 6 を実行しているコンピューターで Export.reg を実行し、コンピューターで TLS 1.0 FIPS 暗号スイートのみを使用します。

Windows NT 4.0 Service Pack 6 を実行しているコンピューターで、エクスポートできない Rasenh.dll ファイルと Schannel.dll ファイルが含まれる場合は、non-export.reg を実行して、コンピューターで TLS 1.0 FIPS 暗号スイートのみを使用してください。

SCHANNEL Schannel.dllで変更を認識するには、コンピューターを再起動する必要があります。

レジストリ設定を既定に戻す場合は 、SCHANNEL レジストリ キーと、その下にあるすべてのものを削除します。 これらのレジストリ キーが存在しない場合、Schannel.dll再起動時にキーが再構築されます。