본문 바로가기

게임과 IT

DB의 암호화 방식이 이제 바뀌어야 하는 것 아닐까?


네이트가 뚫렸다.
온나라가 시끄럽다. 나도 아침에 갤럭시탭으로 접속해서 이동중에 네이트의 비번을
바꾸려다 자꾸 에러나서 우선 같은 비번을 사용하는 다른 포털사이트들의 비번을 바꾼
후에야 사무실에 들어가서 PC로 비번을 바꿨다.

난 이런일이 있을 때마다. 아니 지금 다시 생각해 보면 약간 의문이 든다.
이게 시스템 보안만 탓할 일인가?

난 DB 관리에도 문제가 있다고 생각한다.

방화벽을 세우고, 중요서버와 웹서버를 분리해도, 결국은 훔쳐갈 수 있다.
내부 프로그래머들도 데이터에 쉽게 접근할 수 있다. 
가장 기본적인 고객 db를 생각해보자.

아이디, 이름, 주민번호, 이메일, 비밀번호, 주소, 전화번호, 핸드폰번호

비밀번호는 대부분 암호화 되어있다. 그래서 그 정보는 안전하다고 하는데...
그건 중요치 않다.
이름과 이메일 그리고 핸드폰 번호만 공개되도 얼마나 괴로운 일들이 많을까?

우선 쉽게 생각할 수 있는 대안은
첫째, 고객파일의 unique한 식별 값.
즉 아이디를 제외한 모든 자료를 암호화 해야한다.
(지금 DB 들은 비밀번호만 암호화 되고 있다. 관리자 조차도 특별등급으로 설정된
 db 테이블의 내용은 볼 수 없도록 해야한다. )

암호화하고 복호화하는 key까지 도둑맞을 수 있으니 그 방법 또한 생각해 내야 한다.

둘째, 고객파일을 분산시켜야 한다. (이렇게 한다면 DB기본 설계 공학(?) 에 맞지 않겠다.)
하지만 이것도 기술상으로 고민해 봐야한다.
혹은 가능하다면 테이블별로 security가 달라야 한다.

셋째,데이타베이스의 테이블명 자체도 암호화 해야한다.
(그렇다면 현재 쓰고 있는 mysql mssql 오라클 등등.... DB 설계자 들이 난리가 나겠지만!)


전부 황당한 소리들이었다.
그래도 첫째 방법은 실현가능하고 그리 어려운 일은 아니라고 생각된다.
물론 지금 프로그램에서 고객테이블에 접근하는 부분은 전부 수정해야 되겠지만,