티스토리 뷰

이론

DB암호화 기법

절취선 2022. 2. 26. 21:34
반응형

DB 암호화 기법

개요

데이터베이스 암호화는 데이터를 암호화하여 저장하고, 권한이 있는 사람 혹은 서버만이 해당 데이터를 복호화할 수 있도록 하여 데이터를 보호하는 기술이다.

데이터베이스 접근 제어 외에 데이터베이스 보안에 관한 국내외 법률과 규정은 2가지를 주요하게 강조한다.

  1. 암호화를 통한 데이터베이스 보안
  2. 엄격한 암호키 관리를 통해 데이터를 보호

데이터베이스 암호화의 목적은 비정상적 데이터 유출이 발생할 경우, 복호화를 어렵게 만드는 것이다. 암호키는 암호화 뿐만 아니라 복호화할 때도 사용하므로 매우 신중하게 관리하여야 한다.
랜덤 키에 의해 암호화된 데이터는 해커들이 복호화를 하기 어렵게 만든다. 따라서 복호화를 해야만 하는 사용자나 시스템 이외에 다른 사용자가 암호키에 접근하는 것을 통제해야 한다.

특징

데이터베이스 암호화의 보안성은 강화된 국정원 보안 적합성 검증 기준을 만족하여야 한다.

  1. 개정된 보안 적합성 검증 기준에서 요구하는 “암호 모듈 검증 기준”을 만족하여야 한다.
  2. 데이터베이스 운영을 불가능하게 할 정도의 제약사항이나 성능 저하는 최소한으로 해야 한다.

분류

DB암호화 방식은 스트림 암호화 그리고 블록 암호화 두가지로 나눌 수 있다.

* 블록 암호 스트림 암호
장점 높은 확산 / 기밀성 / 해시 함수 암호 속도가 빠름 / 에러 전파현상 없읍
단점 암호 속도가 느림 낮은 확산 / 삽입과 변형이 쉬움
단위 블록 비트
사례 DES, AES, IDEAM SEEDM RC5 LFSR, MUX generator
대상 일반 데이터 전송, 스토리지 저장 음성, 오디오 / 비디오 스트리밍

스트림 암호화

플러그인 방식

암호화 관련된 보안정책 데이터베이스와 암호화 및 복호화 처리를 위한
서버 엔진을 데이터베이스 관리 시스템에 플러그인시킨 방식으로, 필터 방식이라고도 한다

플러그인 방식의 구성에서 데이터베이스 테이블 또는 컬럼 단위의 암호화를 적용하면 암호화된 테이블 이용을 위하여
추가적인 오브젝트들이 생성되므로, 운영 및 백업 등 데이터베이스에 관련된 작업을 수행할 때 이러한 오브젝트들을 함께 고려하여야 한다.

  • 장점
    1. 구축이 용이하고
    2. 애플리케이션으로부터 독립성을 제공 모든 작업이 그래픽유저인터페이스(GUI) 기반으로 이루어져 관리 편의성
    3. 암호화 컬럼에 대한 일치검색, 범위 검색 인덱스 지원이 용이
  • 단점
    1. 암·복호화 시 데이터베이스 서버의 CPU를 사용하기 때문에 성능 이슈가 발생했을 때 쿼리 수정이 필요
    2. 데이터베이스 서버에 직접적인 부하가 걸려 성능을 고려할 필요가 있다는 것이다.
    3. 애플리케이션 서버에서 DB계정이 탈취될 경우 복호화된 평문 데이터 유출이 가능
항목 내용
알고리즘 SHA-256·384·512 및 키 길이 128 비트 이상의AES, TDES, SEED, ARIA 등 지원
암·복호화 위치 DB 서버
DB 서버의 부하 높음
색인 검색 가능, 별도 인덱스 기능 필요
배치 처리 가능
애플리케이션 수정 없이 적용할 수 있는 구조이나 암호화 칼럼 사이즈 증가 성능 이슈 등이 있는 경우 일부 수정 필요
접근통제 DB에 접속하는 DB 클라이언트에서 사용자 식별 가능
API 방식

1

API 방식은 암·복호화 모듈을 애플리케이션 서버 내에 설치하고 이곳에서 암·복호화를 수행하는 구조로 애플리케이션의 수정을 동반한다.

  • 장점

    1. API 방식의 구성에서는 DB시스템의 영향도가 낮고 DBMS의 부하를 분산하는 효과
    2. 애플리케이션 서버에서 DB계정이 탈취되더라도 데이터가 암호화되어 있기 때문에 유출 위험이 적다.
    3. 데이터베이스 서버의 성능 저하 없이 구축이 가능하고, 구축 비용이 상대적으로 저렴하다는 장점.
  • 단점

  1. 각각의 애플리케이션 서버에서 암·복호화 처리를 수행하므로 중앙화된 접근 통제가 어려워 데이터베이스 내부에서 수행되는 연산 처리 과정에서 암호화한 데이터 처리가 불가
  2. 암호화 대상 데이터와 관련된 모든 소스 영역의 수정이 필요하며 내부에서 업무 처리가 필요한 경우 별도의 데이터베이스 관리 시스템 API 모듈이 필요
  3. 향후 응용 시스템의 신규/ 변경 등에 따라 관리 효율성이 저하되고, 접근제어 솔루션을 추가 도입하게 되면 비용이 발생
항목 내용
알고리즘 SHA-256·384·512 및 키 길이 128 비트 이상의AES, TDES, SEED, ARIA 등 지원
암·복호화 위치 애플리케이션 서버(DB 서버가 어플리케이션 기능을 수행할 경우 DB 서버에서 암‧복호화 가능)
DB 서버의 부하 낮음(애플리케이션 서버에 부하 발생)
색인 검색 일치검색 가능, 부분일치검색 불가(부분 암호화 시 가능)
배치 처리 가능
애플리케이션 애플리케이션의 소스(암호화 테이블과 관련된 부분)를 수정해야 함
접근통제 암복호화 작업이 어플리케이션 서버 상에서 수행되기 때문에 DB 접속정보를 통한 사용자 식별은 불가, 애플리케이션 서버에 접속하는 서비스 접속자만 식별 가능
하이브리드 방식

1

하이브리드 방식은 API 방식플러그인 방식이 합쳐진 것 으로 플러그인 방식의 성능 저하 이슈 개선을 위해 API 방식의 장점을 채용한 것이다.
메시지는 대칭 키로 암호화하고, 대칭 키 암호는 암호화에서 사용한 세션 키는 의사난수생성기로 생성한 뒤, 세션 키는 공개키 암호로 암호화하는 방식이다.

  • 장점
    1. 성능이 우선시 되는 환경에서는 API를 적용
특정 기간 동안 암호화 대상 DBMS에서 수행된 모든 SQL 정보를 수집한 후,
각 SQL별로 사용한 테이블/컬럼, DB 암호화 적용 시 영향을 받는 SQL 사용 빈도, CPU, 메모리, 스토리지 등의 영향도를 파악 후
SQL을 사용하는 프로그램에 API방식을 적용하면 적용대상의 부하를 최소화하면서 효과를 높일 수 있다. 
  • 단점
    1. 두 방식의 장점을 모아놓은 것이기 때문에 속도성능 개선의 효과를 볼 수 있지만, 구축 투자 비용이 상대적으로 높다.
항목 내용
암호 알고리즘 SHA-256/384/512 및 키 길이 128 비트 이상의AES, TDES, SEED, ARIA 등 지원
암·복호화 위치 어플리케이션 서버 및 DB 서버
DB 서버의 부하 보통
색인 검색 가능
배치 처리 가능 (플러그인 방식에 비해 API방식이 대량 데이터 처리에 용이하여 API방식 활용)
어플리케이션 API를 적용하는 부분은 소스 수정 필요

블록 암호화

TDE 방식

1

TDE (Transparent Data Encryption)

암호를 풀 수 있는 암호화 키를 데이터베이스 서버에 파일 형태로 두는 방식으로,
데이터베이스 관리 시스템의 암호화 기능을 이용하여 데이터 파일을 저장할 때 암호화하고,
파일에 저장된 내용을 메모리로 가져올 때 복호화한다.

DBMS 커널 레벨에서 처리되므로 애플리케이션에 대한 수정이 없고 인덱스의 경우 DBMS 자체 인덱스 기능과 연동이 가능하다.
암호화 파일을 사용하여 테이블 스페이스를 생성하고, 암호화 대상 테이블을 해당 테이블 스페이스로 이동시키는 방식이고,
운영체제 커널에서 데이터베이스 블록 단위로 자동으로 암호화와 복호화를 수행한다.

  • 장점

    1. 암호화로 인해 기존 시스템에 미치는 영향이 적고 속도가 빠르며 애플리케이션을 수정하지 않아도 된다.
  • 단점

    1. CPU 부하
    2. 어려운 키 관리로 인해 데이터베이스 서버 해킹 시 키가 유출될 수 있다.
항목 내용
알고리즘 SHA-256/384/512 및 키 길이 128 비트 이상의 AES, TDES 등 지원
암·복호화 위치 DB 서버
DB 서버의 부하 낮음
색인 검색 가능(DBMS 연동)
배치 처리 가능
애플리케이션 수정 없음
접근통제 DB 자체 ACL에 의해 DB계정만 통제하여 접근권한이있는 DB사용자들은 복호화된 데이터 열람 가능
파일 암호화 방식

1

운영체제 영역의 파일 전체에 암호화, 복호화를 적용하는 방식이다.
파일에 대해 직접적으로 암호화를 수행하므로 데이터베이스의 데이터 파일뿐 아니라 로그파일, 이미지파일, 음성/영상 등의 비정형 데이터에 대한 암호화 적용이 가능하다.

이 방식으로 구성하면 애플리케이션의 수정이 없고, 인덱스의 경우 DBMS 자체 인덱스 기능을 사용할 수 있으며, 거의 모든 DBMS에 적용이 가능하다.

  • 장점

    1. 애플리케이션 환경에서 완벽한 독립성을 제공
  • 단점

    1. 하드웨어나 운영체제 자체에서 발생하는 오류로 인해 서비스 장애가 발생할 수 있다.
    2. 파일 시스템을 사용하지 않는 DB에서는 사용할 수 없기 때문에 운영체제 지원 가능 여부를 확인해야 할 필요가 있다는 단점이 있다.
항목 내용
알고리즘 SHA-256/384/512 및 키 길이 128 비트 이상의 AES, TDES, ARIA 등 지원
암·복호화 위치 DB 서버
DB 서버의 부하 낮음
색인 검색 가능
배치 처리 가능
애플리케이션 수정 없음
접근통제 OS계정 및 응용 프로그램 단위로 접근 통제 수행,DB 내에 존재하는 DB사용자들은 복호화된 데이터 열람 가능
기타
  1. 토큰 방식

데이터의 숫자나 형태, 구조를 그대로 유지하면서 난수와 같은 임의의 토큰(대체값)과 별도의 테이블에 저장한 암호화 데이터를 연결하고 평문데이터의 일부 또는 전체를 토큰으로 대체하여 원본 데이터의 식별이 불가능하도록
하는 방식으로 하이브리드 방식과 같이 DB 서버 또는 애플리케이션 서버에서 암·복호화 작업이 가능하다.
토큰의 데이터 타입을 원래 암호화 대상 데이터 타입과 동일하게 설정하면 기존 테이블의 구조를 변경하지 않아도 되며, 암호화 이후 컬럼 사이즈가 변경되지 않아 DB 서버 및 메모리 증설 등이 필요하지 않다.
다만 토큰 값과 암호화 데이터를 저장하기 위한 별도의 관리 서버가 필요할 수 있으며, 일부 API 방식의 애플리케이션에 한하여 수정 및 변경이 필요하다. 이러한 토큰 방식을 적용할 때에는
데이터 값을 대체하는 난수의 생성 방식이 원본 데이터를 유출할 수 없는 알고리즘으로 구성되었는지 보안성 측면의 검토가 필요하다.

  1. 시큐어프록시 방식

독립된 프로세스로 구동하여 애플리케이션과 DBMS 중간에서 암·복호화 처리를 하는 방식으로 플러그인 방식과 동일하게 DBMS에서 암·복호화를 수행하나 뷰 또는 트리거를 사용하지 않고
암·복호화 함수를 사용하여 원 테이블의 데이터를 입력 또는 조회할 수 있다. DB 서버 부하 등을 보완하기 위해 암 복호화 작업을 수행하는 에이전트를 별도의 서버에 탑재하여 암·복호화 작업을 수행하는 것이 가능하나
보안 및 관리에 대해 추가적인 고려가 필요하다.

  1. 필터 방식

독립된 프로세스로 구동하여 애플리케이션과 DBMS 중간에서 암·복호화 처리를 하는 방식으로 API 방식과 동일하게 애플리케이션 서버에서 암 복호화 처리를 하는 방식이다.
자바 기반의 애플리케이션에서 소스 수정 없이 암 복호화 할 수 있다. 하지만 등록된 SQL만 암 복호화가 가능하여 암 복호화 대상이 되는 SQL의 수집 및 변경이 필요하다.
암 복호화 작업을 수행하는 에이전트를 별도의 서버에 탑재하여 암 복호화 작업을 수행하는 것이 가능하나 보안 및 관리에 대해 추가적인 고려가 필요하다.

  1. 어플라이언스 방식

애플리케이션 서버와 DB 서버 사이에 어플라이언스 장비를 설치 또는 프록시 방식으로 구성하여 해당 장비에서 테이블 컬럼 분석을 통해
암·복호화 컬럼 여부를 파악하여 실시간으로 암·복호화 처리 및 키 관리가 수행되는 방식이다. 애플리케이션 수정 및 변경을 수행하지 않고 구현이 가능하고, 필요 시 DB 서버 또는 애플리케이션
서버에 별도의 에이전트를 설치하여야 한다. 어플라이언스 장비에서 암 복호화 및 키 관리가 수행되어 암 복호화 및 키 관리에 대한 보안성이 높고 암호화에 따른 DB 서버나 애플리케이션 서버의 부하가 상대적으로 적다.
그러나 이 방식을 적용하려면 암·복호화 처리가 필요한 데이터양에 따라 다수의 어플라이언스 장비가 필요할 수 있어 어플라이언스 장비의 장애에 대한 대비 및 배치작업 수행 시 성능 등을 추가적으로 검토할 필요가 있다.

  1. 인플레이스 방식

플러그인 방식에 데이터베이스 엔진 내부에서 암호화, 복호화 기능을 수행하게 한 것으로, 애플리케이션 환경에서 완벽한 독립성을 제공하고,
플러그인 방식보다 더 빠른 암호화 성능을 보인다. 다만 암호화 이외의 접근제어, 보안 감사 등 데이터베이스 보안 기능 지원을 위해 별도의 패키지를 사용해야 한다는 단점이 있다.

🧾Reference

DB암호화

반응형

'이론' 카테고리의 다른 글

What is a 클러스터?  (0) 2022.02.26
Ajax vs Axios  (0) 2022.02.26
BDD vs TDD  (0) 2022.02.26
비동기 데이터 전송 ajax  (0) 2022.02.26
웹 암호화 종류  (0) 2022.02.26
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함