SQL Server는 암호화 키를 사용하여 서버 데이터베이스에 저장된 데이터, 자격 증명 및 연결 정보를 보호합니다. SQL Server에는 대칭 및 비대칭 키의 두 종류가 있습니다. 대칭 키는 데이터 암호화 및 암호 해독에 동일한 비밀번호를 사용합니다. 비대칭 키는 하나의 암호를 사용하여 데이터( 공개 키라고 함)를 암호화하고 다른 하나는 데이터 암호 해독( 프라이빗 키라고 함)을 사용합니다.
SQL Server에서 암호화 키에는 중요한 데이터를 보호하는 데 사용되는 공용, 프라이빗 및 대칭 키의 조합이 포함됩니다. 대칭 키는 SQL Server 인스턴스를 처음 시작할 때 SQL Server 초기화 중에 만들어집니다. 이 키는 SQL Server에서 SQL Server에 저장된 중요한 데이터를 암호화하는 데 사용됩니다. 퍼블릭 및 프라이빗 키는 운영 체제에서 생성되며 대칭 키를 보호하는 데 사용됩니다. 데이터베이스에 중요한 데이터를 저장하는 각 SQL Server 인스턴스에 대해 퍼블릭 및 프라이빗 키 쌍이 만들어집니다.
SQL Server 및 데이터베이스 키용 애플리케이션
SQL Server에는 키에 대해 생성된 SMK( 서비스 마스터 키 )와 데이터베이스에 사용되는 DMK( 데이터베이스 마스터 키 )의 두 가지 기본 애플리케이션이 있습니다.
SMK는 SQL Server 인스턴스가 처음 시작될 때 자동으로 생성되며 연결된 서버 암호, 자격 증명 및 데이터베이스 마스터 키를 암호화하는 데 사용됩니다. SMK는 Windows DPAPI(Data Protection API)를 사용하여 로컬 컴퓨터 키를 사용하여 암호화됩니다. DPAPI는 SQL Server 서비스 계정의 Windows 자격 증명 및 컴퓨터 자격 증명에서 파생된 키를 사용합니다. 서비스 마스터 키는 생성된 서비스 계정 또는 컴퓨터의 자격 증명에 대한 액세스 권한이 있는 보안 주체에 의해서만 암호 해독할 수 있습니다.
데이터베이스 마스터 키는 데이터베이스에 있는 인증서 및 비대칭 키의 프라이빗 키를 보호하는 데 사용되는 대칭 키입니다. 데이터를 암호화하는 데도 사용할 수 있지만 길이 제한이 있어 대칭 키를 사용하는 것보다 데이터에 덜 실용적입니다.
마스터 키를 만들 때는 Triple DES 알고리즘과 사용자가 제공한 암호를 사용하여 마스터 키를 암호화합니다. 마스터 키의 자동 암호 해독을 사용하도록 설정하려면 SMK를 사용하여 키의 복사본을 암호화합니다. 이는 사용되는 데이터베이스와 시스템 데이터베이스 모두에 master 저장됩니다.
시스템 데이터베이스에 master 저장된 DMK의 복사본은 DMK가 변경될 때마다 자동으로 업데이트됩니다. 그러나 이 기본값은 ALTER MASTER KEY문에서 DROP ENCRYPTION BY SERVICE MASTER KEY 옵션을 사용하여 변경할 수 있습니다. 서비스 마스터 키로 암호화되지 않은 DMK는 OPEN MASTER KEY 문과 비밀번호를 사용하여 열어야 합니다.
SQL Server 및 데이터베이스 키 관리
암호화 키 관리는 새 데이터베이스 키를 만들고, 서버 및 데이터베이스 키의 백업을 만들고, 키를 복원, 삭제 또는 변경하는 시기와 방법을 아는 것으로 구성됩니다.
대칭 키를 관리하려면 SQL Server에 포함된 도구를 사용하여 다음을 수행할 수 있습니다.
서버 및 데이터베이스 키의 복사본을 백업하여 서버 설치를 복구하거나 계획된 마이그레이션의 일부로 복구할 수 있도록 합니다.
이전에 저장된 키를 데이터베이스에 복원합니다. 이렇게 하면 새 서버 인스턴스가 원래 암호화되지 않은 기존 데이터에 액세스할 수 있습니다.
암호화된 데이터에 더 이상 액세스할 수 없는 드문 경우 데이터베이스에서 암호화된 데이터를 삭제합니다.
키가 손상된 경우 키를 다시 만들고 데이터를 다시 암호화합니다. 보안 모범 사례로 키를 해독하려는 공격으로부터 서버를 보호하기 위해 주기적으로(예: 몇 개월마다) 키를 다시 만들어야 합니다.
여러 서버가 단일 데이터베이스와 해당 데이터베이스에 대해 되돌릴 수 있는 암호화를 제공하는 키를 모두 공유하는 서버 스케일 아웃 배포에서 서버 인스턴스를 추가하거나 제거합니다.
중요 보안 정보
서비스 마스터 키로 보호되는 개체에 액세스하려면 키를 만드는 데 사용된 SQL Server 서비스 계정 또는 컴퓨터(컴퓨터) 계정이 필요합니다. 즉, 컴퓨터는 키를 만든 시스템에 연결됩니다. 키에 대한 액세스 권한을 잃지 않고 SQL Server 서비스 계정 또는 컴퓨터 계정을 변경할 수 있습니다. 그러나 둘 다 변경하면 서비스 마스터 키에 대한 액세스 권한이 손실됩니다. 이러한 두 요소 중 하나 없이 서비스 마스터 키에 대한 액세스 권한을 잃으면 원래 키를 사용하여 암호화된 데이터 및 개체의 암호를 해독할 수 없습니다.
서비스 마스터 키로 보호된 연결은 서비스 마스터 키 없이는 복원할 수 없습니다.
데이터베이스 마스터 키로 보호된 개체 및 데이터에 액세스하려면 키를 보호하는 데 사용되는 암호만 필요합니다.
주의
앞에서 설명한 키에 대한 모든 액세스 권한이 끊어지면 해당 키로 보호되는 개체, 연결 및 데이터에 액세스할 수 없게 됩니다. 여기에 표시된 링크에 설명된 대로 서비스 마스터 키를 복원하거나 원래 암호화 시스템으로 돌아가 액세스를 복구할 수 있습니다. 액세스를 복구할 "백도어"가 없습니다.
이 섹션 안에
서비스 마스터 키
서비스 마스터 키 및 모범 사례에 대한 간략한 설명을 제공합니다.
EKM(확장 가능 키 관리)
SQL Server에서 타사 키 관리 시스템을 사용하는 방법을 설명합니다.
관련 작업
Azure Key Vault(SQL Server)를 사용한 확장 가능 키 관리
관련 내용
CREATE MASTER KEY(Transact-SQL)
ALTER SERVICE MASTER KEY(Transact-SQL)
또한 참조하십시오
Reporting Services 암호화 키 백업 및 복원
암호화 키 삭제 및 다시 만들기(SSRS 구성 관리자)
Scale-Out 배포를 위한 암호화 키 추가 및 제거(SSRS 구성 관리자)
TDE(투명한 데이터 암호화)