데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SQL Server 암호화 하기

jevida(강성욱) 2016.10.11 03:34 Views : 2687

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(데이터베이스 암호화 키)를 사용하며 이 키는 복구하는 동안 사용할 수 있도록 데이터베이스 부트 레코드에 저장된다.

 

 

 

[열 수준 암호화]

열 수준 암호화(셀 수준 암호화)는 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 서비스 실행 계정을 변경하는 경우 먼저 암호를 해독하여 새로운 계정으로 암호화를 해야 한다.

 

 

 

[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

No. Subject Author Date Views
1890 장기 트랜잭션 확인 및 경고 설정 jevida(강성욱) 2016.10.11 1416
1889 SQL 데이터 수집툴 DiagManager 사용법 jevida(강성욱) 2016.10.11 1317
1888 Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버 jevida(강성욱) 2016.10.11 1833
1887 Kerbros 구성 관리자 툴 jevida(강성욱) 2016.10.11 1160
1886 SQL Server Geography 및 Geometory 데이터 형식 jevida(강성욱) 2016.10.11 2316
1885 SQL Server를 이용한 신용카드 보안 -조직이 PCI DSS 준수를 달성 하기 위한 요건 jevida(강성욱) 2016.10.11 1361
1884 TDE 암호화 사용하기 jevida(강성욱) 2016.10.11 3184
» SQL Server 암호화 하기 jevida(강성욱) 2016.10.11 2687
1882 의도하지 않은 분산트랜잭션 사용 jevida(강성욱) 2016.10.11 872
1881 Affinity I/O Mask jevida(강성욱) 2016.10.11 1159
1880 LPE_BATCH 스핀락 jevida(강성욱) 2016.10.11 880
1879 SQL Server 17953 오류 jevida(강성욱) 2016.10.11 973
1878 SQL 연결 18056 오류 jevida(강성욱) 2016.10.11 1359
1877 SQL 2008 R2 Sp1 적용과 9013 오류 - 포맷 섹터 크기에 따른 오류 jevida(강성욱) 2016.10.11 1742
1876 JDBC 로깅 파일 위치 설정 jevida(강성욱) 2016.10.11 956
1875 NUMA Node 메모리 블록 jevida(강성욱) 2016.10.11 1046
1874 AppDomain unloading 오류 로그 – CLR 오류 jevida(강성욱) 2016.10.11 1187
1873 SQL Server IO and Latch 설명 jevida(강성욱) 2016.10.11 3068
1872 마지막 백업 시간 및 DBCC 확인 [1] jevida(강성욱) 2016.10.08 1589
1871 DMV를 활용한 CPU 트러블슈팅 - Sys.dm_exec_query_stats, sys.dm_os_ring_buffers 활용 [1] jevida(강성욱) 2016.10.08 1906





XE Login