Schannel Specific Registry Keys
Important
This section, method, or task contains steps that tell you how to
modify the registry. However, serious problems might occur if you modify
the registry incorrectly. Therefore, make sure that you follow these
steps carefully. For added protection, back up the registry before you
modify it. Then, you can restore the registry if a problem occurs. For
more information about how to back up and restore the registry, click
the following article number to view the article in the Microsoft
Knowledge Base:
322756 How to back up and restore the registry in Windows
SCHANNEL Key
Start Registry Editor (Regedt32.exe), and locate the following key in the registry.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
SCHANNEL\Protocols SubKey
To enable the
use of the protocols that will not be negotiated by default (such as TLS
1.1 or TLS 1.2), change the DWORD value data of the
DisabledByDefault value to
0x0 in each of the following registry keys under the Protocols key:
- SCHANNEL\Protocols\TLS 1.1\Client
- SCHANNEL\Protocols\TLS 1.1\Server
- SCHANNEL\Protocols\TLS 1.2\Client
- SCHANNEL\Protocols\TLS 1.2\Server
WARNING: The
DisabledByDefault value in the registry keys under the
Protocols key does not take precedence over the
grbitEnabledProtocols value that is defined in the SCHANNEL_CRED structure that contains the data for an Schannel credential.
SCHANNEL\Ciphers Subkey
The
Ciphers registry key under the
SCHANNEL key is used to control the use of symmetric algorithms such as DES or RC4. The following are valid registry keys under the
Ciphers key.
SCHANNEL\Ciphers\RC4 128/128 Subkey:
RC4 128/128
This subkey refers to 128-bit RC4.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled
value, the default is enabled. This registry key does not apply to an
exportable server that does not possess an SGC certificate.
Disabling this algorithm effectively disallows:
- SSL_RSA_WITH_RC4_128_MD5
- SSL_RSA_WITH_RC4_128_SHA
- TLS_RSA_WITH_RC4_128_MD5
- TLS_RSA_WITH_RC4_128_SHA
SCHANNEL\Ciphers\Triple DES 168/168 Subkey:
Triple DES 168
This registry key refers to 168-bit Triple DES as specified in ANSI
X9.52 and Draft FIPS 46-3. This registry key does not apply to the
export version.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD data to
0x0. If you do not configure the
Enabled value, the default is enabled.
Disabling this algorithm effectively disallows:
- 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
SCHANNEL\Ciphers\RC2 128/128 Subkey:
RC2 128/128
This registry key refers to 128-bit RC2. It does not apply to the export version.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
SCHANNEL\Ciphers\RC4 64/128 Subkey:
RC4 64/128
This registry key refers to 64-bit RC4. It does not apply to the export version (but is used in Microsoft Money).
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
SCHANNEL\Ciphers\RC4 56/128 Subkey:
RC4 56/128
This registry key refers to 56-bit RC4.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
Disabling this algorithm effectively disallows:
- TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
SCHANNEL\Ciphers\RC2 56/128 Subkey:
RC2 56/128
This registry key refers to 56-bit RC2.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
SCHANNEL\Ciphers\RC2 56/56 Subkey:
DES 56
This registry key refers to 56-bit DES as specified in FIPS 46-2. Its
implementation in the Rsabase.dll and Rsaenh.dll files has been
validated under the FIPS 140-1 Cryptographic Module Validation Program.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
Disabling this algorithm effectively disallows:
- SSL_RSA_WITH_DES_CBC_SHA
- TLS_RSA_WITH_DES_CBC_SHA
SCHANNEL\Ciphers\RC4 40/128 Subkey:
RC4 40/128
This refers to 40-bit RC4.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
Disabling this algorithm effectively disallows:
- SSL_RSA_EXPORT_WITH_RC4_40_MD5
- TLS_RSA_EXPORT_WITH_RC4_40_MD5
SCHANNEL\Ciphers\RC2 40/128 Subkey:
RC2 40/128
This registry key refers to 40-bit RC2.
To allow this cipher algorithm, change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0. If you do not configure the
Enabled value, the default is enabled.
Disabling this algorithm effectively disallows:
- SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
- TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
SCHANNEL\Ciphers\NULL Subkey:
NULL
This registry key means no encryption. It is turned off by default.
To turn off encryption (disallow all cipher algorithms), change the DWORD value data of the
Enabled value to
0xffffffff, otherwise change the DWORD value data to
0x0.
SCHANNEL/Hashes Subkey
The
Hashes registry key under the
SCHANNEL key is used to control the use of hashing algorithms such as SHA-1 or MD5. The following are valid registry keys under the
Hashes key.
SCHANNEL\Hashes\MD5 Subkey:
MD5
To allow this hashing algorithm, change the DWORD value data of the
Enabled value to the default value
0xffffffff, otherwise change the DWORD value data to
0x0.
Disabling this algorithm effectively disallows:
- 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
SCHANNEL\Hashes\SHA Subkey:
SHA
This registry key refers to Secure Hash Algorithm (SHA-1), as specified
in FIPS 180-1. Its implementation in the Rsabase.dll and Rsaenh.dll
files has been validated under the FIPS 140-1 Cryptographic Module
Validation Program.
To allow this hashing algorithm, change the DWORD value data of the
Enabled value to the default value
0xffffffff, otherwise change the DWORD value data to
0x0.
Disabling this algorithm effectively disallows:
- 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
SCHANNEL/KeyExchangeAlgorithms Subkey
The
KeyExchangeAlgorithms registry key under the
SCHANNEL key is used to control the use of key exchange algorithms such as RSA. The following are valid registry keys under the
KeyExchangeAlgorithms key.
SCHANNEL\KeyExchangeAlgorithms\PKCS Subkey:
PKCS
This registry key refers to the RSA as the key exchange and authentication algorithms.
To allow RSA, change the DWORD value data of the
Enabled value to the default value
0xffffffff, otherwise change the DWORD data to
0x0.
Disabling RSA effectively disallows all RSA-based SSL and TLS cipher
suites supported by the Windows NT4 SP6 Microsoft TLS/SSL Security
Provider.
FIPS 140-1 Cipher Suites
You may want to use only those SSL 3.0 or TLS 1.0 cipher suites that
correspond to FIPS 46-3 or FIPS 46-2 and FIPS 180-1 algorithms provided
by the Microsoft Base or Enhanced Cryptographic Provider.
In this article, we refer to them as FIPS 140-1 cipher suites. Specifically, they are:
- 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
To use only FIPS 140-1 cipher suites as defined above, supported by
Windows NT 4.0 Service Pack 6 Microsoft TLS/SSL Security Provider with
Microsoft Base or Enhanced Cryptographic Provider, configure the DWORD value data of the
Enabled value in the following registry keys to
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
and configure the DWORD value data of the
Enabled value in the following registry keys to
0xffffffff:
- SCHANNEL\Ciphers\DES 56/56
- SCHANNEL\Ciphers\Triple DES 168/168" [not applicable in export version]
- SCHANNEL\Hashes\SHA
- SCHANNEL\KeyExchangeAlgorithms\PKCS
Master Secret Computation Using FIPS 140-1 Cipher Suites
The procedures for using the above FIPS 140-1 cipher suites in SSL 3.0
are different from those for using (the above) FIPS 140-1 cipher suites
in TLS 1.0.
In SSL 3.0, the following is the definition master_secret computation:
In TLS 1.0, the following is the definition master_secret computation:
where:
Selecting the Option to Use Only FIPS 140-1 Cipher Suites in TLS 1.0:
Because of the above difference, customers may want to prohibit the use
of SSL 3.0, even though the allowable set of cipher suites has been
limited to only the subset of FIPS 140-1 cipher suites. In that case,
change the DWORD value data of the
Enabled value to
0x0 in each of the following registry keys under the
Protocols key:
- SCHANNEL\Protocols\SSL 3.0\Client
- SCHANNEL\Protocols\SSL 3.0\Server
WARNING: The
Enabled value data in these registry keys under the
Protocols key take precedence over the
grbitEnabledProtocols value defined in the SCHANNEL_CRED structure containing the data for an Schannel credential. The default
Enabled value data is
0xffffffff.
Example Registry Files
Two examples of registry file content for purposes of configuration,
Export.reg and Non-export.reg, are provided in this section of the
article.
In a computer running Windows NT 4.0 Service Pack 6 with the exportable
Rasbase.dll and Schannel.dll files, run Export.reg to ensure that only
TLS 1.0 FIPS cipher suites are used by the computer.
In a computer running Windows NT 4.0 Service Pack 6 that includes the
non-exportable Rasenh.dll and Schannel.dll files, run Non-export.reg to
ensure that only TLS 1.0 FIPS cipher suites are used by the computer.
For the Schannel.dll file to recognize any changes under the
SCHANNEL registry key, you must restart the computer.
To return the registry settings to default, delete the
SCHANNEL
registry key and everything under it. If these registry keys are not
present, the Schannel.dll rebuilds the keys when you restart the
computer.