본문 바로가기

IT 그냥 재미로

당신의 패스워드는 안전하십니까? - 패스워드 암호화 시급하다

 
 당신의 패스워드는 안전하십니까?
패스워드 암호화 시급하다

며느리도 안가르쳐줘! 하지만 상담원은 다 알고 있다!

요즘 이메일의 재미에 푹 빠진 '아무개'씨는 자신의 계정 패스워드를 아무에게도 알려주지 않는다. 그 누구에게도 알려주지 않았으므로 안전하다고 생각한 '아무개'씨. 하지만, 어느 날... 패스워드를 잠시 잊어버린 그는 그 사이트의 고객상담실에 전화를 해보고는 깜짝 놀라게된다.

    네.. '아무개 회원님이 맞으시네요. 회원님의 패스워드는.. 1234입니다'

아무에게도 안가르쳐준 패스워드를, 상담원들은 손쉽게 알 수 있단 말인가!

아무개씨는 혼란에 빠진다. 저 패스워드로 거의 모든 사이트들을 접속하고 있으며, 심지어 인터넷 뱅킹의 암호도 모두 통일해 놓았으니 말이다.


패스워드는 어떻게 저장되는가?

정답은 '안전이 보장된 큰 포털 사이트와 제로보드 등의 이름난 공개 게시판 시스템, 안전이 보장된 쇼핑몰 등을 제외하고는' "그냥 아무런 대책없이, 내가 입력한 그대로 저장된다"이다.

게시판 시스템으로 간단히 사이트를 운영하는 수많은 곳에서도 사용자의 패스워드는 운영자 권한이면 쉽게 열람이 가능하다. (글쓴이의 경험으로는 윈도우즈쪽의 시스템을 사용하는 웹사이트에서는 대부분 그대로 저장하고 있었다)

'패스워드 찾기' 기능을 사용해서 이메일로 패스워드를 그대로 보내주는 곳은 모두 '암호화'가 안되어 있는 곳이고, 누군가 나쁜 사람이 마음만 먹으면 얼마든지 유출이 가능하다는 뜻이된다. (암호화가 되어 있으면 임시 패스워드를 발급하는 방법으로 알려준다.)

주민등록번호 도용으로 온나라가 떠들썩한게 얼마전이다. 그래서 주민번호에 대한 대책으로 '가상 주민번호'제도를 도입하는 등, 업체 등에서도 신속히 대응하고 있다. (물론, 아직도 첫걸음 수준이지만...)

     [관련기사] 개인정보 노출 걱정 사라진다 (2006년 10월 4일 디지털타임즈)
     http://news.media.daum.net/digital/computer/200610/04/dt/v14246001.html

하지만,  더 중요한 패스워드에 대한 보안에 대해서는 이슈화되지 못하고 있다.

피싱을 아십니까?

개인정보(Private data)를 낚는다(Fishing)는 뜻의 피싱(Phising)은 쉽게 말하면,"가짜 사이트"를 만들어서 사람들의 개인 정보를 빼내는 범죄를 말한다.

즉, daum.net을 치려다가 오타를 내게 되면, 보통은 다른 사이트로 이동해야 하는데,

'다음'과 똑같은 페이지를 디자인해 놓는 방식이다.

접속한 사람은 아무 생각없이 로그인을 하게 되고, 그 정보는 고스란히 피싱 사이트를 만든 시스템에 저장이 된다.

당연히, 그 자료는 악용이 되는데, 최근에는 이메일이나 여러가지 기법을 사용한 피싱 기법이 개발되어 많은 피해자를 낳고 있다.

하지만, 우리가 우려해야 할 것은 피싱만은 아니다. 우리가 무심코 가입하는 수많은 사이트들.. 주민번호를 넣지 앟아서 안심하고 있는 수많은 사이트들 조차도, 가장 중요한 정보인 'ID'와 '패스워드'를 고스란히 가지고 있다는 뜻이다.

물론, 그 많은 사이트들을 모두 '범죄자'로 몰고 갈 생각은 전혀 없다. 단지, 범죄자들이 그 방법을 사용함으로써 선량한 사이트 운영자마저 철퇴를 맞을 수 있다는 뜻이다.


패스워드는 암호화 되어야 한다

말 그대로 '암호'인 패스워드는 암호화 시켜서 저장해야 한다.

'그러면 어떻게 패스워드가 맞는지 검사하느냐?'는 질문이 나올법한데, 이미 유닉스 기반의 운영체제에서 수십년간 사용한 방법이 있다. (유닉스, 리눅스 시스템에서 계정의 암호는 운영자도 알 수 없도록 암호화 되어 있다)

또한, 제로보드 등의 공개 게시판 시스템은 이미 오래전부터 패스워드와 주민번호에 대해서 암호화 기법을 사용하고 있다. (물론, 코드를 수정해서 사용하는 게시판도 있으므로 100% 믿을 수는 없다)

간단히 설명하자면...

단방향 암호화 함수 (이 단어가 학술적이지 않을지는 몰라도 이해에는 큰 도움이 되므로 사용함)란 것을 사용하는데, '1234'를 넣으면 '36ff78fd0cf7ee31'와 같은 고유한 문자열을 결과값으로 내주는 함수다. 물론, 다른 문자열에 대해서는 절대로 같은 문자열이 나오지 않는 함수이다.

이렇게, 사용자가 가입시 1234를 넣더라도 DB에는 36ff78fd0cf7ee31 로 저장을 하고,

나중에 로그인 할때도, 사용자가 입력하는 값을 암호화 함수에 넣은 결과값을 저장된 36ff78fd0cf7ee31와 비교만 하면 된다.

좀 복잡한 것 같지만, 이미 널리 이용되고 있는 방법이며, 리눅스 계열에서는 쉽게 구현이 가능하다. 하지만 윈도우즈 계열에서는 그렇게 널리 사용하지 않은 듯 보이며, 글쓴이의 지식으로는 많은 사이트들이 패스워드 암호화에는 큰 관심을 두고 있지 않다고 알고 있다.


누가 고양이 목에 방울을 달까?


인터넷 서비스 업체와 개발자, 사이트 운영자들이 패스워드 암호화를 자발적으로 도입하고 운영해야 한다.

이때, 정부에서 단방향 암호화 관련 표준 코드들을 제시해 주면 좋다. 물론, 인터넷에는 많이 공개되어 있긴하지만, 이것을 찾고 적용하고 검증하는데는 전문가가 아니라면 좀 시간과 노력이 많이 든다.

하지만, 그러한 대책이 있기 전에 사용자들은 어떻게 해야 하는가?

정기적으로 패스워드를 바꾸라고 다들 권장하지만, 그렇게 하는 사람이 몇이나 될까?

인터넷을 사용하면서 패스워드 자주 바꾸는 것은 정말 귀찮은 일이다.

그래서 차선책으로 내세울 수 있는 것은...

대형 포털등 안심할 수 있다고 판단되는 곳에 사용하는 중요한 패스워드와
남이 알아도 크게 피해가 가지 않는 곳들에 사용하는 덜 중요한 패스워드..
이렇게 두가지를 운영하면 좀 안심이 될 수 있다. (패스워드의 이원화)

그리고 중요한 패스워드는 적어도 6개월에 한 번쯤은 바꾸는 것이
수많은 기술로 구멍이 생기고 있는 현대 인터넷 세상에서 피해를 예방하는 길이다.


세상에 완벽한 방패는 없다

'모순'이라는 말의 어원처럼, 절대로 "모든 것을 막을 수 있는 방패"나 "모든 것을 뚫을 수 있는 창"은 존재하지 않는다. 어떤 보안책이라도 뚫리기 마련이며, 그 뚫린 구멍은 또 막을 수 있다.

위에서 말한 패스워드 암호화 기법을 사용하더라도, 사용자가 사전에 있는 단어들을 기반으로 만든 암호를 사용하거나, 전화번호, 생일 등 연관 가능한 것들로 암호를 만든다면, 부지런한 범죄자들은 반드시 그 구멍을 찾아내고 말것이다.

요즘 세상에 자신의 개인 정보가 하찮다고 느끼는 사람은 없을 것이다. 그렇다면, 그 소중한 재산을 보호하기 위해서 조금 더 조심하고 문단속을 철저히 하자.

- 참고 : 글쓴이는 보안 전문가가 아니므로 위의 내용에 틀린 내용이 다수 포함될 수 있습니다. 틀린 부분을 알려주시면 바로 수정하겠습니다 -