다음을 통해 공유


SQL Server 연결 암호화

업데이트: 2006년 7월 17일

SQL Server 2005는 SSL(Secure Sockets Layer)을 지원하며 IPSec(인터넷 프로토콜 보안)과 호환됩니다.

SSL(Secure Sockets Layer)

Microsoft SQL Server 2005에서는 SSL(Secure Sockets Layer)을 사용하여 네트워크를 통해 SQL Server 인스턴스와 클라이언트 응용 프로그램 간에 전송되는 데이터를 암호화할 수 있습니다. SSL 암호화는 프로토콜 계층 내에서 수행되며 DB 라이브러리 및 MDAC 2.53 클라이언트를 제외한 모든 SQL Server 클라이언트에서 사용할 수 있습니다.

클라이언트 연결 시 암호화를 요청하는 경우 서버 유효성 검사를 위해 SSL을 사용할 수 있습니다. 공개 인증 기관에서 발급한 인증서가 할당된 컴퓨터에서 SQL Server 인스턴스를 실행하는 경우 신뢰할 수 있는 루트 인증 기관까지 연결된 인증서 체인에 의해 SQL Server 인스턴스와 해당 컴퓨터의 ID가 보증됩니다. 이러한 서버의 유효성을 검사할 때는 클라이언트 응용 프로그램을 실행하는 컴퓨터가 서버에 사용되는 인증서의 신뢰할 수 있는 루트 인증 기관으로 구성되어 있어야 합니다. 자체 서명된 인증서를 통해 암호화가 가능하며 이에 대한 내용은 다음 섹션에서 설명합니다. 그러나 자체 서명된 인증서의 보호 기능은 제한되어 있습니다.

SSL, 40비트 또는 128비트에 사용되는 암호화 수준은 응용 프로그램 및 데이터베이스 컴퓨터에서 실행하는 Microsoft Windows 운영 체제의 버전에 따라 달라집니다.

SSL 암호화를 사용하면 네트워크에서 SQL Server 인스턴스와 응용 프로그램 간에 전송되는 데이터에 대한 보안이 강화됩니다. 그러나 암호화를 사용하면 성능이 저하됩니다. SQL Server와 클라이언트 응용 프로그램 간의 모든 트래픽이 SSL을 사용하여 암호화되는 경우 다음의 추가 처리 작업이 필요합니다.

  • 연결 시에는 별도의 네트워크 왕복이 필요합니다.
  • 응용 프로그램에서 SQL Server 인스턴스로 전송되는 패킷은 클라이언트 Net-Library에 의해 암호화되고 서버 Net-Library에 의해 해독되어야 합니다.
  • SQL Server 인스턴스에서 응용 프로그램으로 전송되는 패킷은 서버 Net-Library에 의해 암호화되고 클라이언트 Net-Library에 의해 해독되어야 합니다.

SQL Server의 SSL 구성

다음 절차에서는 SQL Server의 SSL을 구성하는 방법을 설명합니다.

SSL을 구성하려면

  1. 서버 컴퓨터의 Windows 인증서 저장소에 인증서를 설치합니다.
  2. 시작을 클릭하고 Microsoft SQL Server 2005 프로그램 그룹에서 구성 도구를 가리킨 다음 SQL Server Configuration Manager를 클릭합니다.
  3. SQL Server 2005 네트워크 구성을 확장하고 원하는 서버에 대한 프로토콜을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
  4. 인증서 탭에서 인증서를 사용할 데이터베이스 엔진을 구성합니다.
  5. 플래그 탭에서 프로토콜 암호화 옵션을 보거나 지정합니다. 로그인 패킷은 항상 암호화됩니다.
    • 데이터베이스 엔진의 ForceEncryption 옵션이 로 설정되어 있으면 모든 클라이언트/서버 통신이 암호화되며 암호화를 지원할 수 없는 클라이언트는 액세스가 거부됩니다.
    • 데이터베이스 엔진의 ForceEncryption 옵션이 아니요로 설정되어 있으면 클라이언트 응용 프로그램에서도 암호화를 요청할 수 있지만 요청하지 않아도 됩니다.
    • ForceEncryption 설정을 변경한 후 SQL Server를 다시 시작해야 합니다.

클라이언트 응용 프로그램이 SQL Server 2005에 연결될 때 전송되는 자격 증명(로그인 패킷에 포함)은 항상 암호화됩니다. 가능한 경우 SQL Server는 신뢰할 수 있는 인증 기관에서 발급한 인증서를 사용할 수 있습니다. 신뢰할 수 있는 인증서를 설치하지 않으면 SQL Server에서 인스턴스가 시작될 때 자체 서명된 인증서를 생성하고 자체 서명된 인증서를 사용하여 자격 증명을 암호화합니다. 이 자체 서명된 인증서는 보안을 향상하는 데 도움이 되지만 서버에 의한 ID 스푸핑에 대한 보호는 제공하지 않습니다. 자체 서명된 인증서를 사용하고 ForceEncryption 옵션의 값이 로 설정되어 있으면 네트워크를 통해 SQL Server와 클라이언트 응용 프로그램 간에 전송된 모든 데이터는 자체 서명된 인증서를 사용하여 암호화됩니다.

ms189067.Caution(ko-kr,SQL.90).gif주의:
자체 서명된 인증서를 사용하여 암호화된 SSL 연결은 강력한 보안을 제공하지 않으며 중재자 공격(man-in-the-middle attack)에 취약합니다. 프로덕션 환경이나 인터넷에 연결된 서버에서는 자체 서명된 인증서를 사용한 SSL에 의존해서는 안 됩니다.

인증서 요구 사항

SQL Server 2005에서 SSL 인증서를 로드하도록 하려면 인증서는 다음 조건을 만족해야 합니다.

  • 인증서가 로컬 컴퓨터 인증서 저장소나 현재 사용자 인증서 저장소에 있어야 합니다.
  • 현재 시스템 시간은 인증서의 유효 기간(시작) 속성 이후, 그리고 인증서의 유효 기간(끝) 속성 이전이어야 합니다.
  • 인증서는 서버 인증용이어야 합니다. 이를 위해서는 **서버 인증(1.3.6.1.5.5.7.3.1)**을 지정하기 위해 인증서의 향상된 키 용도 속성이 필요합니다.
  • 인증서는 AT_KEYEXCHANGEKeySpec 옵션을 사용하여 만들어야 합니다. 일반적으로 인증서의 키 용도 속성(KEY_USAGE)에는 키 암호화(CERT_KEY_ENCIPHERMENT_KEY_USAGE)도 포함됩니다.
  • 인증서의 제목 속성은 일반 이름(CN)이 서버 컴퓨터의 호스트 이름이나 정규화된 도메인 이름(FQDN)과 동일함을 나타내야 합니다. SQL Server가 장애 조치(Failover) 클러스터에서 실행 중일 경우 일반 이름은 가상 서버의 호스트 이름이나 FQDN과 일치해야 하며 인증서는 장애 조치 클러스터의 모든 노드에 제공되어야 합니다.

클러스터에서 암호화

장애 조치 클러스터에서 암호화를 사용하려면 장애 조치 클러스터의 모든 노드에 있는 장애 조치 클러스터형 인스턴스의 정규화된 DNS 이름으로 서버 인증서를 설치해야 합니다. 예를 들어 클러스터에 test1.your company.comtest2. your company.com이라는 두 개의 노드 클러스터가 있고 SQL Server의 장애 조치 클러스터형 인스턴스인 fcisql이 있으면 fcisql.your company.com에 대한 인증서를 가져와서 두 노드 모두에 설치해야 합니다. 그런 다음 SQL Server 2005 네트워크 구성<server>에 대한 프로토콜 속성 상자에서 ForceEncryption 확인란을 선택하여 암호화에 대한 장애 조치 클러스터를 구성할 수있습니다.

IPSec(인터넷 프로토콜 보안)

SQL Server 데이터는 전송 중 IPSec을 사용하여 암호화될 수 있습니다. IPSec은 클라이언트와 서버 운영 체제에서 제공되며 별도의 SQL Server 구성이 필요하지 않습니다. IPSec에 대한 자세한 내용은 Windows 또는 네트워킹 설명서를 참조하십시오.

변경 내역

릴리스 내역

2006년 7월 17일

새로운 내용
  • 유효한 인증서를 위한 요구 사항을 추가했습니다.

참고 항목

작업

방법: 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)

도움말 및 정보

SQL Server 2005 지원 받기