DB에는 사용자가 입력한 비밀번호가 그대로 저장되는 것이 아니라, 보통 hash라는 단방향 함수에 넣어서 얻은 값이 저장됩니다. 단방향 함수이기 때문에 DB에 저장된 이 값으로는 원래 비밀번호를 알아낼 수 없지요.
하지만 사이트 운영자라면 원래 저장된 hash값은 따로 적어놓고, 다른 임의의 비밀번호로 역시 hash값을 얻어서 DB에 치환해넣으면, 비밀번호를 바꿀 수 있지요. 그리고 필요한 작업을 수행한 뒤, 원래의 hash 값을 다시 복구해 놓으면 원래의 사용자는 이 사실을 알 수 없지요.
그런데 이런 일은 거의 벌어지지 않는데요.. 이유는 굳이 그럴 필요가 없기 때문입니다. 비밀번호를 제외한 다른 내용들은 보통 DB에 그냥 그대로 저장되기 때문에, DB에 접근가능한 사람이라면 굳이 비밀번호를 알지 못해도, 이미 필요한 데이터에 다 접근할 수 있으니까요.
이런 일을 막으려면, 웹브라우져 상에서 모든 데이터를 암호화해서 서버로 전송하고, 서버는 그걸 저장하면 됩니다. 서버 운영자든 프로그래머든, 무엇보다 서버(기계)도 암호를 모르는 이상 그 내용을 알 기는 매우 어렵습니다. 그건 기계를 압수수색해간 국가기관도, 몰래 서버에 침입한 크래커도 마찬가지 입니다. (시스템에 다른 보안결함이 있지 않은 한.)
그러나 이런 식의 방식이 잘 사용되지 않는 것은, 이런 경우 서버가 그 데이터로 할 수 있는 일이 거의 없기 때문입니다. 가령 블로그 서버라면 저장된 데이터를 원래 주인 말고 다른 사람들에게도 보여주어야 할텐데, 암호화된 데이터로는 보여줄 수 없겠죠? "크고 위대한"('무척 비싼'이라고 읽는다) 기계가 단순 데이터 저장고 역할 외엔 할 수 없게 되는 거지요.
하지만 이런 방식이 전혀 쓸모가 없는 것은 아닌데요. 가령 같은 블로그 게시물이라 해도, 비공개로 해놓은 데이터는 암호화해서 저장할 수 있겠지요.
하지만 이렇게 사적인 사용자 데이터를 암호화해서 저장하는 방식들은 그다지 널리 퍼져있지 않고, 그야말로 "운영자의 양심"에 맡기는 방식들이 거의 99.9% 대부분인데요, 사실 그 용도 상 어쩔 수 없는 경우를 제외하곤 모든 사적인 데이터가 암호화되서 저장되는 게 상식이지요. 현재 기술수준으로 그게 불가능한 것도 아니고요.
사실 제대로 된 통신보호법 개정이라면, 통신사업자들에게 공안기관이 언제든지 도청할수 있는 장치를 붙일 의무를 부여할 것이 아니라, 꼭 필요한 데이터를 제외한 모든 사적인 데이터들은 "기본으로" 암호화해서 저장하도록, 그래서 운영자들이나, 시스템에 침입한 크래커가 마음대로 들여다볼 수 없도록 해야하는 거지요. 그래야 끊이지 않고 일어나는 개인정보 유출사고를 줄일 수 있습니다.
-ㅁ-!!!! 이런 글을 쓰면 누군가 전문가가 나타날 거라고 생각했지만 막상 나타나니 너무 고맙네요 가능한데 안 하는 것 뿐이구나!! 글구 우리 이메일 보안 서버 얘기했던 게 바로 이거군요 그래서 그 데이터 암호화하는 게 풀려면 한 문장에 한 달 걸린다, 이런 얘기였는데 이제야 머릿속에 쏙쏙 들어오네요 ㅋㅋ ㄱㅅㄱㅅ 근데 어쨌든 아무리 암호화해도 볼라면 다 볼 수 있다는 말을 듣고 말았었거든요. 아유.. 암튼 고맙네연... 님 되게 전문가시다 우리 진보넷에서 자원활동 졈..(자원활동 드립) 설마 진보넷 사람은 아니겠지 ㄱ-;;;;;;;;