더북(TheBook)

API 방식은 데이터베이스 종류2에 제약 없이 적용할 수 있고, 데이터베이스에 부하도 주지 않습니다(물론 애플리케이션 서버의 성능은 어느 정도 확보해야 합니다). 하지만 암호화 대상 데이터와 관련이 있는 애플리케이션의 모든 부분을 수정해야 하므로 구축하는 데 시간이 오래 걸리고 비용이 많이 듭니다. 또 애플리케이션에서 이미 독립적으로 암호화된 데이터가 데이터베이스에 들어가면 데이터베이스의 기존 기능에 영향을 미칠 수 있습니다. 대표적인 예로 암호화된 데이터가 데이터베이스에 들어간 후 인덱스가 이전과 동일하게 동작하지 않는 문제를 들 수 있습니다(8장 참고).

플러그인 방식은 암호화를 수행하는 모듈을 데이터베이스의 DBMS에 직접 설치하는 것으로 DBMS 패키지 방식3이라고도 합니다. 이 방식의 장점은 데이터를 컬럼 단위로 암호화할 수 있어 데이터에 세부적으로 암호화를 적용하고 관리할 수 있습니다. 단점은 암호화와 복호화를 수행할 때 DBMS에 있는 자원을 사용한다는 것입니다. 따라서 플러그인 방식을 적용할 때는 데이터베이스 서버의 성능을 고려해야 합니다. 개인정보 등 중요한 정보를 선별해서 암호화하거나 권한 관리할 때 효과적인 방식입니다. 선별적으로 암호화를 할 수 있어 데이터베이스 서버의 부하 문제를 고려했음에도 성능에 전혀 영향이 없을 때도 있습니다. 다만 DBMS 제품과 이용 환경에 따라 쿼리4를 조금 수정해야 할 수는 있습니다.5

하이브리드 방식은 플러그인 방식과 API 방식을 적절히 섞어 사용합니다. 데이터베이스와 애플리케이션 서버에 암호화 모듈을 설치하고, 암호화 대상 데이터와 애플리케이션의 활용 현황에 따라 어느 부분에서 어떤 암호화 방식을 사용할지 결정합니다. 이 방식은 적용만 잘 한다면 두 방식의 장점을 동시에 얻을 수 있습니다. 하지만 구조적으로 복잡하고 키 관리의 복잡성도 증가합니다. 이 방식을 적용할 때는 적용 전 반드시 전체 시스템을 정확하게 분석하고 판단해야 합니다.

 

 


2 데이터베이스 종류란 DBMS의 종류, 즉 여러 기업에서 제공하는 데이터베이스 브랜드 종류를 의미합니다. 대표적인 DBMS에는 오라클이 제공하는 Oracle DBMS, 마이크로소프트가 제공하는 MS-SQL, IBM의 DB2, 과거에는 오픈소스 DBMS였지만 지금은 오라클이 제공하는 MySQL 등이 있습니다.

3 DBMS에 추가되는 뷰나 트리거 같은 인터페이스 객체(Interface Object)를 패키지라고 하기 때문입니다.

4 데이터베이스에 내리는 명령어를 쿼리(Query)라고 합니다. 데이터를 삽입하거나 삭제하려면 이에 해당하는 쿼리를 입력해야 합니다.

5 데이터베이스를 다루는 입장에서는 쿼리 수정을 애플리케이션 수정이라고 인식하기도 하지만, 일반적으로 애플리케이션 수정과 쿼리 수정은 구분합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.