디비 보안에 관한 문제라고 생각되는군요.
이것에 관해서는 많은 생각을 해봐야 합니다. 만약 가장 중요한 자료라고 생각된다면 자체를 encryption 해서 저장하는 방법을 반드시 강구해야 합니다. 하지만 디비 보안은 일차적으로는 시스템 보안과 밀접한 연관이 있습니다. OS 가 뚫지 않고서 디비 서버로 치고 들어 온다는 것은 거의 불가능에 가깝기 때문이지요. 더군다나 그런 자료를 다룰만한 대형 사이트라면 디비 서버가 거의 분리되어 있는 경우가 대부분이기 때문이지요.
그렇게 보면 디비보안의 일차목적은 시스템보안입니다. 이것이 철저하면 일차적으로 안심해도 좋겠지요. 두번째는 디비서버의 보안입니다. 디비서버는 자체적으로 인증 시스템을 사용할 수 있습니다. 이것의 철저한 설정을 통해서 디비서버의 보안을 해야만합니다. 디비서버의 자료는 파괴될 망정 유출되어서는 안되는것입니다. 가장 치명적인 것은 유출되는 것입니다. 그 다음이 파괴되는 것이지요.
다음으로 할 보안대책의 자료 자체의 암호화입니다. 이것까지 요할 정도라면 엄청난 보안 자료이겠지요 (거의 국가 특급비밀에 해당할 정도의 ...:/)) 하지만 이것 또한 고려해야만 enterprise 급의 보안이라고 생각할 수 있습니다. 이런 맥락에서 Oracle 과 같은 상용서버는 encryption 모듈을 따로 제공해 주고 있습니다. 그 가격이라는 것은 저게 묻지 마십시오. 불문가지입니다. 그럼 현재 우리들이 직접 다루고 있는 PostgreSQL/mySQL/mSQL 의 경우 어떻게 될까요. PostgreSQL 의 경우 디비서버로 접근시 인증 방법에서 여러가지 보안방법을 제공하고 있습니다. KERBEROSE 를 사용할만 하다고 생각됩니다. 다음으로 mySQL 의 경우 접근시 보안법에 대해서는 그렇게 신통하다고 생각되지 않습니다. 하지만 상용서버를 구입할 경우 자료압축 모듈을 포함시켜 준다는 글이 있더군요. 이걸 사용할 경우 디비 자료를 해프게 유출하는 것은 막을 수 있을지 모르지만 디비서버로의 접근자체의 보안문제에 약간의 문제가 있으므로 큰 점수를 주고 싶지는 않습니다.
좋은 방법은 그냥 자신이 C 함수로서 암호화 모듈을 UDF 로서 등록해 사용하는 방법이 좋을 것 같습니다. 이러한 기능은 다행히 PostgreSQL에서 지원되는 방법입니다.
현재로서는 이 정도의 해법외에는 제시할 수가 없군요. 어디선가 SSL 을 이용한 PsotgreSQL 디비서버의 보안법에 관한 프로젝트가 진행중인 걸 언듯 보았는데 그 사이트를 잊어 버렸습니다. 다음에 다시 찾게 되면 연락을 드리겠습니다.
부디 좋은 시간 되시길 바랍니다.
> 예..감사합니다.
> 그런데 예를들어 온라인 상으로 상용서비스를 할 경우에는
> 유저의 패스워드나 신용카드 번호 같은 것들은
> 그대로 저장하지 않고encryption을 거친 뒤에
> 저장을 하는 것으로 알고 있거든요.
> 만약에 유출될 경우를 대비해서 말이죠.
> 그런 경우를 대비해서 실제 운영자들은 어떻게 하는지도
> 궁금합니다.
>
> 최동욱
> > > 안녕하세요?
> > >
> > > 유저 정보를 저장할때 암호화하고 싶은데요.
> > > 듣기로는 암호화를 시켜주는 함수같은것이
> > > 있다고 하거든요.
> > > 그런것이 있는지 알려주세요~
> > >
> > > 최동욱
> >
> > 안녕하세요.
> >
> > 저도 자세히는 알지 못하지만 그런 명령어는 없는 것으로 알고 있습니
> 다.
> >
> > '유저 정보를 저장'한다는 말씀은 테이블을 만들어 저장한다는 말씀 같
> 고
> > 아마도 정상적인 쿼리가 이루어져도 읽을 수 없도록 하고 싶으신 것 같
> 은
> > 데... 구조적으로 그것이 어떤 의미가 있는지를 모르겠습니다. (암호화
> 하는
> > 함수가 있다면 암호를 푸는 함수가 있을 것이고
> > 그렇다면 쿼리시에 그 함수를 붇여서 쓰면 간단히 볼 수가 있을
> > 태니까요.)
> > 만약 특정 사용자만이 볼수 있도록 하는 것이 목적이라면 사용자를 등
> 록
> > 하는 방법을 사용하는 것이 낳지 않을까요?
> >
> > 자세히는 알지 못하는
> > 인천의 나사 풀린 산호...
|