拡張保護を使用したデータベース エンジンへの接続Connect to the Database Engine Using Extended Protection

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server では で始まる 拡張保護 SQL Server 2008 R2SQL Server 2008 R2がサポートされています。supports Extended Protection beginning with SQL Server 2008 R2SQL Server 2008 R2. 認証の拡張保護 とは、オペレーティング システムで実装されているネットワーク コンポーネントの機能です。Extended Protection for Authentication is a feature of the network components implemented by the operating system. 拡張保護 は、Windows 7 および Windows Server 2008 R2 でサポートされており、Extended Protection is supported in Windows 7 and Windows Server 2008 R2. 以前のオペレーティング システムでは、 拡張保護 MicrosoftMicrosoft がサービス パックに含まれています。Extended Protection is included in service packs for older MicrosoftMicrosoft operating systems. SQL ServerSQL Server の接続を 拡張保護を使用して確立することで、安全性を高めることができます。is more secure when connections are made using Extended Protection.

重要

既定では、Windows の 拡張保護 は有効になっていません。Windows does not enable Extended Protection by default. Windows で 拡張保護 を有効にする方法の詳細については、「 認証に対する保護の強化」を参照してください。For information about how to enable Extended Protection in Windows, see Extended Protection for Authentication.

拡張保護の説明Description of Extended Protection

拡張保護 では、認証リレー攻撃を防止するために、サービス バインドとチャネル バインドが使用されます。Extended Protection uses service binding and channel binding to help prevent an authentication relay attack. 認証リレー攻撃では、NTLM 認証を実行できるクライアント (Windows エクスプローラー、 MicrosoftMicrosoft Outlook、.NET SqlClient アプリケーションなど) が攻撃者のサーバー (悪意のある CIFS ファイル サーバーなど) に接続します。In an authentication relay attack, a client that can perform NTLM authentication (for example, Windows Explorer, MicrosoftMicrosoft Outlook, a .NET SqlClient application, etc.), connects to an attacker (for example, a malicious CIFS file server). 攻撃者は、そのクライアントの資格情報を使用してクライアントになりすまし、サービス (データベース エンジンDatabase Engine サービスのインスタンスなど) への認証を行います。The attacker uses the client's credentials to masquerade as the client and authenticate to a service (for example, an instance of the データベース エンジンDatabase Engine service).

この攻撃には次の 2 つのバリエーションがあります。There are two variations of this attack:

  • おびき寄せによる攻撃。クライアントが自ら攻撃者のサーバーに接続するようにおびき寄せられます。In a luring attack, the client is lured to voluntarily connect to the attacker.

  • なりすましによる攻撃。正当なサービスに接続しているつもりのクライアントが、汚染された DNS ルーティングや IP ルーティングによって、知らない間に攻撃者のサーバーにリダイレクトされます。In a spoofing attack, the client intends to connect to a valid service, but is unaware that one or both of DNS and IP routing are poisoned to redirect the connection to the attacker instead.

SQL ServerSQL Server では、 SQL ServerSQL Server インスタンスに対するこれらの攻撃を減らすために、サービス バインドとチャネル バインドがサポートされています。supports service binding and channel binding to help reduce these attacks on SQL ServerSQL Server instances.

サービス バインドService Binding

サービス バインドでは、接続しようとしている SQL ServerSQL Server サービスの署名付きサービス プリンシパル名 (SPN) を送信するようにクライアントに要求することで、おびき寄せによる攻撃に対処します。Service binding addresses luring attacks by requiring a client to send a signed service principal name (SPN) of the SQL ServerSQL Server service that the client intends to connect to. サービスでは、認証応答の一部として、パケットで受信した SPN がサービス自身の SPN と一致するかどうかの確認が行われます。As part of the authentication response, the service validates that the SPN received in the packet matches its own SPN. クライアントが攻撃者のサーバーに接続するようにおびき寄せられている場合は、パケットに攻撃者の署名付き SPN が含まれます。If a client is lured to connect to an attacker, the client will include the signed SPN of the attacker. そのため、攻撃者がパケットをリレーして本物の SQL ServerSQL Server サービスにクライアントとして認証を受けることはできません。The attacker cannot relay the packet to authenticate to the real SQL ServerSQL Server service as the client, because it would include the SPN of the attacker. サービス バインドのコストはごく小さく、1 回しか発生しませんが、サービス バインドではなりすましによる攻撃には対処できません。Service binding incurs a one-time, negligible cost, but it does not address spoofing attacks. サービス バインドが発生するのは、クライアント アプリケーションが SQL ServerSQL Serverへの接続に暗号化を使用しない場合です。Service Binding occurs when a client application does not use encryption to connect to the SQL ServerSQL Server.

チャネル バインドChannel Binding

チャネル バインドでは、クライアントと SQL ServerSQL Server サービス インスタンスとの間に、セキュリティで保護されたチャネル (Schannel) を確立します。Channel binding establishes a secure channel (Schannel) between a client and an instance of the SQL ServerSQL Server service. サービスでは、クライアントとサービス自身のチャネル固有のチャネル バインド トークン (CBT) を比較することにより、クライアントが本物かどうかが確認されます。The service verifies the authenticity of the client by comparing the client's channel binding token (CBT) specific to that channel, with its own CBT. チャネル バインドでは、おびき寄せによる攻撃となりすましによる攻撃の両方に対処できますが、Channel binding addresses both luring and spoofing attacks. すべてのセッション トラフィックのトランスポート層セキュリティ (TLS) 暗号化が必要になるため、実行時のコストが大きくなります。However, it incurs a larger runtime cost, because it requires Transport Layer Security (TLS) encryption of all the session traffic. チャネル バインドが発生するのは、暗号化がクライアントとサーバーのどちらで強制されているかにかかわらず、クライアント アプリケーションが暗号化を使用して SQL ServerSQL Serverに接続する場合です。Channel Binding occurs when a client application uses encryption to connect to the SQL ServerSQL Server, regardless of whether encryption is enforced by the client or by the server.

警告

SQL ServerSQL Server 向けの SQL ServerSQL Server および MicrosoftMicrosoft データ プロバイダーでは、SSL 3.0、TLS 1.0 がサポートされています。and MicrosoftMicrosoft data providers for SQL ServerSQL Server support TLS 1.0 and SSL 3.0. オペレーティング システムの SChannel 層を変更して別のプロトコル (TLS 1.1、TLS 1.2 など) を適用すると、 SQL ServerSQL Server への接続に失敗する可能性があります。If you enforce a different protocol (such as TLS 1.1 or TLS 1.2) by making changes in the operating system SChannel layer, your connections to SQL ServerSQL Server might fail.

オペレーティング システムのサポートOperating System Support

Windows による 拡張保護のサポートの詳細については、以下のリンク先を参照してください。The following links provide more information about how Windows supports Extended Protection:

[設定]Settings

サービス バインドとチャネル バインドに影響する SQL ServerSQL Server の接続設定は 3 つあります。There are three SQL ServerSQL Server connection settings that affect service binding and channel binding. これらの設定を構成するには、 SQL ServerSQL Server 構成マネージャーまたは WMI を使用します。これらの設定を表示するには、ポリシー ベースの管理の [サーバー プロトコル設定] ファセットを使用します。The settings can be configured by using the SQL ServerSQL Server Configuration Manager, or by using WMI, and can by viewed by using the Server Protocol Settings facet of Policy Based Management.

  • [強制的に暗号化]Force Encryption

    選択できる値は、 [オン][オフ] です。Possible values are On and Off. チャネル バインドを使用する場合は、 [強制的に暗号化][オン] に設定して、すべてのクライアントで暗号化が強制されるようにする必要があります。To use channel binding, Force Encryption must be set to On, and all clients will be forced to encrypt. この設定を [オフ] にした場合、保証されるのはサービス バインドだけになります。If it is Off, only service binding is guaranteed. [強制的に暗号化] は、 構成マネージャーの [MSSQLSERVER のプロトコルのプロパティ] SQL ServerSQL Server ([フラグ] タブ) にあります。Force Encryption is on the Protocols for MSSQLSERVER Properties (Flags Tab) in SQL ServerSQL Server Configuration Manager.

  • 拡張保護Extended Protection

    選択できる値は、 [オフ][許可] 、および [必須] です。Possible values are Off, Allowed, and Required. 拡張保護 変数を使用すると、各 インスタンスの 拡張保護 SQL ServerSQL Server レベルを構成できます。The Extended Protection variable lets users configure the Extended Protection level for each SQL ServerSQL Server instance. [拡張保護] は、 構成マネージャーの [MSSQLSERVER のプロトコルのプロパティ] SQL ServerSQL Server ([詳細設定] タブ) にあります。Extended Protection is on the Protocols for MSSQLSERVER Properties (Advanced Tab) in SQL ServerSQL Server Configuration Manager.

    • [オフ] に設定すると、 [拡張保護] は無効になります。When set to Off, Extended Protection is disabled. SQL ServerSQL Server のインスタンスは、クライアントが保護されているかどうかに関係なく、任意のクライアントからの接続を許可します。The instance of SQL ServerSQL Server will accept connections from any client regardless of whether the client is protected or not. [オフ] は、古いオペレーティング システムや修正プログラムの適用が解除されたオペレーティング システムと互換性がありますが、安全性は低くなります。Off is compatible with older and unpatched operating systems, but is less secure. この設定は、クライアント オペレーティング システムで拡張保護がサポートされていないことがわかっている場合に使用してください。Use this setting when you know that the client operating systems do not support extended protection.

    • [許可] に設定すると、 拡張保護 をサポートするオペレーティング システムからの接続に 拡張保護が必要になります。When set to Allowed, Extended Protection is required for connections from operating systems that support Extended Protection. 拡張保護 をサポートしないオペレーティング システムからの接続では 拡張保護が無視されます。Extended Protection is ignored for connections from operating systems that do not support Extended Protection. 保護されたクライアント オペレーティング システムで実行されている保護されていないクライアント アプリケーションからの接続は拒否されます。Connections from unprotected client applications that are running on protected client operating systems are rejected. この設定は、 [オフ] よりも安全性が高いですが、最も安全な設定ではありません。This setting is more secure than Off, but is not the most secure setting. この設定は、 拡張保護 をサポートするオペレーティング システムとサポートしないオペレーティング システムが混在する環境で使用します。Use this setting in mixed environments, where some operating systems support Extended Protection and some do not.

    • [必須] に設定すると、保護されたクライアント オペレーティング システム上の保護されているアプリケーションからの接続のみが許可されます。When set to Required, only connections from protected applications on protected operating systems are accepted. この設定は最も安全ですが、 拡張保護 をサポートしないオペレーティング システムやアプリケーションからの接続では、 SQL ServerSQL Serverに接続することができません。This setting is the most secure but connections from operating systems or applications that do not support Extended Protection will not be able to connect to SQL ServerSQL Server.

  • [承認された NTLM SPN]Accepted NTLM SPNs

    [承認された NTLM SPN] の変数は、サーバーに複数の SPN がある場合に必要です。The Accepted NTLM SPNs variable is needed when a server is known by more than one SPN. クライアントがサーバーへの接続に使用した有効な SPN がサーバーで認識されないと、サービス バインドが失敗します。When a client attempts to connect to the server by using a valid SPN that the server does not know, service binding will fail. この問題を回避するには、 [承認された NTLM SPN] を使用して、サーバーを表す複数の SPN を指定します。To avoid this problem, users can specify several SPNs that represent the server by using Accepted NTLM SPNs. [承認された NTLM SPN] には、一連の SPN をセミコロンで区切って指定します。Accepted NTLM SPNs is a series of SPNs separated my semicolons. たとえば、 MSSQLSvc/ HostName1.Contoso.com および MSSQLSvc/ HostName2.Contoso.comという SPN を許可するには、 [承認された NTLM SPN] ボックスに「 MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com 」と入力します。For example, to allow the SPNs MSSQLSvc/ HostName1.Contoso.com and MSSQLSvc/ HostName2.Contoso.com, type MSSQLSvc/HostName1.Contoso.com;MSSQLSvc/HostName2.Contoso.com in the Accepted NTLM SPNs box. 変数の最大長は 2048 文字です。The variable has a maximum length of 2,048 characters. [承認された NTLM SPN] は、 構成マネージャーの [MSSQLSERVER のプロトコルのプロパティ] SQL ServerSQL Server ([詳細設定] タブ)) にあります。Accepted NTLM SPNs is on the Protocols for MSSQLSERVER Properties (Advanced Tab) in SQL ServerSQL Server Configuration Manager.

データベース エンジンでの拡張保護の有効化Enabling Extended Protection for the Database Engine

拡張保護を使用するには、サーバーとクライアントの両方のオペレーティング システムで 拡張保護がサポートされていて、オペレーティング システムで 拡張保護 が有効になっている必要があります。To use Extended Protection, both the server and the client must have an operating system on that supports Extended Protection, and Extended Protection must be enabled on the operating system. オペレーティング システムで 拡張保護 を有効にする方法の詳細については、「 認証に対する保護の強化」を参照してください。For more information about how to enable Extended Protection for the operating system, see Extended Protection for Authentication.

SQL ServerSQL Server では で始まる 拡張保護 SQL Server 2008 R2SQL Server 2008 R2がサポートされています。supports Extended Protection beginning with SQL Server 2008 R2SQL Server 2008 R2. 以前のバージョンのについては、今後の更新によって一部で 拡張保護 SQL ServerSQL Server を使用できるようになります。Extended Protection for some earlier versions of SQL ServerSQL Server will be made available in future updates. サーバー コンピューターで 拡張保護 を有効にした後、次の手順に従って 拡張保護を有効にします。After enabling Extended Protection on the server computer, use the following steps to enable Extended Protection:

  1. [スタート] ボタンをクリックし、 [すべてのプログラム][Microsoft SQL Server] の順にポイントして、 [SQL Server 構成マネージャー] をクリックします。On the Start menu, choose All Programs, point to Microsoft SQL Server and then click SQL Server Configuration Manager.

  2. [SQL Server ネットワークの構成] を展開し、 [ _<_InstanceName > のプロトコル] を右クリックして、 [プロパティ] をクリックします。Expand SQL Server Network Configuration, and then right-click Protocols for _<_InstanceName*>*, and then click Properties.

  3. チャネル バインドとサービス バインドの両方について、 [詳細設定] タブで [拡張保護] を適切な値に設定します。For both channel binding and service binding, on the Advanced tab, set Extended Protection to the appropriate setting.

  4. サーバーに複数の SPN がある場合は、 [詳細設定] タブで [承認された NTLM SPN] フィールドを構成します。詳細については、「設定」セクションを参照してください。Optionally, when a server is known by more than one SPN, on the Advanced tab configure the Accepted NTLM SPNs field as described in the "Settings" section.

  5. チャネル バインドを使用する場合は、 [フラグ] タブで [強制的に暗号化][オン] に設定します。For channel binding, on the Flags tab, set Force Encryption to On.

  6. データベース エンジンDatabase Engine サービスを再開します。Restart the データベース エンジンDatabase Engine service.

その他の SQL Server コンポーネントの構成Configuring Other SQL Server Components

Reporting ServicesReporting Servicesの 構成方法の詳細については、「 Reporting Services での認証の拡張保護」を参照してください。For more information about how to configure Reporting ServicesReporting Services, see Extended Protection for Authentication with Reporting Services.

IIS を使用して HTTP 接続または HTTPS 接続経由で Analysis ServicesAnalysis Services データにアクセスする場合は、 Analysis ServicesAnalysis Services で IIS によって提供される拡張保護を利用できます。When using IIS to access Analysis ServicesAnalysis Services data using an HTTP or HTTPs connection, Analysis ServicesAnalysis Services can take advantage of Extended Protection provided by IIS. 拡張保護を使用するように IIS を構成する方法の詳細については、「 IIS 7.5 における拡張保護の構成」を参照してください。For more information about how to configure IIS to use Extended Protection, see Configure Extended Protection in IIS 7.5.

参照See Also

サーバー ネットワークの構成 Server Network Configuration
クライアント ネットワーク構成 Client Network Configuration
認証の拡張保護の概要 Extended Protection for Authentication Overview
拡張保護付き統合 Windows 認証Integrated Windows Authentication with Extended Protection