Microsoft SQL Server 대한 TLS 1.2 지원

적용 대상: SQL Server
원래 KB 번호: 3135244

소개

이 문서에서는 Windows, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 및 SQL Server 2008 R2에서 SQL Server 2017에 대한 TLS 1.2 지원을 사용하도록 Microsoft가 릴리스하는 업데이트에 대한 정보를 제공합니다. 이 문서에서는 지원되는 클라이언트 공급자도 나열합니다. SQL Server 2016, SQL Server 2017 및 SQL Server 2019는 업데이트 없이 TLS 1.2를 지원합니다.

SSL(Secure Sockets Layer) 및 이전 버전의 TLS(전송 계층 보안)에 대해 알려진 몇 가지 취약성이 보고되었습니다. 보안 통신을 위해 TLS 1.2로 업그레이드하는 것이 좋습니다.

중요

Microsoft TDS 구현에 대해 알려진 취약성이 보고되지 않았습니다. SQL Server 클라이언트와 SQL Server 데이터베이스 엔진 간에 사용되는 통신 프로토콜입니다. TLS 1.0의 Microsoft Schannel 구현(이 문서의 게시 날짜를 기준으로 Microsoft에 보고된 알려진 취약성 관련)은 2015년 11월 24일 Windows 보안 상태 업데이트에서 TLS 1.0의 Schannel 구현에 요약되어 있습니다.

이 업데이트가 필요한지 여부를 아는 방법

다음 표를 사용하여 현재 버전의 SQL Server TLS 1.2를 이미 지원하는지 또는 TLS 1.2 지원을 사용하도록 설정하기 위해 업데이트를 다운로드해야 하는지 여부를 확인합니다. 테이블의 다운로드 링크를 사용하여 환경에 적용할 수 있는 서버 업데이트를 가져옵니다.

참고

이 표에 나열된 빌드보다 뒷부분에 있는 빌드도 TLS 1.2를 지원합니다.

SQL Server 릴리스 TLS 1.2를 지원하는 초기 빌드/릴리스 TLS 1.2 지원을 사용하는 현재 업데이트 추가 정보
SQL Server 2014 SP1 CU 12.0.4439.1

SP1 CU5
KB3130926 - SQL Server 2014 SP1의 누적 업데이트 5

참고: KB3130926 이제 TLS 1.2 지원 및 현재까지 릴리스된 모든 핫픽스를 포함하는 2014 SP1(CU13 - KB4019099)에 대해 생성된 마지막 CU를 설치합니다. 필요한 경우 CU5는 Windows 업데이트 카탈로그에서 사용할 수 있습니다.

참고: TLS 1.2 지원은 2014 SP22014 SP3에서도 사용할 수 있습니다.
KB3052404 - 수정: 전송 계층 보안 프로토콜 버전 1.2를 사용하여 SQL Server 2014 또는 SQL Server 2012를 실행하는 서버에 연결할 수 없습니다.
SQL Server 2014 SP1 GDR 12.0.4219.0

SP1 GDR TLS 1.2 업데이트
2014 SP1 GDR에 대한 TLS 1.2 지원은 최신 누적 GDR 업데이트- KB4019091 사용할 수 있습니다.

참고: TLS 1.2 지원은 2014 SP22014 SP3에서도 사용할 수 있습니다.
SQL Server 2014 RTM CU 12.0.2564.0

RTM CU12
KB3130923 - 2014년 SQL Server 누적 업데이트 12

참고: KB3130923 이제 TLS 1.2 지원 및 현재까지 릴리스된 모든 핫픽스를 포함하는 2014 RTM(CU14 - KB3158271 )에 대해 릴리스된 마지막 CU를 설치합니다. 필요한 경우 CU12는 Windows 업데이트 카탈로그에서 사용할 수 있습니다.

참고: TLS 1.2 지원은 2014 SP22014 SP3에서도 사용할 수 있습니다.
KB3052404 - 수정: 전송 계층 보안 프로토콜 버전 1.2를 사용하여 SQL Server 2014 또는 SQL Server 2012를 실행하는 서버에 연결할 수 없습니다.
SQL Server 2014 RTM GDR 12.0.2271.0

RTM GDR TLS 1.2 업데이트
SQL 2014 RTM에 대한 TLS 지원은 현재 2014 SP2 및 2014 SP3설치하는 경우에만 사용할 수 있습니다.
SQL Server 2012 SP3 GDR 11.0.6216.27

SP3 GDR TLS 1.2 업데이트
SQL Server 2012 SP3 GDR에 대한 보안 업데이트 설명: 2018년 1월 16일

참고: TLS 1.2 지원은 2012 SP4에서도 사용할 수 있습니다.
SQL Server 2012 SP3 CU 11.0.6518.0

SP1 CU3
KB3123299 - SQL Server 2012 SP3의 누적 업데이트 1

참고: KB3123299 이제 TLS 1.2 지원 및 현재까지 릴리스된 모든 핫픽스를 포함하는 2012 SP3(CU10 - KB4025925)에 대해 릴리스된 마지막 CU를 설치합니다. 필요한 경우 CU1은 Windows 업데이트 카탈로그에서 사용할 수 있습니다.

참고: TLS 1.2 지원은 2012 SP4에서도 사용할 수 있습니다.
KB3052404 - 수정: 전송 계층 보안 프로토콜 버전 1.2를 사용하여 SQL Server 2014 또는 SQL Server 2012를 실행하는 서버에 연결할 수 없습니다.
SQL Server 2012 SP2 GDR 11.0.5352.0

SP2 GDR TLS 1.2 업데이트
2012 SP2 GDR에 대한 TLS 1.2 지원은 최신 누적 GDR 업데이트인 KB3194719 사용할 수 있습니다.

TLS 1.2 지원은 2012 SP32012 SP4에서도 사용할 수 있습니다.
SQL Server 2012 SP2 CU 11.0.5644.2

SP2 CU10
KB3120313 - SQL Server 2012 SP2의 누적 업데이트 10.

참고: KB3120313 이제 TLS 1.2 지원 및 현재까지 릴리스된 모든 핫픽스를 포함하는 2012 SP2(CU16 - KB3205054)에 대해 릴리스된 마지막 CU를 설치합니다. 필요한 경우 CU1은 Windows 업데이트 카탈로그에서 사용할 수 있습니다. 참고: TLS 1.2 지원은 2012 SP32012 SP4에서도 사용할 수 있습니다.
KB3052404 - 수정: 전송 계층 보안 프로토콜 버전 1.2를 사용하여 SQL Server 2014 또는 SQL Server 2012를 실행하는 서버에 연결할 수 없습니다.
SQL Server 2008 R2 SP3(x86/x64만 해당) 10.50.6542.0

SP2 TLS 1.2 업데이트
TLS 1.2 지원은 SQL Server 2008 R2 SP3 - KB4057113 대한 최신 누적 업데이트에서 사용할 수 있습니다.
SQL Server 2008 R2 SP2 GDR(IA-64만 해당) 10.50.4047.0

SP2 TLS 1.2 업데이트
SQL Server 2008 R2 SP2 GDR(IA-64) TLS 1.2 업데이트
SQL Server 2008 R2 SP2 CU(IA-64만 해당) 10.50.4344.0

SP2 TLS 1.2 업데이트
SQL Server 2008 R2 SP2 GDR(IA-64) TLS 1.2 업데이트
SQL Server 2008 SP4(x86/x64만 해당) 10.0.6547.0

SP4 TLS 1.2 업데이트
TLS 1.2 지원은 SQL Server 2008 SP4 - KB4057114(x86/x64만 해당)에 대한 최신 누적 업데이트에서 사용할 수 있습니다.
SQL Server 2008 SP3 GDR(IA-64만 해당) 10.0.5545.0

SP3 TLS 1.2 업데이트
SQL Server 2008 SP3 GDR(IA-64) TLS 1.2 업데이트
SQL Server 2008 SP3 CU(IA-64만 해당) 10.0.5896.0

SP3 TLS 1.2 업데이트
SQL Server 2008 SP3 CU(IA-64) TLS 1.2 업데이트

클라이언트 구성 요소 다운로드

다음 표를 사용하여 사용자 환경에 적용할 수 있는 클라이언트 구성 요소 및 드라이버 업데이트를 다운로드합니다.

클라이언트 구성 요소/드라이버 TLS 1.2 지원으로 업데이트
SQL Server 2008/2008 R2용 SQL Server Native Client 10.0(x86/x64/IA64) Microsoft SQL Server 2008 및 SQL Server 2008 R2 Native Client
SQL Server Native Client 2012/2014년 SQL Server 11.0(x86/x64) Microsoft SQL Server 2012 Native Client - QFE
MDAC 클라이언트 구성 요소(Sqlsrv32.dll 및 Sqloledb.dll) Windows 10, 버전 1809 대한 서비스 스택 업데이트: 2020년 11월 10일

SQL Server TLS 1.2를 사용하는 데 필요한 추가 수정 사항

TLS 1.2를 사용하기 위해 웹 서비스 작업과 같은 TLS 1.2 지원이 필요한 .NET 엔드포인트를 사용하는 데이터베이스 메일 및 특정 SSIS 구성 요소와 같은 SQL Server 기능을 사용하도록 설정하려면 다음 .NET 핫픽스 롤업을 설치해야 합니다.

운영 체제 .NET Framework 버전 TLS 1.2 지원으로 업데이트
Windows 7 서비스 팩 1, Windows 2008 R2 서비스 팩 1 3.5.1 .NET Framework 버전 3.5.1에 포함된 TLS v1.2 지원
Windows 8 RTM, Windows 2012 RTM 3.5 .NET Framework 버전 3.5에 포함된 TLS v1.2 지원
Windows 8.1, Windows 2012 R2 SP1 3.5 SP1 Windows 8.1 및 Windows Server 2012 R2의 .NET Framework 버전 3.5 SP1에 포함된 TLS v1.2 지원

질문과 대답

  • TLS 1.1은 SQL Server 2016 이상 버전에서 지원되는가요?

    예. SQL Server 2016, windows의 SQL Server 2017 및 Windows 버전의 SQL Server 2019는 TLS 1.0에서 TLS 1.2 지원으로 제공됩니다. 클라이언트-서버 통신에 TLS 1.2만 사용하려면 TLS 1.0 및 1.1을 사용하지 않도록 설정해야 합니다.

  • SQL Server 2019에서 TLS 1.0 또는 1.1 또는 1.2만 사용하여 연결을 허용하나요?

    SQL Server 2019는 SQL Server 2016 및 SQL Server 2017과 동일한 수준의 지원을 받고 SQL Server 2019는 이전 버전의 TLS를 지원합니다. SQL Server 2019 RTM은 TLS 1.2 지원과 함께 제공되며 TLS 1.2 지원을 사용하도록 설정하기 위해 다른 업데이트 또는 수정이 필요하지 않습니다.

  • TDS는 알려진 취약성의 영향을 받나요?

    Microsoft TDS 구현에 대해 알려진 취약성이 보고되지 않았습니다. 여러 표준 적용 조직에서 암호화된 통신 채널에 TLS 1.2를 사용하도록 의무화하고 있기 때문에 Microsoft는 광범위한 SQL Server 설치 기반에 대한 TLS 1.2에 대한 지원을 릴리스하고 있습니다.

  • TLS 1.2 업데이트는 고객에게 어떻게 배포되나요?

    이 문서에서는 TLS 1.2를 지원하는 적절한 서버 및 클라이언트 업데이트에 대한 다운로드 링크를 제공합니다.

  • TLS 1.2는 2005년 SQL Server 지원하나요?

    TLS 1.2 지원은 SQL Server 2008 이상 버전에만 제공됩니다.

  • SSL 3.0 및 TLS 1.0이 서버에서 비활성화된 경우 SSL/TLS를 사용하지 않는 고객은 영향을 받나요?

    예. SQL Server 보안 통신 채널이 사용되지 않더라도 로그인하는 동안 사용자 이름과 암호를 암호화합니다. 이 업데이트는 보안 통신을 사용하지 않고 서버에서 TLS 1.2를 제외한 다른 모든 프로토콜이 사용하지 않도록 설정된 모든 SQL Server 인스턴스에 필요합니다.

  • TLS 1.2를 지원하는 Windows Server 버전은 무엇입니까?

    Windows Server 2008 R2 이상 버전은 TLS 1.2를 지원합니다.

  • SQL Server 통신에 TLS 1.2를 사용하도록 설정하는 올바른 레지스트리 설정은 무엇인가요?

    올바른 레지스트리 설정은 다음과 같습니다.

    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

    이러한 설정은 서버 및 클라이언트 컴퓨터 모두에 필요합니다. 및 Enabled 설정은 DisabledByDefault Windows 7 클라이언트 및 Windows Server 2008 R2 서버에서 만들어야 합니다. Windows 8 이상 버전의 클라이언트 운영 체제 또는 Windows Server 2012 서버 이상 버전의 서버 운영 체제에서는 TLS 1.2를 이미 사용하도록 설정해야 합니다. OS 릴리스와 독립적이어야 하는 Windows 레지스트리에 대한 배포 정책을 구현하는 경우 언급된 레지스트리 키를 정책에 추가하는 것이 좋습니다.

알려진 문제

  • 문제 1

    SQL Server 2008, 2008 R2, 2012 또는 2014에 대한 수정 사항을 적용한 후에는 SSMS(SQL Server Management Studio), 보고서 서버 및 보고서 관리자가 데이터베이스 엔진에 연결되지 않습니다. 보고서 서버 및 보고서 관리자가 실패하고 다음 오류 메시지를 반환합니다.

    보고서 서버에서 보고서 서버 데이터베이스에 대한 연결을 열 수 없습니다. 데이터베이스에 대한 연결은 모든 요청 및 처리에 필요합니다. (rsReportServerDatabaseUnavailable)

    이 문제는 SSMS, 보고서 관리자 및 Reporting Services Configuration Manager ADO.NET 사용하고 TLS 1.2에 대한 ADO.NET 지원은 .NET Framework 4.6에서만 사용할 수 있기 때문에 발생합니다. 이전 버전의 .NET Framework 경우 ADO.NET 클라이언트에 대한 TLS 1.2 통신을 지원할 수 있도록 Windows 업데이트를 적용해야 합니다. 이전 버전의 .NET 프레임워크에서 TLS 1.2 지원을 사용하도록 설정하는 Windows 업데이트는 이 업데이트가 필요한지 여부를 아는 방법 섹션의 표에 나와 있습니다.

  • 문제 2

    Reporting Services Configuration Manager 클라이언트 공급자가 TLS 1.2를 지원하는 버전으로 업데이트된 후에도 다음 오류 메시지를 보고합니다.

    서버에 연결할 수 없음: 서버에 대한 연결이 성공적으로 설정되었지만 사전 로그인 핸드셰이크 중에 오류가 발생했습니다.

    클라이언트 공급자가 TLS 1.2를 지원하는 버전으로 업데이트된 후의 테스트 연결 오류 스크린샷

    이 문제를 resolve 위해 Reporting Services Configuration Manager 호스팅하는 시스템에 다음 레지스트리 키를 수동으로 만듭니다.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client: "Enabled"=dword:00000001

  • 문제 3

    SQL Server 가용성 그룹, 데이터베이스 미러링 또는 Service Broker에 대해 암호화된 통신을 사용하는 경우 TLS 1.2를 사용하는 암호화된 엔드포인트 통신이 실패합니다. 다음과 유사한 오류 메시지가 SQL 오류 로그에 기록됩니다.

    Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 56.
    

    이 문제에 대한 자세한 내용은 수정: SQL Server 사용할 때 TLS 1.2와 암호화된 엔드포인트 통신이 실패를 참조하세요.

  • 문제 4

    TLS 1.2를 사용하도록 설정된 서버에 SQL Server 2012 또는 SQL Server 2014를 설치하려고 할 때 다양한 오류가 발생합니다.

    자세한 내용은 수정: TLS 1.2를 사용하도록 설정된 서버에 SQL Server 2012 또는 SQL Server 2014를 설치할 때 발생하는 오류를 참조하세요.

  • 문제 5

    TLS 1.2 이외의 다른 모든 프로토콜을 사용하지 않도록 설정한 후에는 인증서를 사용할 때 데이터베이스 미러링 또는 가용성 그룹과 암호화된 연결이 작동하지 않습니다. 다음과 유사한 오류 메시지가 SQL Server 오류 로그에 기록됩니다.

    TLS 1.2 이외의 다른 모든 프로토콜을 사용하지 않도록 설정한 후에는 인증서를 사용할 때 데이터베이스 미러링 또는 가용성 그룹과 암호화된 연결이 작동하지 않습니다. 다음 증상 중 하나가 나타날 수 있습니다.

    • 증상 1:

      다음과 유사한 오류 메시지가 SQL Server 오류 로그에 기록됩니다.

      Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.). State 58.'
      
    • 증상 2:

      다음과 유사한 오류 메시지가 Windows 이벤트 로그에 기록됩니다.

      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36888
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      ------------
      Description:
      A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.
      
      Log Name:      System
      Source:        Schannel
      Date:          <Date Time>
      Event ID:      36874
      Task Category: None
      Level:         Error
      Keywords:     
      User:          SYSTEM
      Computer:      -----------
      Description:
      An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
      

      이 문제는 가용성 그룹 및 데이터베이스 미러링에 MD5와 같은 고정 길이 해시 알고리즘을 사용하지 않는 인증서가 필요하기 때문에 발생합니다. 고정 길이 해시 알고리즘은 TLS 1.2에서 지원되지 않습니다.

    자세한 내용은 수정: SQL SERVER TLS 1.2를 사용하는 경우 MD5 해시 알고리즘을 사용한 통신이 실패를 참조하세요.

  • 문제 6

    다음 SQL Server 데이터베이스 엔진 버전은 기술 자료 문서 3146034 보고되는 일시적인 서비스 종료 문제의 영향을 받습니다. 고객이 서비스 종료 문제로부터 자신을 보호하려면 해당 SQL Server 버전이 다음 표에 나열된 경우 이 문서에 언급된 SQL Server 대한 TLS 1.2 업데이트를 설치하는 것이 좋습니다.

    SQL Server 릴리스 영향을 받는 버전
    SQL Server 2008 R2 SP3(x86 및 x64) 10.50.6537.0
    SQL Server 2008 R2 SP2 GDR(IA-64만 해당) 10.50.4046.0
    SQL Server 2008 R2 SP2(IA-64만 해당) 10.50.4343.0
    SQL Server 2008 SP4(x86 및 x64) 10.0.6543.0
    SQL Server 2008 SP3 GDR(IA-64만 해당) 10.0.5544.0
    SQL Server 2008 SP3(IA-64만 해당) 10.0.5894.0
  • 문제 7

    데이터베이스 메일 TLS 1.2에서 작동하지 않습니다. 다음 오류와 함께 데이터베이스 메일 실패합니다.

    Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException: 데이터베이스에서 메일 구성 정보를 읽을 수 없습니다. 메일 세션을 시작할 수 없습니다.

    자세한 내용은 SQL Server TLS 1을 사용하는 데 필요한 추가 수정 사항을 참조하세요.

클라이언트 또는 서버에서 TLS 1.2 업데이트가 누락될 때 발생할 수 있는 일반적인 오류

문제 1

SQL Server TLS 1.2 프로토콜을 사용하도록 설정한 후에는 System Center Configuration Manager(SCCM)이 SQL Server 연결할 수 없습니다. 다음과 오류 메시지가 나타납니다.

TCP 공급자: 원격 호스트에 의해 기존 연결이 강제로 닫혔습니다.

이 문제는 SCCM 수정 사항이 없는 SQL Server Native Client 드라이버를 사용하는 경우에 발생할 수 있습니다. 이 문제를 resolve 클라이언트 구성 요소 다운로드 섹션에 나열된 네이티브 클라이언트 수정 사항을 다운로드하여 설치합니다. 예를 들어 Microsoft® SQL Server ® 2012 Native Client - QFE입니다.

다음 예제와 같이 SCCM 로그를 확인하여 SQL Server 연결하는 데 사용하는 드라이버 SCCM 확인할 수 있습니다.

[SQL Server Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>Native Client 11.0]TCP Provider: An existing connection was forcibly closed by the remote host.~~  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** [08001][10054][Microsoft][SQL Server Native Client 11.0]Client unable to establish connection  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 *** Failed to connect to the SQL Server, connection type: SMS ACCESS.  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>
 INFO: SQL Connection failed. Connection: SMS ACCESS, Type: Secure  $$<Configuration Manager Setup><08-22-2016 04:15:01.917+420><thread=2868 (0xB34)>