확장된 보호를 사용하여 데이터베이스 엔진에 연결Connect to the Database Engine Using Extended Protection

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).

이 공격에는 두 가지 변형이 있습니다.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. 이렇게 클라이언트가 공격자의 SPN을 포함하므로 공격자는 패킷을 릴레이해 실제 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. 서비스 바인딩은 한 번만 수행하면 되고 비용도 미미하지만 스푸핑 공격은 해결할 수 없습니다.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(채널 바인딩 토큰)를 자체 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 ServerMicrosoftMicrosoft 데이터 공급자는 TLS 1.0 및 SSL 3.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 연결 설정이 서비스 바인딩과 채널 바인딩에 영향을 줍니다.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 SPNAccepted 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.comMSSQLSvc/ HostName2.Contoso.comSPN을 허용하려면 허용되는 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. 변수의 최대 길이는 2,048자입니다.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