다음을 통해 공유


암호화 계층

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance

SQL Server는 계층적 암호화 및 키 관리 인프라로 데이터를 암호화합니다. 각 계층은 인증서, 비대칭 키, 대칭 키의 조합을 사용하여 아래 계층을 암호화합니다. 비대칭 키 및 대칭 키는 EKM(확장 가능 키 관리) 모듈의 SQL Server 외부에 저장할 수 있습니다.

다음 그림에서는 암호화 계층의 각 계층이 그 아래에 있는 계층을 암호화하고 가장 일반적인 암호화 구성을 표시한다는 것을 보여 줍니다. 계층 구조의 시작 부분에 대한 액세스는 일반적으로 암호로 보호됩니다.

일부 암호화 조합을 스택으로 표시합니다.

다음과 같은 개념을 염두에 두어야 합니다.

  • 최상의 성능을 위해 인증서 또는 비대칭 키 대신 대칭 키를 사용하여 데이터를 암호화하십시오.

  • 데이터베이스 마스터 키는 서비스 마스터 키로 보호됩니다. 서비스 마스터 키는 SQL Server 설치로 만들어지고 Windows DPAPI(Data Protection API)로 암호화됩니다.

  • 추가 계층을 쌓는 다른 암호화 계층도 가능합니다.

  • EKM(확장 가능 키 관리) 모듈은 SQL Server 외부에 대칭 또는 비대칭 키를 보유합니다.

  • TDE(투명한 데이터 암호화)에서는 데이터베이스 암호화 키라는 대칭 키를 사용해야 합니다. 이 키는 master 데이터베이스의 데이터베이스 마스터 키로 보호되는 인증서 또는 EKM에 저장된 비대칭 키로 보호됩니다.

  • 서비스 마스터 키와 모든 데이터베이스 마스터 키는 대칭 키입니다.

다음 그림에서는 다른 방식으로 동일한 정보를 보여 줍니다.

일부 암호화 조합을 휠로 표시합니다.

다음 다이어그램은 다음과 같은 추가적인 개념을 보여 줍니다.

  • 이 그림에서 화살표는 일반적인 암호화 계층 구조를 나타냅니다.

  • EKM의 대칭 및 비대칭 키는 SQL Server에 저장된 대칭 및 비대칭 키에 대한 액세스를 보호할 수 있습니다. EKM과 연결된 점선은 EKM의 키가 SQL Server에 저장된 대칭 및 비대칭 키를 대체할 수 있음을 나타냅니다.

암호화 메커니즘

SQL Server는 다음과 같은 암호화 메커니즘을 제공합니다.

  • Transact-SQL 함수

  • 비대칭 키

  • 대칭 키

  • 인증서

  • 투명한 데이터 암호화

Transact-SQL 함수

Transact-SQL 함수를 사용하여 개별 항목을 삽입하거나 업데이트할 때 암호화할 수 있습니다. 자세한 내용은 ENCRYPTBYPASSPHRASE(Transact-SQL)DECRYPTBYPASSPHRASE(Transact-SQL)를 참조하세요.

인증서

일반적으로 인증서라고 하는 공개 키 인증서는 공개 키의 값을 해당하는 프라이빗 키를 보유하는 사람, 디바이스 또는 서비스의 ID에 바인딩하는 디지털 서명된 문입니다. CA(인증 기관)이 인증서를 발급 및 서명됩니다. CA에서 인증서를 받는 엔터티는 해당 인증서의 주체입니다. 일반적으로 인증서에는 다음 정보가 포함됩니다.

  • 주체의 공개 키.

  • 이름 및 전자 메일 주소와 같은 주체에 대한 식별 정보

  • 유효 기간. 이는 인증서가 유효한 것으로 간주되는 기간입니다.

    인증서는 인증서 내에 지정된 기간 동안만 유효하고 모든 인증서에는 유효한 원본유효한 기간 날짜가 포함됩니다. 이러한 날짜는 유효 기간의 범위를 설정합니다. 인증서의 유효 기간이 지난 경우 만료된 인증서의 주체가 새로운 인증서를 요청해야 합니다.

  • 발행자 식별자 정보

  • 발급자의 디지털 서명입니다.

    이 서명은 공개 키와 주체의 식별자 정보 간의 바인딩 유효성을 증명합니다. (디지털 서명 정보 프로세스는 정보뿐만 아니라 발신자가 보유한 일부 비밀 정보를 서명이라는 태그로 변환해야 합니다.)

인증서의 주요 이점은 호스트가 개별 주체에 대한 암호 집합을 유지 관리할 필요가 없다는 것입니다. 대신 호스트는 인증서 발급자와 신뢰를 구축하기만 하면 됩니다. 그러면 인증서 수에 제한 없이 서명할 수 있습니다.

보안 웹 서버와 같은 호스트가 신뢰할 수 있는 루트 인증 기관으로 발급자를 지정하는 경우 호스트는 발급자가 발급하는 인증서의 바인딩을 설정하는 데 사용한 정책을 암시적으로 신뢰합니다. 실제로 호스트는 발행자가 인증서 주체의 ID를 확인한 것으로 트러스트합니다. 호스트는 발행자의 공개 키가 포함된 자체 서명된 발행자의 인증서를 호스트 컴퓨터의 트러스트된 루트 인증 기관 인증서 저장소에 두어 발행자를 트러스트된 루트 기관으로 지정합니다. 중간 또는 하위 인증 기관은 신뢰할 수 있는 루트 인증 기관의 유효한 인증 경로가 있는 경우에만 신뢰할 수 있습니다.

발급자는 인증서가 만료되기 전에 해지할 수 있습니다. 해지하면 인증서에 어설션된 ID에 대한 공개 키의 바인딩이 취소됩니다. 각 발행자는 특정 인증서의 유효성을 검사할 때 프로그램에서 사용할 수 있는 인증서 취소 목록을 유지 관리합니다.

SQL Server에서 만든 자체 서명된 인증서는 X.509 표준을 따르고 X.509 v1 필드를 지원합니다.

비대칭 키

비대칭 키는 프라이빗 키와 해당 공개 키로 구성됩니다. 각 키는 서로 암호화된 데이터의 암호를 해독할 수 있습니다. 비대칭 암호화 및 암호 해독은 리소스를 비교적 많이 사용하지만 대칭형 암호화보다 높은 수준의 보안을 제공합니다. 비대칭 키를 사용하여 데이터베이스의 스토리지에 대한 대칭 키를 암호화할 수 있습니다.

대칭 키

대칭 키는 암호화 및 암호 해독 모두에 사용되는 하나의 키입니다. 대칭 키를 사용하면 암호화 및 암호 해독을 빠르게 수행할 수 있으며 데이터베이스의 중요한 데이터를 일상적으로 사용하는 데 적합합니다.

투명한 데이터 암호화

TDE(투명한 데이터 암호화)는 대칭 키를 사용하는 암호화의 특수한 사례입니다. TDE는 데이터베이스 암호화 키라는 대칭 키를 사용하여 전체 데이터베이스를 암호화합니다. 데이터베이스 암호화 키는 데이터베이스 마스터 키 또는 EKM 모듈에 저장된 비대칭 키로 보호되는 다른 키 또는 인증서로 보호됩니다. 자세한 내용은 TDE(투명한 데이터 암호화)를 참조하세요.

SQL Server 보안 설정

보안 함수(Transact-SQL)

참고 항목

사용 권한 계층(데이터베이스 엔진)
보안 개체