개인정보Feb 13, 2007

다른 학교는 어떨지 모르겠지만 내가 다니고 있는 동국대학교의 경우, 수강신청은 전용의 프로그램을 통해 할 수 있다. 수강신청 지정일이 아니면 프로그램의 구동 자체가 불가능하기 때문에 미리 시간표를 짜 보는 방법은 빈 시간표 종이에 일일히 그려보거나, 좀더 “현대적으로” 한다면 기껏해야 엑셀을 이용해서 짜 보는 수밖에 없다.

종이로, 엑셀로 깨작거리고 있자니 21세기도 벌써 5년이 훨씬 지난 2007년에 이게 무슨 꼴인지 싶어서 잔머리를 좀 굴렸다. 일단 학교 홈페이지에 공개되어 있는 강의 시간표를 긁어다가 파이썬과 BeautifulSoup 로 파싱해서 DB에 박고, 그걸 통해 시간표의 ‘시뮬레이션’ 을 할 수 있는 페이지를 자바스크립트로 만들었다. 스크립트의 크기나 브라우저의 부하 등이 문제가 될 수 있기에 2000여개에 달하는 강좌들의 정보를 읽어들이는 것을 포함한 이런저런 잡다한 기능들은 AJAX를 활용했다.(http://dna.dongguk.ac.kr/timetable/)

작업을 마치고 일주일쯤 전 학교 홈페이지에 주소를 공개했다. 반응은 제법 좋았었고, 로그를 확인해 보니 대략 5000명의 사람들이(접속해온 IP주소의 개수를 세었다) 사용했다. 문제는 시간표 초안을 저장하거나 불러오기 위해서는 ID를 만들어야 하는데, 여기에 대한 인증도 AJAX로 처리를 한 것이다. 그것 자체는 문제가 되지 않지만, 패스워드의 암호화를 서버에서 수행하게 한 데다가 멍청하게 GET메소드로 인증 스크립트를 호출하게 했었다.

여기에 대해서는 전혀 생각을 안하고 지내다가, 로그를 열어보다가 ID와 패스워드가 그대로 노출이 되어 있는 것을 발견했다. login.php?userid=blahblah&password=blahblah 와 같은 식으로 말이다.(물론 DB상에는 암호화된 상태로 저장되어 있지만.)

그 사실을 깨닫자마자 바로 스크립트를 수정하고, 어차피 별로 쓸데없는 기록이기에 기존에 쌓인 로그는 전부 지워버렸다.

대부분의 사용자들이 ID와 비밀번호는 거의 통일해서 사용하고 있고, 기껏해야 나처럼 나름의 보안레벨을 규정지어 놓고 “금융계열은 어떤 비밀번호로, 이메일은 어떤 비밀번호로, 기타 잡다한건 어떤 비밀번호로..” 와 같은 식인 것을 생각해 보면 오싹한 일이다. 만약 내가 다른 마음을 먹었으면 거기에서 수백개의 ID와 비밀번호를 얻어낼 수 있었을 것이다. 분명 그중의 일부분은, 어쩌면 대부분은 다른 사이트에서의 사용 역시 가능할 것이다.

어떤 사이트는 비밀번호찾기를 눌러 보면 비밀번호의 일부분을 보여 줘서 유추할 수 있게 해 주기도 하고, 심지어 비밀번호를 통째로 알려주기도 한다. 이건 “우리 사이트는 사용자들의 비밀번호를 암호화하지 않고 그대로 저장합니다” 라고 광고하는 것과 다를 게 뭐가 있나?

비단 비밀번호 뿐만이 아니다. 특정한 네트워크의 관리자는, 해당 네트워크 내에서 오고가는 암호화되지 않은 모든 통신의 패킷을 고스란히 볼 수 있다. ID와 비밀번호는 물론이고 이메일, 메신저, 채팅 등등..

정보화의 세상에서, 우리는 벌거벗은 채 살아가고 있다.
다만 아무도 의식을 하지 못할 뿐.

Leave a Message

4 Messages

아하하=_=;
다 같은 비번쓰고 있는데;;;

오빠 근데 나만 그런진 모르겠지만;
댓글이 뭔가 이상해요~

나도 동아리 홈페이지 정도의 비밀번호는 거의 비슷비슷하지.
뭐 그래도 DB상에는 md5() 로 암호화되서 박혀있으니까. 지금은 전송시 아예 해싱해서 보내게 바꿔뒀음.
로그를 열어봤다가 처음 눈에 들어온게 내 ID와 비밀번호였던 게 다행이랄까? :p

그나저나 댓글부분이 제대로 안보이는 현상?
IE서만 그러던데 귀찮아서 그냥 놔두는중. -_-
나중에 심심하면 고쳐볼라고 =3 =33

RSS feed for comments on this post.
TrackBack URI : http://encyphered.net/blog/195/trackback/

Leave a Message