EKM(확장 가능 키 관리)

적용 대상:SQL Server

SQL Server는 암호화 및 키 생성을 위해 MSCAPI(Microsoft Cryptographic API) 공급자를 사용하여 EKM(Extensible Key Management)과 함께 데이터 암호화 기능을 제공합니다. 데이터 및 키 암호화를 위한 암호화 키는 임시 키 컨테이너에서 생성되며 데이터베이스에 저장되기 전에 공급자로부터 내보내져야 합니다. 이 방법을 사용하면 암호화 키 계층 구조 및 키 백업을 포함하는 키 관리를 SQL Server에서 처리할 수 있습니다.

규정 준수에 대한 수요와 데이터 개인 정보 보호에 대한 우려가 증가함에 따라 조직은 "심층 방어" 솔루션을 제공하는 방법으로 암호화를 활용하고 있습니다. 이 방법은 데이터베이스 암호화 관리 도구만 사용하는 것이 실용적이지 않은 경우가 많습니다. 하드웨어 공급업체는 HSM(하드웨어 보안 모듈)을 사용하여 엔터프라이즈 키 관리를 처리하는 제품을 제공합니다. HSM 디바이스는 하드웨어 또는 소프트웨어 모듈에 암호화 키를 저장합니다. 암호화 키가 암호화 데이터에 상주하지 않기 때문에 이 솔루션은 더 안전한 솔루션입니다.

많은 공급업체가 키 관리 및 암호화 가속을 위해 HSM을 제공합니다. HSM 디바이스는 서버 프로세스와 함께 하드웨어 인터페이스를 애플리케이션과 HSM 간의 중개자로 사용합니다. 또한 공급업체는 하드웨어 또는 소프트웨어일 수 있는 모듈을 통해 MSCAPI 공급자를 구현합니다. MSCAPI는 종종 HSM에서 제공하는 기능의 하위 집합만 제공합니다. 공급업체는 HSM, 키 구성 및 키 액세스를 위한 관리 소프트웨어를 제공할 수도 있습니다.

HSM 구현은 공급업체마다 다르며 SQL Server와 함께 사용하려면 공통 인터페이스가 필요합니다. MSCAPI는 이 인터페이스를 제공하지만 HSM 기능의 하위 집합만 지원합니다. 이외에도 MSCAPI에는 기본적으로 대칭 키를 지속할 수 없고 세션 지향이 지원되지 않는 등의 제한 사항이 있습니다.

SQL Server 확장 가능 키 관리를 사용하면 타사 EKM/HSM 공급업체가 해당 모듈을 SQL Server에 등록할 수 있습니다. 등록되면 SQL Server 사용자는 EKM 모듈에 저장된 암호화 키를 사용할 수 있습니다. 이렇게 하면 SQL Server에서 대량 암호화 및 암호 해독과 같은 이러한 모듈이 지원하는 고급 암호화 기능과 키 에이징 및 키 회전과 같은 키 관리 기능에 액세스할 수 있습니다.

Azure VM에서 SQL Server를 실행하는 경우 SQL Server는 Azure Key Vault저장된 키를 사용할 수 있습니다. 자세한 내용은 Azure Key Vault(SQL Server)를 사용하여 확장 가능한 키 관리를 참조하세요.

EKM 구성

확장 가능한 키 관리는 Microsoft SQL Server의 모든 버전에서 사용할 수 없습니다. SQL Server버전에서 지원되는 기능 목록은 SQL Server 2016 버전에서 지원하는 기능을 참조하세요.

기본적으로 확장 가능한 키 관리는 꺼져 있습니다. 이 기능을 사용하려면 다음 예제와 같이 다음 옵션과 값이 있는 sp_configure 명령을 사용합니다.

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

참고 항목

EKM을 지원하지 않는 SQL Server 버전에서 이 옵션에 sp_configure 명령을 사용하면 오류가 발생합니다.

기능을 사용하지 않으려면 값을 0으로 설정합니다. 서버 옵션을 설정하는 방법에 대한 자세한 내용은 sp_configure(Transact-SQL)를 참조하세요.

EKM 사용 방법

SQL Server EKM(확장 가능 키 관리)을 사용하면 데이터베이스 파일을 보호하는 암호화 키를 스마트 카드, USB 디바이스 또는 EKM/HSM 모듈과 같은 외부 디바이스에 저장할 수 있습니다. 또한 데이터베이스 관리자(sysadmin 그룹의 멤버 제외)로부터 데이터를 보호합니다. 데이터베이스 사용자만 외부 EKM/HSM 모듈에 액세스할 수 있는 암호화 키를 사용하여 데이터를 암호화할 수 있습니다.

확장 가능한 키 관리는 다음과 같은 이점도 제공합니다.

  • 추가 권한 확인(의무 분리 가능)

  • 하드웨어 기반 암호화/암호 해독에 대한 성능이 향상됩니다.

  • 외부 암호화 키 생성.

  • 외부 암호화 키 스토리지(데이터와 키의 물리적 분리).

  • 암호화 키 검색.

  • 외부 암호화 키 보존(암호화 키 회전 사용)

  • 암호화 키 복구가 더 쉽습니다.

  • 관리 가능한 암호화 키 배포

  • 암호화 키 삭제를 보호합니다.

EKM 드라이버에서 정의한 사용자 이름 및 암호 조합 또는 기타 메서드에 Extensible Key Management를 사용할 수 있습니다.

주의

문제 해결을 위해 Microsoft 기술 지원에는 EKM 공급자의 암호화 키가 필요할 수 있습니다. 문제를 해결하기 위해 공급업체 도구 또는 프로세스에 액세스해야 할 수도 있습니다.

EKM 디바이스를 사용한 인증

EKM 모듈은 둘 이상의 인증 유형을 지원할 수 있습니다. 각 공급자는 하나의 인증 유형만 SQL Server에 노출합니다. 즉, 모듈이 기본 또는 기타 인증 유형을 지원하는 경우 둘 다 노출되지만 둘 다 노출되지는 않습니다.

사용자 이름/암호를 통한 EKM 디바이스별 기본 인증

사용자 이름/암호 쌍을 사용하여 기본 인증을 지원하는 EKM 모듈의 경우 SQL Server는 자격 증명을 사용하여 투명한 인증을 제공합니다. 자격 증명에 대한 자세한 내용은 자격 증명(데이터베이스 엔진)을 참조하세요.

EKM 공급자에 대한 자격 증명을 만들고 로그인(Windows 및 SQL Server 계정 모두)에 매핑하여 로그인별로 EKM 모듈에 액세스할 수 있습니다. 자격 증명의 ID 필드에는 사용자 이름이 포함됩니다. 비밀 필드에는 EKM 모듈에 연결할 암호가 포함됩니다.

EKM 공급자에 대한 로그인 매핑 자격 증명이 없는 경우 SQL Server 서비스 계정에 매핑된 자격 증명이 사용됩니다.

로그인은 고유한 EKM 공급자에 사용되는 한 여러 자격 증명을 매핑할 수 있습니다. 로그인당 EKM 공급자당 하나의 매핑된 자격 증명만 있어야 합니다. 동일한 자격 증명이 다른 로그인에 매핑될 수 있습니다.

기타 유형의 EKM 디바이스별 인증

Windows 또는 사용자/암호 조합 이외의 인증이 있는 EKM 모듈의 경우 SQL Server와 독립적으로 인증을 수행해야 합니다.

EKM 디바이스의 암호화 및 암호 해독

다음 함수와 기능을 사용하여 대칭 및 비대칭 키를 사용하여 데이터를 암호화하고 암호를 해독할 수 있습니다.

함수 또는 기능 참조
대칭 키 암호화 CREATE SYMMETRIC KEY(Transact-SQL)
비대칭 키 암호화 CREATE ASYMMETRIC KEY(Transact-SQL)
EncryptByKey(key_guid, 'cleartext', ...) ENCRYPTBYKEY(Transact-SQL)
DecryptByKey(ciphertext, ...) DECRYPTBYKEY(Transact-SQL)
EncryptByAsmKey(key_guid, 'cleartext') ENCRYPTBYASYMKEY(Transact-SQL)
DecryptByAsmKey(ciphertext) DECRYPTBYASYMKEY(Transact-SQL)

EKM 키로 데이터베이스 키 암호화

SQL Server는 EKM 키를 사용하여 데이터베이스의 다른 키를 암호화할 수 있습니다. EKM 디바이스에서 대칭 키와 비대칭 키를 모두 만들고 사용할 수 있습니다. EKM 비대칭 키를 사용하여 네이티브(비 EKM) 대칭 키를 암호화할 수 있습니다.

다음 예에서는 데이터베이스 대칭 키를 만들고 EKM 모듈에 저장된 키를 사용하여 이 키를 암호화합니다.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

SQL Server의 데이터베이스 및 서버 키에 대한 자세한 내용은 SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)를 참조하세요.

참고 항목

한 EKM 키로 다른 EKM 키를 암호화할 수는 없습니다.

SQL Server는 EKM 공급자에서 생성된 비대칭 키를 사용하는 서명 모듈을 지원하지 않습니다.

EKM provider enabled 서버 구성 옵션

EKM을 사용하여 SQL Server에서 TDE 사용

Azure Key Vault(SQL Server)를 사용한 확장 가능 키 관리

참고 항목

CREATE CRYPTOGRAPHIC PROVIDER(Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER(Transact-SQL)
ALTER CRYPTOGRAPHIC PROVIDER(Transact-SQL)
sys.cryptographic_providers(Transact-SQL)
sys.dm_cryptographic_provider_sessions(Transact-SQL)
sys.dm_cryptographic_provider_properties(Transact-SQL)
sys.dm_cryptographic_provider_algorithms(Transact-SQL)
sys.dm_cryptographic_provider_keys(Transact-SQL)
sys.credentials(Transact-SQL)
CREATE CREDENTIAL(Transact-SQL)
ALTER LOGIN(Transact-SQL)
CREATE ASYMMETRIC KEY(Transact-SQL)
ALTER ASYMMETRIC KEY(Transact-SQL)
DROP ASYMMETRIC KEY(Transact-SQL)
CREATE SYMMETRIC KEY(Transact-SQL)
ALTER SYMMETRIC KEY(Transact-SQL)
DROP SYMMETRIC KEY(Transact-SQL)
OPEN SYMMETRIC KEY(Transact-SQL)
Reporting Services 암호화 키 백업 및 복원
암호화 키 삭제 및 다시 만들기(SSRS 구성 관리자)
스케일 아웃 배포를 위한 암호화 키 추가 및 제거(SSRS 구성 관리자)
서비스 마스터 키 백업
서비스 마스터 키 복원
데이터베이스 마스터 키 만들기
데이터베이스 마스터 키 백업
데이터베이스 마스터 키 복원
두 서버에서 동일한 대칭 키 만들기