새로운 TLS 표준과의 SQL Server 호환성


30
  • 주요 브라우저는 SSL3.0 및 TLS1.0 이상으로 이동하고 있습니다.
  • PCI 보안위원회는이 프로토콜의 수명 종료일을 충분히 강력한 암호화로 간주합니다.

새롭고 더 강력한 프로토콜을 사용하려면 이러한 프로토콜에서 벗어나야합니다. Windows 서버에서는 이러한 이전 프로토콜을 매우 쉽게 비활성화하고 대신 TLS1.1 이상 만 제공 할 수 있습니다. 그러나 다른 곳 에서 언급했듯이 , 낮은 프로토콜을 사용하지 않으면 Microsoft SQL Server 2008 R2 및 SQL Server 2012 (적어도 표준)가 모두 시작되지 않습니다. 그러나 점점 더 많은 버전의 MS SQL Server가 있습니다. SQL Server Standard, Business Intelligence, Enterprise, Express, Web 및 Compact 버전이 있습니다. 물론 SQL Server 2008, 2012, 2014 및 (시험판) 2016이 있습니다.

이 에디션 중 TLS1.1 이상의 프로토콜 만 지원하거나 지원하는 에디션은 무엇입니까?


참고 사항 : 여기서 PCI 요구 사항은 전체 데이터 전송을 포괄하므로 공용 및 / 또는 무선 네트워크를 통해 SQL 통신을 VPN / 터널에 배치하면 더 나은 표준을 구현하는 것으로 충분합니다. 또한 지역 통신에도 전혀 적용되지 않을 수 있습니다. 따라서 적절한 SQL 구성 및 / 또는 방화벽 및 기타 필터링으로 인해 VLAN 외부에서 SQL 인스턴스를 건드릴 수없는 경우이 PoV에 대해 걱정할 필요가 없습니다. 물론 SQL 인스턴스를 퍼블릭 네트워크에 노출해야하는 경우 이러한 사실 중 어느 것도 도움이되지 않지만 어쨌든 그 아이디어는 저를 두려워합니다!
David Spillett 10

답변:


19

마이크로 소프트는 최근 TLS 1.2에 투자하고 SSL을 단계적으로 폐지 할 것이라고 밝혔다. 모든 버전의 SQL Server와 관련이 있어야합니다.

업데이트 2016-01-29 : Microsoft는 2008, 2008 R2, 2012 및 2014에서 TLS 1.2에 대한 공식 지원을 발표했습니다 . 다운로드 및 기타 정보는 KB # 3135244 에서 찾을 수 있습니다 .

2014 년에 암호화 된 엔드 포인트를 사용하는 경우 경고와 함께 언급 된 몇 가지 문제에 대해 블로그했습니다.

이 게시물은 또한 @@ version에 따라 올바른 빌드 다운로드 (또는 다른 작업)를 가리 킵니다.

이 이동이 기존 버전, 2014 이상 또는 2016에만 영향을 미치는지 여부는 여전히 남아 있습니다. 아래 인용문은 적어도 2014 년이 작업의 일부가 될 것이라는 것을 암시하는 것 같습니다. 투자가 대부분 엔진이 아닌 클라이언트 라이브러리에 투자 될 것으로 생각되므로 다음 릴리스의 모든 버전에서 작동 할 가능성이 있습니다 ODBC / Native Client 드라이버를 지원합니다.

Microsoft의 Kevin Farlee가 PowerPoint 데크에서 가져 와서 정보를 공유 할 수있는 권한이 부여되었지만이 시점에서 얼마나 많은 정보가 재배포되는지는 알 수 없습니다. 갑판의 정확한 인용문은 다음과 같습니다.

비행 중 암호화 : 스누핑 및 중간자 공격으로부터 클라이언트와 서버 간의 데이터를 보호합니다. CY 15에서 TLS 1.2로 업그레이드하고 SSL을 단계적으로 제거합니다.

또한 KB # 3052404 를 보면 2012 SP + 및 2014에서 작동하도록하는 패치 (2016 년에는 패치가 필요하지 않음)가 있지만 SQL Server 2005, 2008 로의 백 포팅이있을 것이라는 징후는 없습니다. 또는 2008 R2 (솔직히 말하면 놀랍습니다).


6

다른 답변에서와 같이 TLS1.2에는 최신 CU가 필요합니다. 만나다:

FIX : 전송 계층 보안 프로토콜 버전 1.2를 사용하여 SQL Server 2014 또는 SQL Server 2012를 실행하는 서버에 연결할 수 없습니다 .

  • SQL Server 2014 SP1 누적 업데이트 1
  • SQL Server 2014 누적 업데이트 8
  • SQL Server 2012 SP3 누적 업데이트 1
  • SQL Server 2012 SP2 누적 업데이트 10

TLS 1.2 만 활성화하면 두 가지 오류가 발생할 수 있습니다.

  1. SQL Server 2014 에이전트가 시작되지 않습니다. 해결 방법 : 다운로드 링크에서 SQL Server 2012 SNAC를 설치하십시오. KB3135244
  2. SQL Server Management Studio에 연결할 수 없습니다. 해결 방법 : KB3135244 에서 적용 가능한 .NET Framework 핫픽스를 설치하십시오.

또한 SQL Server에 연결된 모든 클라이언트에서 SNAC / OBDC 드라이버를 업데이트해야합니다.

다운로드 링크 및 필요할 수있는 기타 구성 변경 사항과 함께 SQL Server 및 클라이언트 드라이버 빌드의 전체 목록은 다음 Microsoft 지원 기술 자료 문서에 포함되어 있습니다.

Microsoft SQL Server에 대한 TLS 1.2 지원


SQL Server 2012 SP3 용 누적 업데이트 1이 설치되어 있는데도 여전히 SQL Server 2012를 시작할 수없는 이유는 무엇입니까?
NickG

4

2016 년 1 월 29 일 현재 Microsoft SQL Server는 다음을 위해 TLS 1.2를 지원합니다.

  • SQL Server 2008
  • SQL Server 2008 R2
  • SQL Server 2012; 과
  • SQL Server 2014

... 그리고 다음과 같은 주요 클라이언트 드라이버 :

  • 서버 네이티브 클라이언트
  • SQL Server 용 Microsoft ODBC 드라이버
  • SQL Server 용 Microsoft JDBC 드라이버
  • ADO.NET (SqlClient).

SQL Server 엔지니어링 팀의 릴리스에 대한 블로그 게시물 :

SQL Server 2008, 2008 R2, 2012 및 2014에 대한 TLS 1.2 지원

클라이언트 및 서버 구성 요소 다운로드 위치와 함께 TLS 1.2를 지원하는 빌드 목록 (KB3135244) :

Microsoft SQL Server에 대한 TLS 1.2 지원 (DB Mail에 대한 .NET 수정 포함)

참고 : 위의 내용은 최초 릴리스 이후 SQL Server 2008 또는 SQL Server 2008 R2 인스턴스에 연결할 때 간헐적으로 서비스가 종료되는 원래 업데이트의 결함을 해결하기 위해 업데이트되었습니다 . 이 내용은 KB 3146034에 설명되어 있습니다.

KB3135244에서 SQL Server 2008 또는 SQL Server 2008 R2 버전을 설치 한 후 간헐적 인 서비스 종료가 발생합니다.


2

CU6에서 SQL 2012에 대한 TLS 1.2를 지원하는 SQL 2012 SP2 CU7 은 서버 수준에서 TLS 1.0을 비활성화 할 수 없으며 인스턴스에서 암호화되지 않은 관리 스튜디오 연결을 사용하여 SQL Server에 연결할 수 있음을 확인할 수 있습니다. 클라이언트 암호화를 강제하지 않습니다.

이것은 TDE 또는 다른 인증서를 사용하지 않는 인스턴스에 있습니다.

내일 서버에 대한 신뢰할 수있는 인증서를 생성하고 암호화 된 연결을 사용하도록 설정 한 후에 시도하지만, 현재 TLS 1.2는 TLS 1.2를 지원하더라도 SQL 2012에서 TLS 1.0을 비활성화 할 수 없습니다.

편집하다:

내부 인증 기관에서 데이터베이스 서버에 대한 인증서를 생성했으며 더 이상 연결할 수없는 TLS 1.0 프로토콜이 비활성화 될 때까지 SQL Server에 암호화 된 관리 스튜디오 연결을 설정할 수있었습니다. 인증서가없고 자체 서명 된 인증서가없는 경우와 동일한 동작이 로그인 세션을 암호화하는 데 사용됩니다.


2

SQL 2014 SP1 CU1에서도 IIS와 SQL에 별도의 상자를 사용해야한다는 것을 알았습니다. 나는 그 과정에서 명백히 관련된 몇 가지 문제에 부딪 쳤고이 게시물 의 단계를 자세히 설명 했습니다. .

핵심 사항은 다음과 같습니다.

  • IIS와 SQL을 별도의 상자에 넣습니다.
  • IIS 상자에서 들어오는 TLS1.0을 비활성화하고 나가는 TLS1.0을 활성화합니다
  • SQL 상자에서 TLS1.0을 양방향으로 활성화하십시오.

1

여기에 전면 및 후면 서버에서 수행 한 작업이 있습니다.

  1. 를 엽니 다 gpedit.msc. 로컬 그룹 정책 편집기의 "컴퓨터 구성"노드에서 "Windows 설정"을 두 번 클릭 한 다음 "보안 설정"을 두 번 클릭하십시오.

  2. "보안 설정"노드에서 "로컬 정책"을 두 번 클릭 한 다음 "보안 옵션"을 클릭하십시오.

  3. 세부 정보 창에서 "시스템 암호화 : 암호화, 해싱 및 서명에 FIPS 호환 알고리즘 사용"을 두 번 클릭하십시오.

  4. "시스템 암호화 : 암호화, 해싱 및 서명에 FIPS 호환 알고리즘 사용"대화 상자에서 "사용"을 클릭 한 다음 "확인"을 클릭하여 대화 상자를 닫습니다. 로컬 그룹 정책 편집기를 닫습니다.


나는 SQL Server 버전이있는 실제 원래의 질문에, 반대로이, TLS 1.2을 설정하는 방법을 주소로 가정 아마도 SQL 백엔드 웹 서버에 TLS 1.0 이상 지원 무엇인가? 가능하면 답변 자체에서이를 명확히하십시오.
RDFozz

고맙지 만, ... 원래 질문에서, 나는 그것을 다소 일반적인 것으로 만들려고 노력했지만 실제로는 2015 년 중반에 제기 된 최소 요구 사항과 일련의 기술을 일치시키는 것과 관련이있었습니다. 나는 그것이 폐쇄되어야한다고 생각하기 때문에 지금 데이트가되었습니다. 위와 같은 답변은 아마도 오늘의 문제에 더 잘 적용되는 최신 버전의 질문을 대상으로해야합니다. 나는 현재 그런 질문이 없다.
Mark Goldfain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.