SQL Server 암호화 하기

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

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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 36189
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 18743
1894 SQL Server에서 Drop 및 Delete 사용자 찾기 jevida(강성욱) 2016.10.12 1701
1893 SQL Server 트랜잭션 로그 읽기 jevida(강성욱) 2016.10.12 2278
1892 MaxBCPThreads에 따른 BCP 병렬출력 jevida(강성욱) 2016.10.11 1124
1891 확장이벤트와 dm_os_wait_stats 대기유형 매핑 jevida(강성욱) 2016.10.11 1961
1890 장기 트랜잭션 확인 및 경고 설정 jevida(강성욱) 2016.10.11 1523
1889 SQL 데이터 수집툴 DiagManager 사용법 jevida(강성욱) 2016.10.11 1386
1888 Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버 jevida(강성욱) 2016.10.11 1886
1887 Kerbros 구성 관리자 툴 jevida(강성욱) 2016.10.11 1214
1886 SQL Server Geography 및 Geometory 데이터 형식 jevida(강성욱) 2016.10.11 2724
1885 SQL Server를 이용한 신용카드 보안 -조직이 PCI DSS 준수를 달성 하기 위한 요건 jevida(강성욱) 2016.10.11 1427
1884 TDE 암호화 사용하기 jevida(강성욱) 2016.10.11 3771
» SQL Server 암호화 하기 jevida(강성욱) 2016.10.11 2895
1882 의도하지 않은 분산트랜잭션 사용 jevida(강성욱) 2016.10.11 970
1881 Affinity I/O Mask jevida(강성욱) 2016.10.11 1227
1880 LPE_BATCH 스핀락 jevida(강성욱) 2016.10.11 924
1879 SQL Server 17953 오류 jevida(강성욱) 2016.10.11 1061
1878 SQL 연결 18056 오류 jevida(강성욱) 2016.10.11 1475
1877 SQL 2008 R2 Sp1 적용과 9013 오류 - 포맷 섹터 크기에 따른 오류 jevida(강성욱) 2016.10.11 2032
1876 JDBC 로깅 파일 위치 설정 jevida(강성욱) 2016.10.11 1004
1875 NUMA Node 메모리 블록 jevida(강성욱) 2016.10.11 1090





XE Login