다음을 통해 공유


전송 계층 보안 및 디지털 인증서

이 문서에서는 TLS(전송 계층 보안) 및 디지털 인증서에 대한 세부 정보를 설명합니다.

TLS(전송 계층 보안)

TLS 및 SSL 프로토콜은 애플리케이션 프로토콜 계층과 TCP/IP 계층 사이에 위치하며, 여기서 애플리케이션 데이터를 보호하고 전송 계층으로 보낼 수 있습니다. TLS/SSL 프로토콜은 암호 도구 모음의 알고리즘을 사용하여 키를 만들고 정보를 암호화합니다. 클라이언트와 서버는 연결 설정의 초기 연결(사전 로그인) 단계에서 암호화에 사용할 프로토콜 버전 및 암호 도구 모음을 협상합니다. 지원되는 가장 높은 TLS 버전은 항상 TLS 핸드셰이크에서 선호됩니다. 다른 버전의 Windows 운영 체제에서 지원하는 TLS 프로토콜 버전을 확인하려면 TLS/SSL의 프로토콜(Schannel SSP)을 참조하세요. SSL 및 이전 버전의 TLS에 대해 몇 가지 알려진 취약성이 보고되었습니다. 보안 통신을 위해 TLS 1.2로 업그레이드하는 것이 좋습니다.

SQL Server에서는 TLS를 사용하여 클라이언트 애플리케이션과 SQL Server 인스턴스 간에 네트워크를 통해 전송되는 데이터를 암호화할 수 있습니다. TLS는 인증서를 사용하여 암호화를 구현합니다.

TLS 암호화를 사용하면 네트워크에서 SQL Server 인스턴스와 애플리케이션 간에 전송되는 데이터에 관한 보안이 강화됩니다. 그렇지만 SQL Server와 클라이언트 애플리케이션 간의 모든 트래픽이 TLS를 사용하여 암호화되는 경우 다음의 추가 처리 작업이 필요합니다.

  • 연결 시에는 별도의 네트워크 왕복이 필요합니다.
  • 애플리케이션에서 SQL Server 인스턴스로 전송되는 패킷은 클라이언트 TLS 스택에 의해 암호화되고 서버 TLS 스택에 의해 해독되어야 합니다.
  • SQL Server 인스턴스에서 애플리케이션으로 전송되는 패킷은 서버 TLS 스택에 의해 암호화되고 클라이언트 TLS 스택에 의해 해독되어야 합니다.

중요

SQL Server 2016(13.x)부터 SSL(Secure Sockets Layer)이 더 이상 사용되지 않습니다. 대신 TLS(TLS 1.2 권장)를 사용합니다. 자세한 내용은 KB3135244 - Microsoft SQL Server에 대한 TLS 1.2 지원을 참조하세요. SQL Server 2022에서는 TLS 1.3에 대한 지원이 도입되었습니다. 자세한 내용은 TLS 1.3 지원을 참조하세요. 클라이언트와 서버 컴퓨터 사이에 일치하는 프로토콜이 없는 경우 원격 호스트에 의해 기존 연결이 강제로 닫혔습니다에 설명된 오류가 발생할 수 있습니다.

디지털 인증서 개요

디지털 인증서는 사용자나 컴퓨터의 ID를 확인하기 위한 온라인 암호와 같이 작동하는 전자 파일로, 클라이언트 통신에 사용되는 암호화된 채널을 만드는 데 사용됩니다. 인증서는 CA(인증 기관)에서 발급한 디지털 문으로, 인증서 소유자의 ID를 보증하고 당사자가 암호화를 사용하여 안전하게 통신할 수 있도록 합니다.

디지털 인증서는 다음 서비스를 제공합니다.

  • 암호화: 도난 또는 변조로부터 교환되는 데이터를 보호하는 데 도움이 될 수 있습니다.
  • 인증: 소유자(사용자, 웹 사이트, 라우터 등의 네트워크 디바이스)의 진위 여부를 인증합니다. 일반적으로 인증은 원본이 대상의 ID를 확인하는 단방향이지만 상호 TLS 인증도 가능합니다.

인증서는 공개 키를 포함하며 그에 해당하는 개인 키를 소유한 사용자, 컴퓨터 또는 서비스의 ID에 이 공개 키를 첨부합니다. 클라이언트와 서버는 공개 키 및 개인 키를 사용하여 데이터를 전송하기 전에 암호화합니다. Windows 사용자, 컴퓨터 및 서비스의 경우 신뢰할 수 있는 루트 인증서 저장소에 루트 인증서가 정의되어 있고 해당 인증서에 유효한 인증 경로가 포함되어 있으면 CA에 신뢰가 설정됩니다. 인증서가 해지되거나(CA의 인증서 해지 목록 또는 CRL에 없음) 만료되지 않은 경우 유효한 것으로 간주됩니다.

세 가지 기본 유형의 디지털 인증서는 다음 표에 설명되어 있습니다.

형식 설명 장점 단점
자체 서명된 인증서 인증서는 인증서를 만든 애플리케이션에 의해 서명되거나 New-SelfSignedCertificate를 사용하여 만들어집니다. 비용(무료) - 인증서는 클라이언트 컴퓨터 및 모바일 디바이스에서 자동으로 신뢰할 수 없습니다. 인증서를 모든 클라이언트 컴퓨터 및 디바이스의 신뢰할 수 있는 루트 인증서 저장소에 수동으로 추가해야 하지만 모든 모바일 디바이스에서 신뢰할 수 있는 루트 인증서 저장소를 변경할 수 있는 것은 아닙니다.

- 모든 서비스가 자체 서명된 인증서로 작동하는 것은 아닙니다.

- 인증서 수명 주기 관리를 위한 인프라를 설정하기가 어렵습니다. 예를 들어 자체 서명된 인증서는 해지할 수 없습니다.
내부 CA에서 발급한 인증서 인증서는 조직의 PKI(공개 키 인프라)에서 발급됩니다. AD CS(Active Directory 인증서 서비스)가 그 예시입니다. 자세한 내용은 Active Directory 인증서 서비스 개요를 참조하세요. - 조직에서 자체 인증서를 발급할 수 있습니다.

- 상업용 CA의 인증서보다 저렴합니다.
- PKI를 배포하고 유지 관리하는 복잡성이 증가했습니다.

- 인증서는 클라이언트 컴퓨터 및 모바일 디바이스에서 자동으로 신뢰할 수 없습니다. 인증서를 모든 클라이언트 컴퓨터 및 디바이스의 신뢰할 수 있는 루트 인증서 저장소에 수동으로 추가해야 하지만 모든 모바일 디바이스에서 신뢰할 수 있는 루트 인증서 저장소를 변경할 수 있는 것은 아닙니다.
상용 CA에서 발급한 인증서 인증서는 신뢰할 수 있는 상용 CA에서 구입됩니다. 모든 클라이언트, 디바이스 및 서버가 인증서를 자동으로 신뢰하기 때문에 인증서 배포가 간소화됩니다. 비용 필요한 인증서 수를 최소화하려면 미리 계획해야 합니다.

인증서 소유자가 본인임을 증명하려면 인증서가 다른 클라이언트, 디바이스 또는 서버에 대한 인증서 소유자를 정확하게 식별해야 합니다. 이 작업을 수행하는 세 가지 기본 메서드는 다음 표에 설명되어 있습니다.

메서드 설명 장점 단점
인증서 주체 일치 인증서의 주체 필드에는 호스트의 CN(일반 이름)이 포함됩니다. 예를 들어 www.contoso.com에 발급된 인증서를 https://www.contoso.com 웹 사이트에 사용할 수 있습니다. - 모든 클라이언트, 디바이스 및 서비스와 호환됩니다.

- 구획화. 호스트에 대한 인증서를 해지해도 다른 호스트에는 영향을 주지 않습니다.
- 필요한 인증서 수입니다. 지정된 호스트에 대해서만 인증서를 사용할 수 있습니다. 예를 들어 서비스가 동일한 서버에 설치된 경우에도 ftp.contoso.comwww.contoso.com 인증서를 사용할 수 없습니다.

- 복잡성. 웹 서버에서 각 인증서에는 자체 IP 주소 바인딩이 필요합니다.
인증서 SAN(주체 대체 이름) 일치 주체 필드 외에도 인증서의 주체 대체 이름 필드에는 여러 호스트 이름 목록이 포함됩니다. 다음은 그 예입니다.
www.contoso.com
ftp.contoso.com
ftp.eu.fabirkam.net
- 편의. 별도의 여러 도메인의 여러 호스트에 대해 동일한 인증서를 사용할 수 있습니다.

- 대부분의 클라이언트, 디바이스 및 서비스는 SAN 인증서를 지원합니다.

- 감사 및 보안. SAN 인증서를 사용할 수 있는 호스트를 정확히 알고 있습니다.
- 더 많은 계획 필요. 인증서를 만들 때 호스트 목록을 제공해야 합니다.

- 구획화 부족. 인증서의 모든 호스트에 영향을 주지 않고는 지정된 호스트 중 일부에 대한 인증서를 선택적으로 해지할 수 없습니다.
와일드카드 인증서 일치 인증서의 주체 필드에는 와일드카드 문자(*)와 단일 도메인 또는 하위 도메인으로 공통 이름이 포함됩니다. 예를 들어 *.contoso.com 또는 *.eu.contoso.com입니다. *.contoso.com 와일드카드 인증서는 다음 용도로 사용할 수 있습니다.
www.contoso.com
ftp.contoso.com
mail.contoso.com
유연성. 인증서를 요청할 때 호스트 목록을 제공할 필요가 없으며 나중에 필요할 수 있는 호스트 수에 따라 인증서를 사용할 수 있습니다. - 다른 최상위 도메인(TLD)에서는 와일드카드 인증서를 사용할 수 없습니다. 예를 들어 *.contoso.net 호스트에 *.contoso.com 와일드카드 인증서를 사용할 수 없습니다.

- 와일드카드 수준에서 호스트 이름에 대해서만 와일드카드 인증서를 사용할 수 있습니다. 예를 들어 www.eu.contoso.com*.contoso.com 인증서를 사용할 수 없습니다. 또는 www.uk.eu.contoso.com*.eu.contoso.com 인증서를 사용할 수 없습니다.

- 이전 클라이언트, 디바이스, 애플리케이션 또는 서비스는 와일드카드 인증서를 지원하지 않을 수 있습니다.

- 와일드카드는 EV(확장 유효성 검사) 인증서에서 사용할 수 없습니다.

- 신중한 감사 및 제어가 필요합니다. 와일드카드 인증서가 손상된 경우 지정된 도메인의 모든 호스트에 영향을 줍니다.