.NET Framework でのトランスポート層セキュリティ (TLS) のベスト プラクティス

トランスポート層セキュリティ (TLS) プロトコルは、インターネット経由でやり取りされる情報のプライバシーを保護することを目的として策定された業界標準です。 TLS 1.2 は、以前のバージョンよりセキュリティが強化された標準です。 TLS 1.2 はいずれ、最新リリースの標準 TLS 1.3 に取って代わられます。最新版は前のより速く、セキュリティが改善されています。 この記事では、TLS プロトコルを使う .NET Framework アプリケーションのセキュリティ保護に関する推奨事項を示します。

.NET Framework アプリケーションのセキュリティ保護を維持するため、TLS のバージョンをハードコーディングしないでください。 .NET Framework アプリケーションでは、オペレーティング システム (OS) がサポートしている TLS のバージョンを使う必要があります。

このドキュメントは次のような開発者を対象に書かれています。

次の推奨事項を検討してください。

  • TLS 1.2 の場合、アプリでは .NET Framework 4.7 以降のバージョンを対象にし、WCF アプリでは .NET Framework 4.7.1 以降のバージョンを対象とします。
  • TLS 1.3 の場合は、.NET Framework 4.8 以降を対象とします。
  • TLS のバージョンを指定しない。 OS に TLS のバージョンを決定させるようにコードを構成します。
  • コードの監査を徹底的に実行し、TLS または SSL のバージョンを指定していないことを確認する。

OS が TLS のバージョンを選ぶようにアプリを構成すると、次のようになります。

  • 将来的に追加される新しいプロトコル (TLS 1.3 など) を自動的に利用します。
  • セキュリティで保護されていないことが検出されたプロトコルを OS がブロックします。

コードの監査および変更を行う」では、コードの監査と更新について説明します。

この記事では、お使いのアプリの実行対象になっている .NET Framework のバージョンで使用できる最も強力なセキュリティを有効にする方法について説明します。 アプリでセキュリティ プロトコルとバージョンを明示的に設定すると、他の選択肢および .NET Framework と OS の既定の動作は使われなくなります。 お使いのアプリで TLS 1.2 接続をネゴシエートできるようにしたい場合、それより低いバージョンの TLS に明示的に設定すると、TLS 1.2 の接続は拒否されます。

プロトコルのバージョンをどうしてもハードコーディングしなければならない場合は、TLS 1.2 を指定することを強くお勧めします。 TLS 1.0 への依存関係の識別と除去に関するガイダンスについては、ホワイトペーパー「Solving the TLS 1.0 Problem」(TLS 1.0 の問題を解決する) をダウンロードしてください。

WCF は、.NET Framework 4.7 での既定値として TLS 1.0、1.1、1.2 をサポートしています。 .NET Framework 4.7.1 以降の WCF の既定値は、オペレーティング システムで構成されている TLS のバージョンです。 アプリケーションが SslProtocols.None で明示的に構成されている場合、WCF は、NetTcp トランスポートを使うとき、オペレーティング システムの既定の設定を使います。

このドキュメントに関してわからないことは、GitHub の問題「Transport Layer Security (TLS) best practices with the .NET Framework」(.NET Framework でのトランスポート層セキュリティ (TLS) のベスト プラクティス) で質問できます。

コードの監査および変更を行う

ASP.NET アプリケーションの場合、意図したバージョンの .NET Framework を使っていることを確認するには、web.config<system.web><httpRuntime targetFramework> 要素を調べます。

Windows フォームやその他のアプリケーションの場合は、「方法:.NET Framework のターゲット バージョンを指定する」を参照してください。

以下のセクションで説明するようにして、特定のバージョンの TLS や SSL を使っていないことを確認します。

アプリの対象が .NET Framework 4.7 以降のバージョンの場合

以下のセクションでは、特定のバージョンの TLS や SSL を使っていないことを確認する方法を説明します。

HTTP ネットワークの場合

ServicePointManager で .NET Framework 4.7 以降のバージョンを使用すると、OS で構成されている既定のセキュリティ プロトコルが使用されます。 OS による既定の選択を使用することが可能な場合は、ServicePointManager.SecurityProtocol プロパティの値を設定しないでください。これで既定の SecurityProtocolType.SystemDefault になります。

SecurityProtocolType.SystemDefault 設定により ServicePointManager でオペレーティング システムによって構成された既定のセキュリティ プロトコルが使用されるため、アプリケーションが実行されている OS に基づいて異なる方法で実行される可能性があります。 たとえば、Windows 7 SP1 では TLS 1.0 が使用される一方で、Windows 8 と Windows 10 では TLS 1.2 が使用されます。

HTTP ネットワークで、.NET Framework 4.7 以降のバージョンが対象の場合は、この記事の残りの部分は関係ありません。

TCP ソケット ネットワークの場合

.NET Framework 4.7 以降のバージョンを使う SslStream の既定の設定は、OS による最適なセキュリティ プロトコルとバージョンの選択です。 OS による既定の最適な選択を使用することが可能な場合は、明示的な SslProtocols パラメーターを受け取る SslStream メソッドのオーバーロードを使わないでください。 それ以外の場合は、SslProtocols.None を渡します。 Default を使わないことをお勧めします。SslProtocols.Default を設定すると、強制的に SSL 3.0/TLS 1.0 が使われて、TLS 1.2 は使われません。

SecurityProtocol プロパティの値を設定しないでください (HTTP ネットワークの場合)。

明示的な SslProtocols パラメーターを受け取る SslStream メソッドのオーバーロードを使わないでください (TCP ソケット ネットワークの場合)。 アプリの対象を .NET Framework 4.7 以降のバージョンに変更すると、推奨されるベスト プラクティスに従うようになります。

TCP ソケット ネットワークで、.NET Framework 4.7 以降のバージョンが対象の場合は、このトピックの残りの部分は関係ありません。

証明書資格情報によるトランスポート セキュリティを使う WCF TCP トランスポートの場合

WCF は、.NET Framework の他の部分と同じネットワーク スタックを使います。

4.7.1 が対象で、次の方法により明示的に構成されていない場合、WCF は既定で OS が最適なセキュリティ プロトコルを選択できるように構成されます。

  • アプリケーション構成ファイル。
  • または、アプリケーションのソース コード。

既定では、.NET Framework 4.7 以降のバージョンは、TLS 1.2 を使い、TLS 1.1 または TLS 1.0 での接続を許可するように構成されます。 OS による最適なセキュリティ プロトコルの選択を許可するように WCF を構成するには、SslProtocols.None を使うようにバインドを構成します。 これは SslProtocols で設定できます。 SslProtocols.None には Transport からアクセスできます。 NetTcpSecurity.Transport には Security からアクセスできます。

カスタム バインドを使っている場合:

  • OS による最適なセキュリティ プロトコルの選択を許可するように WCF を構成するには、SslProtocols.None を使うように SslProtocols を設定します。
  • または、構成パス system.serviceModel/bindings/customBinding/binding/sslStreamSecurity:sslProtocols で使われるプロトコルを構成します。

カスタム バインドを使用しておらずかつ、構成を使って WCF バインドを設定している場合は、構成パス system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocols で使われるプロトコルを設定します。

証明書資格情報を使用する WCF メッセージ セキュリティの場合

.NET Framework 4.7 以降のバージョンは、既定で、SecurityProtocol プロパティで指定されているプロトコルを使います。 AppContextSwitchSwitch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocolstrue に設定されていると、WCF は最適なプロトコル (最高で TLS 1.0 まで) を選択します。

アプリの対象がバージョン 4.7 より前の .NET Framework の場合

以下のセクションで説明するようにしてコードを監査し、特定のバージョンの TLS や SSL を設定していないことを確認します。

.NET Framework 4.6 ~ 4.6.2 で、WCF を使用していない場合

DontEnableSystemDefaultTlsVersionsAppContext スイッチを false に設定します。 「AppContext スイッチによるセキュリティの構成」をご覧ください。

.NET Framework 4.6 ~ 4.6.2 と証明書資格情報による TCP トランスポート セキュリティを使用する WCF の場合

OS の最新の修正プログラムをインストールする必要があります。 「セキュリティ更新プログラム」をご覧ください。

ユーザーがプロトコルのバージョンを明示的に構成していない場合、WCF フレームワークは、TLS 1.2 以下で使用可能な最高のプロトコルを自動的に選びます。 詳しくは、前の「証明書資格情報によるトランスポート セキュリティを使う WCF TCP トランスポートの場合」をご覧ください。

.NET Framework 3.5 から 4.5.2 で、WCF を使用していない場合

お使いのアプリを .NET Framework 4.7 以降のバージョンにアップグレードすることをお勧めします。 アップグレードできない場合は、以下の手順を実行します。

  • SchUseStrongCrypto および SystemDefaultTlsVersions レジストリ エントリの値を 1 に設定します。 「Windows レジストリによるセキュリティの構成」をご覧ください。 .NET Framework 3.5 は、明示的な TLS の値が渡された場合にのみ、SchUseStrongCrypto フラグをサポートします。

  • .NET Framework 3.5 を実行している場合は、プログラムで TLS 1.2 を指定できるように、ホット パッチをインストールする必要があります。

    KB3154518 信頼性ロールアップ HR-1605 - Windows 7 SP1 および Server 2008 R2 SP1 の .NET Framework 3.5.1 に含まれる TLS システムの既定バージョンのサポート
    KB3154519 信頼性ロールアップ HR-1605 - Windows Server 2012 の .NET Framework 3.5 に含まれる TLS システムの既定バージョンのサポート
    KB3154520 信頼性ロールアップ HR-1605 - Windows 8.1 および Windows Server 2012 R2 の .NET Framework 3.5 に含まれる TLS システムの既定バージョンのサポート
    KB3156421 Windows の .NET Framework 4.5.2 および 4.5.1 に対する 1605 修正プログラムロールアップ 3154521

.NET Framework 3.5 ~ 4.5.2 と証明書資格情報による TCP トランスポート セキュリティを使用する WCF の場合

これらのバージョンの WCF フレームワークは、SSL 3.0 と TLS 1.0 を使うようにハードコーディングされています。 これらの値は変更できません。 TLS 1.1 および 1.2 を使うには、更新して対象を NET Framework 4.6 以降のバージョンに変更する必要があります。

アプリの対象が .NET Framework 3.5 の場合

.NET または OS にセキュリティ プロトコルを選択させるのではなく、明示的にセキュリティ プロトコルを設定する必要がある場合は、SecurityProtocolTypeExtensions および SslProtocolsExtension 列挙型をコードに追加します。 SecurityProtocolTypeExtensions および SslProtocolsExtension には、Tls12Tls11SystemDefault に対する値が含まれます。 詳細については、「Windows 8.1 と Windows Server 2012 R2 上の .NET Framework 3.5 に含まれる TLS システムの既定のバージョンのサポート」を参照してください。

AppContext スイッチでセキュリティを構成する (.NET Framework 4.6 以降のバージョンの場合)

このセクションで説明する AppContext スイッチは、お使いのアプリの対象または実行環境が .NET Framework 4.6 以降のバージョンである場合に関係します。 既定によるものか、または明示的な設定によるものかに関係なく、可能な場合にはこれらのスイッチを false にする必要があります。 一方または両方のスイッチでセキュリティを構成する必要がある場合は、コードでセキュリティ プロトコルの値を指定しないでください。指定すると、スイッチの設定はオーバーライドされます。

HTTP ネットワーク (ServicePointManager) または TCP ソケット ネットワーク (SslStream) のどちらを使っている場合でも、スイッチの効果は同じです。

Switch.System.Net.DontEnableSchUseStrongCrypto

Switch.System.Net.DontEnableSchUseStrongCrypto の値を false に設定すると、アプリは強力な暗号を使うようになります。 DontEnableSchUseStrongCryptofalse にすると、安全性の高いネットワーク プロトコル (TLS 1.2 および TLS 1.1) が使われ、セキュリティ保護されていないプロトコルはブロックされます。 詳しくは、「SCH_USE_STRONG_CRYPTO フラグ」をご覧ください。 値 true は、アプリの強力な暗号を無効にします。 このスイッチは、アプリケーション内のクライアント (送信) 接続にのみ影響します。

アプリの対象が .NET Framework 4.6 以降のバージョンの場合、このスイッチの既定値は false です。 これは、推奨されるセキュリティ保護が有効な既定値です。 アプリの実行環境が .NET Framework 4.6 であっても、以前のバージョンが対象になっている場合は、このスイッチの既定値は true です。 その場合は、false に明示的に設定する必要があります。

強力な暗号化をサポートしておらず、アップグレードできない、レガシ サービスに接続する必要がある場合は、DontEnableSchUseStrongCrypto の値を常に true にする必要があります。

Switch.System.Net.DontEnableSystemDefaultTlsVersions

Switch.System.Net.DontEnableSystemDefaultTlsVersions の値を false に設定すると、お使いのアプリはオペレーティング システムによるプロトコルの選択を許可するようになります。 値を true にすると、アプリは .NET Framework によって選択されたプロトコルを使います。

アプリの対象が .NET Framework 4.7 以降のバージョンの場合、このスイッチの既定値は false です。 これは、推奨されるセキュリティ保護が有効な既定値です。 アプリの実行環境が .NET Framework 4.7 以降のバージョンであっても、以前のバージョンが対象になっている場合は、このスイッチの既定値は true です。 その場合は、false に明示的に設定する必要があります。

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols の値を false に設定すると、お使いのアプリケーションは、証明書資格情報を使うメッセージ セキュリティに対して ServicePointManager.SecurityProtocols で定義されている値を使うようになります。 値が true のときは、TLS1.0 以下で利用可能な最も高いプロトコルを使います。

.NET Framework 4.7 以降のバージョンを対象とするアプリケーションでは、この値の既定値は false です。 .NET Framework 4.6.2 以前のバージョンを対象とするアプリケーションでは、この値の既定値は true です。

Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions

Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions の値を false に設定すると、オペレーティング システムによるプロトコルの選択を許可するように既定の構成が設定されます。 値が true のときは、TLS1.2 以下で利用可能な最も高いプロトコルに既定値が設定されます。

.NET Framework 4.7.1 以降のバージョンを対象とするアプリケーションでは、この値の既定値は false です。 .NET Framework 4.7 以前のバージョンを対象とするアプリケーションでは、この値の既定値は true です。

TLS プロトコルの詳細については、「Mitigation:TLS Protocols (軽減策: TLS プロトコル)」をご覧ください。 AppContext スイッチについて詳しくは、「<AppContextSwitchOverrides> Element」をご覧ください。

Windows レジストリでセキュリティを構成する

警告

レジストリ キーを設定すると、システム上のすべてのアプリケーションに影響します。 この方法は、マシンを完全に制御していて、レジストリの変更を制御できる場合にのみ使用します。

AppContext スイッチの一方または両方を設定できない場合は、このセクションで説明する Windows レジストリ キーにより、アプリが使うセキュリティ プロトコルを制御することができます。 .NET Framework 4.5.2 以前のバージョンでアプリを実行している場合、または構成ファイルを編集できない場合は、一方または両方の AppContext スイッチを使用できないことがあります。 レジストリでセキュリティを構成する場合は、コードでセキュリティ プロトコルの値を指定しないでください。指定すると、レジストリ設定はオーバーライドされます。

レジストリ キーの名前は対応する AppContext スイッチの名前に似ていますが、名前の前に DontEnable が付いていません。 たとえば、AppContext スイッチ DontEnableSchUseStrongCrypto に対応するレジストリ キーの名前は SchUseStrongCrypto です。

これらのキーは、最新のセキュリティ修正プログラムが適用されているすべての .NET Framework のバージョンで使用できます。 「セキュリティ更新プログラム」をご覧ください。

HTTP ネットワーク (ServicePointManager) または TCP ソケット ネットワーク (SslStream) のどちらを使っている場合でも、以下で説明するすべてのレジストリ キーの効果は同じです。

SchUseStrongCrypto

HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SchUseStrongCrypto レジストリ エントリの値は DWORD 型です。 値を 1 に設定すると、アプリは強力な暗号を使うようになります。 強力な暗号では、安全性の高いネットワーク プロトコル (TLS 1.2 および TLS 1.1) が使われ、セキュリティ保護されていないプロトコルはブロックされます。 値 0 は、強力な暗号を無効にします。 詳しくは、「SCH_USE_STRONG_CRYPTO フラグ」をご覧ください。 このレジストリ設定は、アプリケーション内のクライアント (送信) 接続にのみ影響します。

アプリの対象が .NET Framework 4.6 以降のバージョンの場合、このキーの既定値は 1 です。 これは、推奨されるセキュリティ保護が有効な既定値です。 アプリの対象が .NET Framework 4.5.2 以前のバージョンの場合、このキーの既定値は 0 です。 その場合は、値を 1 に明示的に設定する必要があります。

強力な暗号化をサポートしておらず、アップグレードできない、レガシ サービスに接続する必要がある場合は、このキーの値を常に 0 にする必要があります。

SystemDefaultTlsVersions

HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SystemDefaultTlsVersions レジストリ エントリの値は DWORD 型です。 値を 1 に設定すると、お使いのアプリはオペレーティング システムによるプロトコルの選択を許可するようになります。 値を 0 にすると、アプリは .NET Framework によって選択されたプロトコルを使います。

<VERSION> は、v4.0.30319 (.NET Framework 4 以降の場合) または v2.0.50727 (.NET Framework 3.5 の場合) にする必要があります。

アプリの対象が .NET Framework 4.7 以降のバージョンの場合、このキーの既定値は 1 です。 これは、推奨されるセキュリティ保護が有効な既定値です。 アプリの対象が .NET Framework 4.6.1 以前のバージョンの場合、このキーの既定値は 0 です。 その場合は、値を 1 に明示的に設定する必要があります。

詳細については、「Windows 10 Version 1511 および Windows Server 2016 Technical Preview 4 用の累積的な更新プログラム(2016 年 5 月 10 日)」をご覧ください。

.NET Framework 3.5.1 の場合について詳しくは、「Windows 7 SP1 と Server 2008 R2 SP1 上の .NET Framework 3.5.1 に含まれている TLS システムの既定のバージョンのサポート」を参照してください。

次の .REG ファイルは、レジストリ エントリとそのバリアントを最も安全な値に設定します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

Windows レジストリで Schannel プロトコルを構成する

レジストリを使って、クライアントやサーバー アプリがネゴシエートするプロトコルをきめ細かく制御することができます。 アプリのネットワークは Schannel (Secure Channel (セキュリティで保護されたチャネル) の別名) を通してやり取りされます。 Schannel を構成することにより、アプリの動作を構成することができます。

最上位は HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols レジストリ キーです。 そのキーの下に、SSL 2.0SSL 3.0TLS 1.1TLS 1.2 のセットで任意のサブキーを作成できます。 これらの各サブキーの下に、サブキー ClientServer の一方または両方を作成できます。 Client および Server の下には、DWORD 値 DisabledByDefault (0 または 1) および Enabled (0 または 1) を作成できます。

SCH_USE_STRONG_CRYPTO フラグ

有効になっている場合 (AppContext スイッチまたは Windows Registry では既定)、.NET Framework が SCH_USE_STRONG_CRYPTO フラグを使用すると、アプリはサーバーへの TLS 接続を開始します。 .NET Framework では、Schannel にフラグを渡して、既知の脆弱な暗号アルゴリズム、暗号スイート、および相互運用性向上のために他で有効になっている可能性のある TLS/SSL プロトコルのバージョンを無効にするよう指示します。 詳細については次を参照してください:

SCH_USE_STRONG_CRYPTO フラグは、ユーザーが SecurityProtocolType または SslProtocolsTls11、または Tls12 列挙値を明示的に使ったときも、クライアント (送信) 接続用に Schannel に渡されます。 この SCH_USE_STRONG_CRYPTO フラグが使用されるのは、アプリケーションがクライアントの役割を果たす接続のみです。 アプリケーションがサーバーの役割を果たすときには、コンピューター全体の Schannel レジストリ設定を構成することで、脆弱なプロトコルとアルゴリズムを無効にすることができます。

セキュリティ更新プログラム

この記事のベスト プラクティスに従うには、最新のセキュリティ更新プログラムがインストールされている必要があります。 これらの更新プログラムをインストールすると、.NET Framework 4.7 以降の高度な機能を利用できるようになります。 最新のセキュリティ更新プログラムは、お使いのアプリが .NET Framework 4.7 以降のバージョンで実行する場合に重要です (対象が以前のバージョンであっても)。

オペレーティング システムが最適なバージョンの TLS を選んで使えるように .NET Framework を更新するには、少なくとも次のものをインストールする必要があります。

参照:

TLS 1.2 のサポート

アプリが TLS 1.2 をネゴシエートするには、OS と .NET Framework の両方のバージョンが TLS 1.2 をサポートしている必要があります。

TLS 1.2 をサポートするためのオペレーティング システムの要件

TLS 1.2 と TLS 1.1 の一方または両方をサポートするシステムでこれらを有効化または再有効化する方法については、「Transport Layer Security (TLS) registry settings」(トランスポート層セキュリティ (TLS) のレジストリ設定) をご覧ください。

OS TLS 1.2 のサポート
Windows 10
Windows Server 2016
サポートされていて、既定で有効。
Windows 8.1
Windows Server 2012 R2
サポートされていて、既定で有効。
Windows 8.0
Windows Server 2012
サポートされていて、既定で有効。
Windows 7 SP1
Windows Server 2008 R2 SP1
サポートされているが、既定では無効。 TLS 1.2 を有効にする方法について詳しくは、「Transport Layer Security (TLS) registry settings」(トランスポート層セキュリティ (TLS) のレジストリ設定) Web ページをご覧ください。
Windows Server 2008 TLS 1.2 および TLS 1.1 のサポートには、更新プログラムが必要。 「Windows Server 2008 SP2 に TLS 1.1 および TLS 1.2 のサポートを追加する更新プログラム」をご覧ください。
Windows Vista サポートされていません。

Windows の各バージョンにおいて既定で有効にされる TLS/SSL プロトコルについては、「Protocols in TLS/SSL (Schannel SSP)」(TLS/SSL でのプロトコル (Schannel SSP)) をご覧ください。

.NET Framework 3.5 で TLS 1.2 をサポートするための要件

次の表では、.NET Framework 3.5 で TLS 1.2 をサポートするために必要な OS の更新プログラムを示します。 すべての OS 更新プログラムを適用することをお勧めします。

OS .NET Framework 3.5 で TLS 1.2 をサポートするために必要な最低限の更新プログラム
Windows 10
Windows Server 2016
Windows 10 Version 1511 および Windows Server 2016 Technical Preview 4 用の累積的な更新プログラム(2016 年 5 月 10 日)
Windows 8.1
Windows Server 2012 R2
Windows 8.1 および Windows Server 2012 R2 の .NET Framework 3.5 に含まれる TLS システムの既定バージョンのサポート
Windows 8.0
Windows Server 2012
Windows Server 2012 の .NET Framework 3.5 に含まれる TLS システムの既定バージョンのサポート
Windows 7 SP1
Windows Server 2008 R2 SP1
Windows 7 SP1 および Server 2008 R2 SP1 の .NET Framework 3.5.1 に含まれる TLS システムの既定バージョンのサポート
Windows Server 2008 Windows Vista SP2 および Server 2008 SP2 の .NET Framework 2.0 SP2 に含まれる TLS システムの既定バージョンのサポート
Windows Vista サポートなし