Reducing Costs by Reducing Complexity
암호화에 필연적인 성능 저하 문제, 어떻게 해결해야 하나?
오늘날의 혼합 데이터베이스 환경에서 데이터를 보호하기 위한 조치를 적용함에 따라 발생하는 문제점을 고찰하고 이를 해결하기 위한 세이프넷 DataSecure의 구조 및 장점, 그리고 적용 예를 살펴본다. 특히 혼합 데이터베이스 환경에서 데이터를 보호함에 있어 발생하는 이러한 도전 요소를 살펴보고 이를 극복하기 위한 솔루션으로서 DataSecure에 대해 알아본다. 아울러 데이터 보호를 위한 암호화에 필연적으로 수반되는 성능 저하 등의 문제를 DataSecure에서 어떻게 해소하고 있는지를 소개한다.
오늘날 전산 환경을 갖추고 사업을 영위하는 모든 회사들은 데이터를 중심으로 운영되고 있다고 해도 과언이 아니다. 심지어 임직원 다음으로 중요한 자원으로 인식되기도 한다. 이러한 데이터는 90% 이상이 데이터베이스에 집중되어 저장되고 있으며 이로 인해 조직적인 범죄의 표적이 되고 있다.
2007년에 발간된 Ponemon 재단의 ‘Cost of a Data Breach Study’라는 보고서에 따르면 3년간 2억 1700만 명의 미국인이 ID 도용이나 노출에 따른 피해를 입었으며 데이터 침해 사례가 발생할 때마다 630만 달러의 유형/무형의 손실을 입었을 것으로 추정하고 있다.
이런 상황에 대응하기 위하여 IT Governance 및 정부 규정들이 제정되어 왔고 개별 기업들도 중요한 데이터에 대한 침해 및 공격 시도에 대해 보안 및 위험 관리에 더욱 더 많은 관심을 기울이고 있다. 하지만 다수의 데이터가 다양한 데이터베이스에 산재되어 존재하는 오늘날의 전산 환경에서 개별적으로 적용되는 데이터 보호 정책은 복잡도를 높이고 개발, 유지 및 관리 비용의 증가를 가져오게 되었다.
이번 연재에서는 혼합 데이터베이스 환경에서 데이터를 보호함에 있어 발생하는 이러한 도전 요소를 살펴보고 이를 극복하기 위한 솔루션으로서 DataSecure를 소개하고자 한다. 아울러 데이터 보호를 위한 암호화 시에 필연적으로 수반되는 성능 저하 등의 문제를 DataSecure에서 어떻게 해소하고 있는지를 소개할 예정이다.
먼저 이번에는 데이터 보호에 DataSecure를 도입함으로써 얻을 수 있는 이점과 이 기종 데이터베이스 간에 암호화 테이블을 복호화 없이 전송함으로써 DataSecure가 제공하는 중앙 집중적인 키 관리의 장점을 체험해 보는 내용을 다룰 것이다.
혼합 데이터베이스 환경의 도전 요소
전통적인 혼합 데이터베이스 환경에서는 각각의 DBMS 벤더들이 각자 고유한 기술(예 : 오라클 TDE)을 제공하여 민감한 데이터를 보호하고 있다.
데이터베이스에 특화된 이런 기술들은 데이터베이스 내부의 구조에 최적화되어 있어 암호화된 데이터에 대한 범위 검색 등에서 탁월한 성능을 나타내기도 한다. 하지만 여러 종류의 데이터베이스가 함께 운용되는 경우 문제점이 대두되는데 대표적인 것으로는 다음과 같다.
관리를 위한 인터페이스가 개별적으로 존재하여 관리 비용 (인력 및 교육) 증가
각각의 데이터베이스가 암호화 작업을 따로 수행함으로써 전산 자원(CPU)의 낭비를 초래하고 서버의 성능이 저하됨
각종 표준 준수 노력 및 비용이 급증
위에서 서버 성능의 저하를 언급하였는데 암호화 연산은 그래픽 연산과 더불어 CPU 자원을 가장 많이 활용하는 작업으로 꼽힌다. 서버의 성능에 대해 논할 때 많이 사용되는 지표들 중 하나로 동시 사용자 수 (Concurrent User)에 따른 서버의 전체 응답(Throughput) 수를 들 수 있다.
그림 2에서 보는 바와 같이 동시 사용자가 늘어날수록 서버의 전체 응답도 늘어나지만 일정 시점에 이르면 서버 자원의 한계로 더 이상 늘어나지 못하는 지점에 도달하게 된다. 이 지점을 Saturation Point라고 하며 많은 동시 사용자에 대한 지원을 고려해야 하는 시스템일 경우 반드시 관리 되어야 할 지표이고 실제로 많은 사이트에서 ITSM의 SLA 항목에 포함하여 관리하고 있다.
만약 각각의 데이터베이스 서버가 자신의 자원을 활용하여 암호화를 수행할 경우 이러한 Saturation Point에 훨씬 빨리 도달하게 되며 금융권 시스템과 같이 다중 세션에서의 TPS(Throughput Per Second) 성능이 중요한 환경에서는 서버의 CPU 증설 필요성을 지속적으로 발생시킬 수 있다.
만약 서버에 설치된 소프트웨어의 라이선스 정책이 CPU 개수에 따라 가격을 물리는 정책을 가지고 있다면 부가적인 비용 상승을 초래할 것이다. 또 한 가지 중요하게 고려할 사항으로는 HSM에 대한 지원이 이루어지지 않을 경우 암호화 키가 서버의 메모리 내에 존재하는 위험성이 상존한다는 것이다. 그림 3과 4는 오라클에서 dumpsga 명령을 사용하여 SGA에 저장되어 있는 Master Key 열기 암호를 추출해내는 과정이다.
이러한 키 분리의 미비는PCI-DSS 등의 Compliance 준수 실패로 이어질 수 있어 독립된 HSM 장비 도입의 필요성이 강하게 제기될 수 있다. 여기에다 앞에서 서술한 다양한 데이터베이스 보호에 따른 관리 부담의 경감, 암호학적 연산의 독립 수행을 통한 데이터베이스 서버의 성능 보전과 같은 중요한 요구 사항을 동시에 만족시킬 수 있는 현실적인 대안의 필요성이 점점 더 강하게 요구되는 상황이다.
혼합 데이터베이스 환경에서의 최적의 데이터 보호 방안
앞서 여러 데이터베이스가 혼재되어 있는 환경에서 각각의 서버가 독립적으로 데이터 암호화를 수행할 때 발생하는 문제점을 관리적인 관점, 성능적인 관면 그리고 보안 신뢰성의 관점에서 살펴보았다. 세이프넷의 DataSecure는 키 관리 및 암호화 연산을 독립적인 H/W 장비에서 행하는 방식으로 이러한 문제점에 해결책을 제시하고 있다. 그림 5는 DataSecure를 적용하였을 때의 시스템 배치를 도식화 해 본 것이다. 앞서 그림 1에서 나타난 혼합 데이터베이스 환경에서의 전통적인 데이터 보호와 비교하여 살펴보기 바란다.
단일화된 데이터 보호 솔루션을 도입함으로써 얻을 수 있는 장점은 다음과 같다.
단일 장비로 다수의 데이터를 보호
관리 체계가 단순화됨으로써 인력 및 운용에 드는 비용 절감
키가 별도로 저장되는 HSM 기능을 수행함으로써 각종 표준 준수 용이
H/W 장비에서 암호화 연산을 별도로 담당함으로써 데이터베이스 서버의 성능 유지
데이터가 가공되는 전달되는 중간 단계(예: WAS 등)에서도 활용 가능하여 데이터 보호와 관련한 효율성 증대
PCI-DSS와 같은 산업 표준은 단일 데이터 저장소(이러한 단일 데이터 저장소를 Data Vault라 칭한다)에 암호화된 값이 저장되어 관리될 것을 요구하고 있다. 이 경우 앞서 언급한 DataSecure의 단일화된 키 관리 기능의 이점이 잘 나타난다고 할 수 있다. 즉 여러 데이터베이스에서 단일 저장소에 접근할 때 필요한 키 공유 및 관리 체계를 단순화하여 복잡도를 낮추고 비용을 줄여줄 수 있다는 점이다.
이외에도 DB와 보안 관리자의 업무를 분리할 수 있으며 DataSecure의 클러스터링 기능을 활용하면 암호화를 적용함에 따른 가용성에 대한 우려를 획기적으로 불식시킬 수 있다. DataSecure는 또한 데이터베이스 이외에 다양한 응용프로그램 지원을 위한 라이브러리를 갖추고 있다. 이를 활용하면 데이터베이스와 응용프로그램에 대해 체계적이고 단일화된 암호화 정책을 적용할 수 있으며 데이터의 원천과 가까운 곳에서 암호화를 수행하여 데이터 기밀성을 증대시킬 수 있다.
또한 어플리케이션의 코드 레벨에서 적용할 수 있으므로 특화된 목적의 보안, 성능 그리고 Business 요구 사항을 충족하여 유연성을 증대시킬 수 있다. 다음에서는 혼합 데이터베이스 환경에 DataSecure가 적용되었을 때의 장점을 데이터베이스간의 키 공유, 중간단계에서 복호화가 필요 없는 Seamless한 데이터 Migration을 중심으로 한 예제로 설명하고자 한다.
DataSecure를 통한 암호화 키 공유 및 Seamless한 데이터 Migration
이번에는 DataSecure의 HSM 기능을 활용하여 데이터베이스간 암호화 키를 공유하고 암호화된 테이블간의 데이터 이전(OLTP 환경 -> DW 환경) 시 중간 단계의 복호화 과정이 필요없는 Seamless한 데이터 Migration 과정을 예제 형식으로 보여 줄 것이다.
암호화 키 생성
DataSecure의 UI를 통하여 소스 및 타깃 테이블에 공통적으로 사용될 키를 생성한다. 여기에서 사용되는 UI는 DataSecure Management Console이라고 불리는 것으로 DataSecure를 통한 암/복호화, 키 관리, 권한 관리 등의 모든 작업을 이를 통하여 수행할 수 있다. 암호화 알고리즘은 AES-128 을 사용한다.
소스 테이블 준비 - Oracle
그림 7과 같은 정의를 가진 소스 테이블을 준비하고 테스트 데이터를 입력한다. 이 테이블은 오라클 데이터베이스 상에 존재하는 것으로 OLTP 업무용인 것으로 가정한다.
CCNUM 컬럼이 신용카드 정보를 가지고 있는 것으로 가정하고 이 컬럼을 앞에서 생성한 키를 사용하여 암호화 할 것이다.
소스 테이블 암호화
앞의 CCNUM 컬럼을 암호화 키 생성부분에서 생성한 AES-128 키로 암호화 할 것이다.
그림 9, 10은 Management Console상에서 이 과정을 수행하는 모습이다. CCNUM의 평문 데이터를 삭제해 준 후 몇몇 부가적인 작업(응용프로그램 투명성을 위한 뷰 및 트리거 생성)을 진행한 후의 소스 테이블 형상은 그림 11과 같다.
타깃 테이블 준비
소스 테이블에 대응되는 정의를 가진 테이블을 타깃 데이터베이스에 준비한다. 이 테이블은 MS SQL Server 데이터베이스 상에 존재하는 것으로 DW 업무용인 것으로 가정한다.
이 테이블에는 데이터가 존재해도 되고 그렇지 않아도 되나 편의상 빈 테이블로 가정한다.
타깃 테이블 암호화
앞의 소스 테이블 암호화 시 사용한 키를 사용하여 타깃 테이블을 암호화한다. 이 때 초기화 벡터(IV; Initialization Vector) 값을 소스 테이블의 암호화 시 사용된 값과 맞추어 주어야 한다. 소스 테이블 암호화 시와 마찬가지로 응용프로그램 투명성을 위한 뷰 및 트리거를 생성해 주면 타깃 테이블의 준비가 완료된다.
데이터 Migration
암호화된 소스 테이블의 데이터를 MS SQL Server의 DTS(Data Transformation Service) 기능을 이용하여 Migration한다. 여기에서 중요하게 살펴봐야 할 점은 타깃 테이블 적재 이전에 소스 테이블의 암호화 키로 데이터를 복호화할 필요가 없다는 점이다.
Migrate 된 데이터 확인
테이블을 조회하여 데이터가 정상적으로 Migrate되었고 또한 복호화가 이루어지는지 확인한다.
결론
우리는 앞에서 DataSecure 내의 단일 키를 사용하여 암호화된 소스 테이블의 데이터를 타깃 테이블로 쉽게 이전하는 과정을 보았다. 그리고 이 과정에서 별도의 복호화 과정이 필요가 없음도 살펴보았다. 이를 소스 및 타깃 데이터베이스가 독자적으로 암호화를 행하고 있을 때와 비교하면 그림 18, 19와 같다.
그림 18, 19에서 데이터베이스 별로 키가 별도로 존재할 경우 데이터의 Migration 시에 소스 테이블 키로 복호화 한 후 이를 다시 타깃 테이블의 키로 암호화하여 적재해야 함을 알 수 있다.
이번에는 혼합 데이터베이스 환경에서 데이터를 보호하는 조치를 적용함에 따라 발생하는 문제점을 관리적인 관점, 성능적인 관점, 그리고 보안 안정성의 관점에서 살펴보았다. 그리고 이를 해결하기 위하여 DataSecure가 적용하는 구조 및 이를 통하여 얻을 수 있는 이점을 아래와 같이 고찰해 보았다.
중앙집중적인 데이터 보호
인력 및 운용 비용 절감
표준 준수 용이
데이터베이스 서버의 성능 유지
효율성 증대
마지막으로 이를 구체적으로 확인해 볼 수 있는 사례를 이 기종 데이터베이스간의 데이터 Migration을 통하여 확인해보았다.
<글 : 김상현 세이프넷 PSE(Professional Service Engineering) 팀장(sean.kim@safenet-inc.com)>
[월간 정보보호21c 통권 제112호(info@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>