SQL Server 마스터 키 관리
- Version : SQL Server 2005, 2008, 2008R2, 2012
SQL Server는 계층적 암호화 및 키 관리 인프라로 데이터를 암호화 한다. 각 계층은 인증서, 비대칭 키 및 대칭 키 조합을 사용하여 해당 계층의 하위 계층을 암호화 한다.
[SQL Server 2005]
암호화 계층의 각 계층이 해당 계층 아래의 계층을 암호화하는 것을 보여 준다. 최상위 계층인 서비스 마스터키는 Windows DP API로 암호화 된다.
암호화 메커니즘
- 인증서
- 비대칭 키
- 대칭 키
[SQL Server 2008 이상]
비대칭 키 및 대칭 키를 SQL Server의 외부모듈에 저장할 수 있다. 계층의 시작 부분에 대한 액세스도 암호화로 보호 된다.
암호화 메커니즘
- Transact-SQL 함수
- 비대칭 키
- 대칭 키
- 인증서
- 투명한 데이터 암호화
[데이터베이스의 마스터 키를 생성하는 방법]
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' |
- PASSWORD = 'password' : 마스터 키를 암호화 하는데 사용되는 암호 이다. Password는 SQL Server의 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 따라야 한다.
[마스터 키 백업]
데이터베이스의 마스터 키가 생성되면 오프 사이트, 안전한 위치로 백업해야 한다. 백업시에는 다음 구문을 사용한다.
BACKUP MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password' |
- FILE = 'path_to_file' : 마스터 키를 내보낼 파일에 대한 파일 이름을 포함한 전체 경로를 지정한다. 경로는 로커 또는 네트워크에 위치한 UNC 경로일 수 있다.
- PASSWORD = 'password' : 파일의 마스터 키를 암호화 하는데 사용되는 암호이다.
[마스터키 복원]
백업 파일로부터 데이터베이스의 마스터 키를 가져 온다.
RESTORE MASTER KEY FROM FILE = 'path_to_file' DECRYPTION BY PASSWORD = 'password' ENCRYPTION BY PASSWORD = 'password' [ FORCE ] |
- FILE = 'path_to_file' : 지정된 마스터 키에 대해 파일 이름을 포함한 전체 경로 지정.
- DECRYPTION BY PASSWORD = 'password' : 파일로부터 가져올 마스터 키의 암호를 해독하는데 필요함 암호 지정.
- ENCRYPTION BY PASSWORD = 'password' : 데이터베이스 마스터 키를 로드한 다음 암호화하는 데 사용되는 암호를 지정.
- FORCE : 현재 데이터베이스 마스터 키가 열려 있지 않거나 SQL Server가 이 키로 암호화된 일부 개인 키의 암호를 해독 할 수 없는 경우에도 RESOTRE 프로세스가 계속 되도록 지정.
데이터 암호화에 사용한 키를 안전한 곳에 백업하는 것은 매우 중요하다.
[참고링크]
암호화 계층 : http://msdn.microsoft.com/ko-kr/library/ms189586(v=sql.110).aspx
마스터 키 생성, 백업, 복원 : http://technet.microsoft.com/ko-kr/library/ms174382.aspx
2013-01-28 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
SQL Server Stored Procedure 암호화 (0) | 2015.07.20 |
---|---|
SQL Server 대칭키 vs 비대칭키 암호화 (0) | 2015.07.20 |
대칭키를 사용하여 SQL Server 암호화(열 수준) 하기 (0) | 2015.07.20 |
DMV를 사용하여 누락된 인덱스 확인 (0) | 2015.07.20 |
DMV를 이용한 SQL Server 대기 상태 확인 (0) | 2015.07.20 |