클라우드 SQL 데이터베이스를 위한 실시간 AES 암호화와 복호화
초록
본 논문은 클라우드 환경의 관계형 데이터베이스에 대해 클라이언트 측에서 AES‑256으로 데이터를 암호화하고, 쿼리 실행 시 DBMS가 전달받은 키를 이용해 선택된 컬럼을 실시간으로 복호화·암호화하는 방식을 제안한다. 결정적 암호화와 확률적 암호화를 모두 지원하며, 결정적 방식은 저장 용량 증가가 없고 확률적 방식은 약 2배의 저장 공간을 요구한다. 구현은 기존 UDF(User‑Defined Function)를 지원하는 클라우드 SQL 서비스만으로 가능하고, 현대 CPU에서의 암호·복호화 오버헤드는 무시할 수준이다.
상세 분석
이 논문은 클라우드 서비스 제공자가 물리적·운영적 신뢰를 완전히 확보하기 어려운 현실을 전제로, 데이터 기밀성을 클라이언트 측에서 보장하면서도 기존 SQL 엔진의 풍부한 기능을 그대로 활용할 수 있는 하이브리드 암호화 모델을 제시한다. 핵심 아이디어는 “키‑인‑쿼리” 방식을 도입해, 클라이언트가 SELECT, UPDATE, INSERT 등 다양한 DML·DDL 문에 AES 키를 포함시켜 전송하고, DBMS는 해당 키를 일시적으로 메모리에 로드한 뒤 UDF를 통해 지정된 컬럼을 실시간으로 복호화한다. 복호화된 평문은 쿼리 연산에만 사용되고, 연산이 끝나는 즉시 메모리에서 영구적으로 삭제한다는 가정 하에, 런타임 메모리 내 평문 존재 시간을 최소화한다.
결정적 암호화(det‑AES)는 동일 평문에 대해 동일한 암호문을 생성하므로, 인덱스 구축·범위 검색·조인 등 기존 DBMS가 제공하는 최적화 기법을 그대로 적용할 수 있다. 저장 용량 측면에서는 원본과 동일한 크기를 유지하므로 비용 효율성이 높다. 반면 확률적 암호화(prob‑AES)는 각 평문에 대해 무작위 초기화 벡터(IV)를 사용해 암호문을 다르게 생성함으로써 빈도 분석 공격을 방어한다. 그러나 암호문 길이가 평문보다 2배 정도 늘어나 저장 비용이 상승하고, 인덱스 활용이 제한되어 성능 저하가 발생할 수 있다.
보안 측면에서 논문은 DBMS가 “이동 표적 방어(Moving Target Defense)”를 적용해 런타임 메모리 내 키와 평문을 주기적으로 재배치·삭제함으로써 메모리 스냅샷 공격을 방어한다는 전제를 둔다. 이는 키가 네트워크를 통해 전송되는 순간을 제외하고는, 클라우드 제공자가 키를 장기 보관하거나 재사용할 위험을 최소화한다. 또한, TLS 기반 전송 채널을 이용해 키와 암호문을 보호하고, 키는 쿼리 종료 시점에 즉시 메모리에서 영구 삭제된다.
성능 평가에서는 최신 Intel i5 프로세서에서 AES‑256 ECB/CBC 모드의 암호·복호화가 1GB 데이터당 약 150ms 수준으로 측정되었으며, 이는 일반적인 디스크 I/O 및 네트워크 지연보다 훨씬 작다. 따라서 실시간 복호화가 쿼리 응답 시간에 미치는 영향은 미미하다고 결론짓는다. 또한, UDF를 활용한 구현이 기존 DBMS의 플러그인 메커니즘과 호환되어 별도의 커스텀 엔진 개발 없이도 적용 가능함을 입증한다.
한계점으로는 키 관리가 클라이언트에 전적으로 의존한다는 점, 키가 노출될 경우 전체 데이터가 위험에 처한다는 점, 그리고 확률적 암호화 시 인덱스 비활성화로 인한 대규모 데이터셋에 대한 쿼리 성능 저하가 있다. 향후 연구에서는 키 교환 프로토콜 강화, 하드웨어 보안 모듈(TPM/SGX) 연계, 그리고 동형암호와 결합한 하이브리드 접근법을 모색한다.
댓글 및 학술 토론
Loading comments...
의견 남기기