Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
데이터베이스(DB, Database)는 기업의 IT 자산 중 가장 가치 있는 핵심 자산으로 여겨지며, 여러 데이터 및 기록 등을 관리하고 있습니다. 이러한 데이터베이스를 보호해야 하는 중요성은 이미 많이 알고 있는 사실입니다.
이러한 데이터베이스를 보호하기 위한 솔루션들은 다양하게 존재하고 있습니다.
DB 접근제어 외에 DB 보안에 대해 국내외 법률과 규정은 주로 두 가지를 강조하는데 첫번째는 암호화를 통한 DB보안입니다.
DB암호화의 기술은 구현 방식에 따라 여러 가지가 있으며, 각각의 데이터 처리 메커니즘이 다양합니다.
일반적으로 DB에 저장된 개인정보 또는 금융정보 등 기업의 중요 정보자산을 암호화할 수 있는 방법은 DBMS 제품 자체 또는 공급업체에서 제공하는 ① 'DB암호화 패키지'와 3rd 파트에서 ② '상용화 개발 제품'으로 구분할 수 있습니다.
일반적으로 DB 암호화 구축을 고려하는 기업 및 담당자들이 DB암호화 솔루션을 선정하는 주요 평가항목은 성능, 기능, 적용 편의성, 보안성 기능 정도로 말할 수 있을 것입니다.
보통 '성능'은 기본으로 고려하고 있어야 할 항목이고, '적용 편의성 및 기능'이 고객의 입장에서 보면 비용으로 연결되기 때문에 이 부분을 중점적으로 고려할 것으로 생각됩니다. 따라서 가급적 애플리케이션 수정 등의 수작업에 의한 보수 유지가 최소화되고 구축이 용이한 형태의 솔루션을 찾는 경우가 일반적입니다.
그런데 과거 주로 사용했던 구현 방식은 DB에 내장된 암호화 기능이나 패키지를 이용하는 방법으로써 컬럼 단위로 암호화되며, 사용을 위해서는 SQL 문장을 모두 수정해야 돼서 적용에 많은 시간이 소요되었습니다.
이러한 문제점을 개선한 방식을 TDE(Transparent Data Encryption)라고 하며 대표적으로 Oracle Database를 생각할 수 있습니다.
TDE(Transparent Data Encryption)란, 그대로 해석하면 투명하게 데이터를 암호화한다는 것으로, 응용 프로그램의 수정 없이 DB 내부에서 컬럼, 테이블 스페이스 레벨의 암호화를 진행하는 것으로 해석할 있습니다.
그러면 지금부터 Oracle TDE의 개념과 함께 암호키의 관계를 고려하여 설명하도록 하겠습니다.
Oralce TDE 기능에서 사용하는 암호키는 실제 데이터를 암/복호화 하는 Table(space) key와 이 키들을 암/복호화 하는 Master key로 나누어집니다.

[그림 1] Oracle TDE 개념
그림에서와 같이 Master key는 software 또는 Hardware keystore라고 하는 공간에 저장이 됩니다.
보통 software keystore는 지갑이라 불리는 파일 형태로 저장이 되는 방법이며, hardware keystore는 분리된 공간. 대표적으로 HSM(Hardware Security Module/ 관련 기술노트 참조)에 저장되는 형태를 말합니다.
아무래도 분리된 공간에 키를 보관한다는 이유로 hardware keystore이 보안적인 측면에서 더 우수하다고 할 수 있습니다. 이렇게 HSM에 Master key를 저장함으로써 파일로 관리되는 지갑의 보안 문제점을 해결하였습니다.
│ TDE 와 KMS │
NeoKeyManager는 KMIP(Key Management Interoperability Protocol, 키 관리 상호 운용 표준)뿐 아니라 HSM의 표준 인터페이스인 PKCS#11 Provider도 제공함으로써 HSM과 같은 hardware keystore 역할을 할 수 있습니다.
다음은 Oracle DB와 NeoKeyManager를 연동하였을 때의 그림입니다.

[그림 2] Oracle DB - NeoKeyManager 연동
위 그림에서와 같이 DB server에 자사 PKCS#11 Provider 모듈을 설치하면, KMS(Key Management System, 키 관리 시스템)와 연동이 되어 TDE의 Master key를 분리하여 저장할 수 있습니다. 아래는 Master key가 저장되어 있는 모습을 보여주는 웹 화면입니다.

[그림 3] NeoKeyManager에 보관된 Master key
기존 software keystore 방식을 사용하던 서버에서 KMS를 도입할 경우, 기존의 암호화된 데이터를 migration 하는 것이 아니라, Table(space) key를 재암호화 하는 것으로 기존 software keystore를 사용중이어도 KMS로 전환하는데 걸리는 시간은 상당히 짧을 것으로 여겨집니다.
또한 Application 측면에서도 KMS로 전환시 성능 저하는 software keystore와 차이가 거의 없는 것으로 테스트가 되었습니다.
참고로 Oracle Database 11gR2 버전 이상부터 Hardware keystore 적용이 가능하며, KMS 도입을 위해서는 Oracle Database TDE 사용 가이드라인에 따라 HSM 설치와 동일한 과정을 거치면 됩니다.
한국인터넷진흥원(KISA)에서 공개한 <암호기술 구현 안내서>를 보면 키 관련 내용 중 암호화 키는 별도의 분리된 장소에 보관을 권고하고 있습니다.

[그림 4] 암호기술 구현 안내서 (한국인터넷진흥원)
현재 TDE를 software keystore 방식으로 사용중이거나 암호키의 분리보관을 위해 새롭게 hardware keystore TDE를 고려하고 있다면, 암호키 통합 관리 솔루션인 NeoKeyManager(네오키매니저)를 통해 암호키의 안전한 분리 보관과 암호키의 접근제어, KMIP를 통한 암호키 관리를 권장합니다.
자세한 내용은 NeoKeyManager 담당자와 상담을 통해 확인해 보세요!
