2008년 12월 16일 화요일

DB 암호화

PCI DSS requirements 3.4~6의 범위에 걸친 요구사항 충족을 위하여
카드번호 암호화가 필요합니다.

다양한 암호화 제품이 존재하지만
나름대로 아래와 같이 구분해보았습니다.

1. DB암호화 전용제품
- 기존 DB에 적용이 쉽고 아주 신속하게 반영이 가능함.
- 기존 어플리케이션을 거의 손댈필요없이 적용가능
- 높은 가격

2. 범용 암호화 제품
- DB암호화에 바로 적용할 수 없음.
- Application 수정 필요
- 기타 management tool을 추가 제작 필요
- 상대적 저가


동작방식에 따라서는 아래와 같은 구분도 가능합니다.
A. DB Connection pool에 하나의 layer로 동작하는 방식
- DB Connection pool을 치환하여 암복호화를 처리하는 방식
- Application tool을 변경할 필요가 없음.
- 암복호화 연산을 DB서버가 아닌 Application Server에서 진행하여 연산부하 분산 효과

B. DB내에서 동작하는 application 방식
- DB서버내에서 trigger로 동작이 유발되며 암복화를 진행하는 방식.
- 전통적으로 많이 사용되는 방식이지만 암복호화 연산부하 가중 우려가 있음.

C. 별도 외부 전용 하드웨어에서 처리하는 방식
- 암복호화 연산은 전문 하드웨어에서 처리


[HSM 장비]
우리회사는 HSM 장비를 이용합니다.
Key관리 관련 부담을 줄여서 PCI DSS requirements 3.5, 3.6의 요건을 쉽게 충족할 수 있습니다.
별도의 application을 개발및 소스 수정의 부담이 있지만
상대적으로 저렴한 가격이나 높은 활용도는 충분한 장점입니다.

선정된 암호 알고리즘 및 보안비도 : AES 256bit symmetric algorithm, SHA-256 hash algorithm

[암호화 여부 검증방식]
Database의 모든 table list를 도출하고
각 table당 100~500개 정도의 record를 dump뜨고
dump뜬 내용을 대상으로 카드번호 존재유무를 정규표현식으로 검색하여 확인합니다.

댓글 없음:

댓글 쓰기