SQL Server/SQL Server Tip

SQL Server 마스터 키 관리

SungWookKang 2015. 7. 20. 11:15
반응형

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

 

반응형