WareValley

Database Encryption

싸이클론을 이용하여 데이터 베이스의 취약점을 분석하고, 분석된 취약점을 기반으로 샤크라맥스의 통제 정책을 설정한다고 해도 실제 물리적인 정보의
유출/탈취에는 손을 쓸 방법이 없습니다. 공격 의도의 유출/탈취가 아니더라도 실제 정보가 담긴 데이터베이스의 서버, 스토리지의 물리적 이동이나,
안전한 정보 유지를 위한 백업 과정에서의 전송, 백업 미디어, 분실 등의 과정에서 빈번히 정보의 유출이 발생할 수밖에 없습니다.

한마디로 아무리 꽁꽁 싸매고 숨기더라도 유출이 된 데이터베이스에 대해선 손을 쓸 수 없습니다. 이미 외부로 옮겨진 상태이기 때문에 싸이클론을 이용한
스캔에서도, 24시간 감시중인 샤크라맥스도 마찬가지입니다. 이러한 이유 때문에 전송되는 혹은 유지 중인 정보들을 암호화 하는 사례가 늘고 있으며 국내 개인
정보 보호 법에서도 정보의 암호화를 의무화 하고 있습니다.

* 송수신자 사이의 약속에 따라 정보를 변경하는 것, 암호화의 기본적인 원리 자체는 매우 단순합니다.

위 그림에서처럼 미리 정해진 약속(=알고리즘)대로 데이터를 변경해서 저장 하면 되므로 간단하게 생각할 수 있지만 데이터베이스에서의
암호화는 상당히 많은 고민을 가지게 합니다.

먼저 데이터베이스는 일반 파일과는 달리 Table, Column, Index, Key 등 여러 가지 조건으로 거미줄처럼 얽혀 있는데 여기에 암호화를 적용 하게 되면
참조하는 값이 변경되는 탓에 거미줄처럼 얽힌 관계 줄기가 끊어지는 일이 생길 수 있습니다.
또 헤아릴 수 없는 정보를 담고 있는 데이터베이스는 속도를 중요하게 생각하는데 암호화를 적용하게 될 경우 암호화, 복호화 하는데 걸리는 시간이 추가 되기 때문에
당연히 느려질 수 밖에 없으며, 실제 저장된 정보의 형식이 변경 되는 만큼 데이터를 취급하는 주체에서 변형된 형식의 정보를 처리하는 것도
고민거리가 될 수 밖에 없습니다.

일반적으로 데이터베이스의 암호화는 파일 단위 암호화 / 컬럼 단위 암호화로 나뉘어지며, 컬럼 단위 암호화는 다시 API 방식과 Plug-In 방식으로 나뉘어집니다.

* 일반적인 파일 암호화와 유사합니다. 데이터베이스가 저장된 파일(Table Space)을 암호화 하여 보관 하는 방식

사용중인 Application의 수정이 거의 없이 도입이 상대적으로 용이하지만, 일 방향 알고리즘 적용이 어렵고, 데이터베이스 인증만 거치면 사실상 통제가 불가능
하다는 단점이 있습니다.

* 데이터베이스 내의 테이블을 컬럼 단위로 암호화 하여 반영하는 방식입니다.

일단 암호화를 하게 되면 컬럼의 데이터 형(Format)이 문자 형태로 변경되므로 데이터베이스의 구조를 변경하여야 하는 경우가 있을수 있지만 암호화가 필요 없는
정보와 그렇지 않은 정보를 선택적으로 암호화 할 수 있으며, 각각 암호화 컬럼 추가적인 정책 설정이 가능합니다.

* 컬럼을 암호화 하는 위치, 암호화 모듈이 있는 위치가 데이터베이스가 아닌 방식입니다.

데이터베이스의 성능에 구애 받지 않는 다는 장점이 있지만 데이터베이스와 관련된 거의 모든 어플리케이션을 수정해야 하므로 엄청나게 많은 비용이 발생한다는
단점이 있습니다. 권한 통제에 제약이 있을 수 있습니다.

* 데이터베이스 서버에 암호화 모듈을 위치시키고 데이터베이스 서버의 자원을 이용해 암호화 하는 방식입니다.

가장 큰 문제는 데이터베이스 서버의 성능이 낮을 경우 데이터베이스 이용 자체가 느려질 수 있다는 점과 적용 가능한 데이터베이스가 제한적이라는 점입니다.
일 방향 암호 사용을 제외한 거의 모든 암호화 적용 시 어플리케이션 수정이 불필요하기 때문에 적은 비용으로 도입이 가능하며, 권한 통제에 매우 유연하다는
장점이 있습니다.

암호화를 도입하는데 있어서 가장 큰 이슈는 비용과 성능 일 수 밖에 없습니다. 갈리아는 컬럼 단위 Plug-In 방식을 지원하고 있으며, 최소한의 비용으로 최대한의
결과를 낼 수 있는 최적의 솔루션입니다.

Plug-In 방식 암호화로 어플리케이션의 수정이 거의 어렵습니다. 데이터베이스 내에 암호화 모듈을 심어 암호화 하는 방식으로써 일 방향 암호화를 적용하지 않은
컬럼의 암/복호화 처리 결과에 맞추기 위해 어플리케이션을 수정할 필요가 없어 매우 적은 비용으로 암호화가 가능합니다.

암호화의 가장 큰 이슈 중 하나는 역시 암/복호화가 데이터 베이스 성능에 얼마나 영향을 주는가 입니다. 갈리아 역시 데이터베이스 서버의 자원을 이용하는
Plug-In 방식을 지원하고 있기 때문에 성능 저하를 피하는 것은 불가능합니다. 하지만 0개~N개의 다수의 네트워크 암/복호화 서버 설치를 통해 데이터 베이스 성능
저하를 최소화 했습니다. 이론상으로 무한개의 네트워크 암/복호화 서비스를 설치 할 수 있으며, 네트워크 성능만 보장된다면 데이터베이스의 성능에 주는 영향을
최소화 하며 암/복호화를 진행 할 수 있습니다.

암호화의 또 다른 이슈는 암/복호화에 사용되는 ‘Key’의 관리 입니다. 일단 비밀키 방식으로 암호화된 데이터는 암호화 시 사용되었던 키를 분실하게 되는 순간 쓰레기
파일로 전락하게 됩니다. 따라서 암/복호화 키의 관리가 무엇 보다도 중요한데 갈리아는 암/복호화 키와 암/복호화 정보를 담고 있는 Key Storage Server를 중복하여
지정할 수 있습니다. 네트워크 암/복호화 서버와 마찬가지로 최소 1개~N개까지 지원함으로써 키 서버 장애에 매우 유연하게 대처합니다.

갈리아는 국내 개인 정보 보호법에서 규정하는 ‘안전한 암호화 알고리즘’을 모두 지원합니다. 개인식별정보 중 ‘Password, 홍체, 지문 등의 생체 정보 등’을 암호화 할
수 있는 일 방향 암호화 알고리즘 ‘SHA1, SHA2 등을 지원하며 중요 정보를 암호화 할 수 있는 ARIA/SEED를 지원합니다. 또 안전한 키 생성을 위해 HASH_DRBG,
CTR_DRBG등의 난수 발생기를 사용하며 HMAC을 통해 데이터의 무결성을 확인, 유지 할 수 있도록 도와줍니다.