SQL Server 암호화 하기
- Version : SQL Server 2005, 2008, 2008R2, 2012
데이터 암호화는 SQL Server 또는 응용프로그램, OS에 의해서 수행 할 수 있다. SQL Server에 의한 암호화는 TDE, 열 수준 암호화가 있으며 응용프로그램이나 OS에 의한 암호화는 파일 시스템 암호화나 비트락커 등이 있다.
[투명한 데이터 암호화 (TDE)]
SQL Server 2008 부터 도입된 투명한 데이터 암호화는 SQL Server의 암호화 옵션이다. TDE는 전체 데이터베이스를 암호화 할 수 있다. TDE를 사용하면 데이터베이스에 대한 백업도 암호화가 가능하다.
TDE는 데이터 및 로그 파일이 AES 및 3DES 암호화 알고리즘을 사용하여 암호화 하는 것을 의미한다.
데이터베이스는 TDE를 통해 데이터 및 로그파일의 실시간 I/O 암호화 및 암호 해독을 수행한다. 이 암호화에서는 DEK(데이터베이스 암호화 키)를 사용하며 이 키는 복구하는 동안 사용할 수 있도록 데이터베이스 부트 레코드에 저장된다.
- 투명한 데이터 암호화 : http://technet.microsoft.com/ko-kr/library/bb934049.aspx
[열 수준 암호화]
열 수준 암호화(셀 수준 암호화)는 SQL Server 2005에서 도입되었다. 열 수준 암호화를 사용하려면 스키마를 VARBINARY로 변경 후 원하는 데이터 형식으로 변환 해야 한다. 이는 응용프로그램이 암호화 해독 작업을 지원하기 위해 변경해야 하는 것 뿐만 아니라 성능에도 영향을 미칠 수 있다. 암호화는 데이터베이스 페이지 수준에서 발생하지만 버퍼풀에서 그 페이지를 읽을 때 해독 된다.
데이터는 비대칭키, 대칭키 또는 인증서 암호를 사용하여 암호화를 할 수 있다. 열 수준에서 지원되는 알고리즘은 AES 128,196,256bit 수준 및 3DES, AES 이다.
- SQL Server 대칭키 vs 비대칭키 암호화 : http://sqlmvp.kr/140179118556
- 대칭키를 사용하여 SQL Server 암호화(열 수준) 하기 : http://sqlmvp.kr/140178736522
[.NET 프레임워크를 사용여 데이터 암호화 및 해독]
SQL Server에 저장된 데이터를 암호화 하기 위한 또 다른 옵션은 응용프로그램에서 암호화 및 암호 해독을 수행 하는 것이다. SQL Server의 모든 버전은 데이터 암호화가 이 스타일을 지원한다. 그러 TDE와는 달리 응용프로그램 내에서 데이터를 암호화 하면 해독 메소드 또한 호출 할 수 있도록 응용프로그램을 코딩해야 한다.
.NET Framework는 대칭 또는 비대칭 암호화를 수행하는 System.Security.Cryptography 네임스페이스를 사용하여 암호화를 지원한다.
[파일 시스템 암호화]
파일 시스템 암호화(EFS)는 Windows 2000에서 도입된 파일 암호화 기능이다. 윈도우 서버는 파일 및 폴더 수준에서 데이터 암호화를 지원한다. EFS는 AES, SHA, ECC 스마트 카드 기반 암호화를 포함한 업계 표준 암호화 알고리즘을 사용한다.
EFS에서 SQL Server 데이터베이스를 설치하면 추가 오버헤드가 발생하기 때문에 권장하지는 않는다. EFS는 성능 최적화의 경우 모든 I/O가 동기화 되지 않는다.
EFS를 사용하는 경우 데이터베이스 파일은 계정의 ID로 암호화 된다. SQL Server 서비스 실행 계정을 변경하는 경우 먼저 암호를 해독하여 새로운 계정으로 암호화를 해야 한다.
- The Encrypting File System : http://technet.microsoft.com/en-us/library/cc700811.aspx
[Bit Locker]
Bit Locker 드라이브 암호화는 Windows 7, Windows 8, Windows Server 2008R2, Windows 2012에서 사용할 수 있는 데이터보호 기능이다. Bit Locker는 볼륨 수준에서 작동하며 AES알고리즘을 사용하여 데이터를 보호한다.
- BitLocker 드라이브 암호화 개요 :
http://technet.microsoft.com/ko-kr/library/cc732774.aspx
[참고자료]
http://sqlmag.com/database-security/sql-server-encryption-options
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp