평문 통신 이야기
평문 통신 로그인(plain text or clear text login)에 대해 관심을 가지게 된 것은 졸업을 하고 나서 첫 직장을 다닐 때였다. 다이얼패드를 서비스하는 새롬기술이라는 회사를 다닐 때 송수신되는 음성 패킷을 비주얼하게 보여 주는 툴을 개발했었는데, 그 때 OSI 7 Layer에서부터 네트워크를 다시 공부하는 계기가 되었었다.
내가 만든 프로그램이 제대로 작동하는지를 확인하기 위해 회사에서 하루종일 띄워 놓고 있었다. 그러다가 D사이트에 들어갔는데(그때는 N보다 D사이트가 사용자가 더 많았음), 내가 만든 프로그램에서 계정 정보(ID, PW)가 보이는 게 아닌가? 그때까지는 계정 정보를 GET 방식으로 보내지 않고 POST 방식으로 보내면 안전하다는 잘못 알려진 지식이 통용되는 보안 인식 수준이었고, 패킷을 내 눈으로 직접 확인하니 좀 어이가 없었다.
이후 여러 사이트들을 테스트해 보았다. 국내 대부분의 사이트는 평문 로그인이었고, 해외 Y사이트는 암호를 MD5로 보낸 것으로 기억한다(같은 PW는 항상 같은 MD5 값으로 전송이 되었기 때문에 다른 사용자의 MD5 정보만 획득해도 replay attack으로 해당 계정 사용자의 정보를 탈취할 수 있음). 당시(2002년) msn.com, aol.com 과 같은 일부 사이트를 제외하고 대부분이 평문 로그인이었다. 유명한 사이트들이 그정도이니 일반 사이트들은 어떠하겠는가? 그야말로 보안이 전무한 상황이라 봐도 될 지경.
시간이 지나고 유명 사이트들은 조금씩 암호 로그인을 지원하게 된다. 하지만 대다수의 사이트들은 여전히 평문 로그인을 유지하고 있었다. 이를 위해서 KISA는 2007년에 즈음하여 민감한 정보가 송수신될 때(특히 로그인) 암호화하도록 각종 가이드 라인과 홍보 자료를 만들었다. 문제는 이렇게 친절하게 문서를 만들어 놓아도 대부분의 사이트 관리자는 여기에 관심이 없다는 거다. 서비스 만들어 돈 벌어 먹기가 더 중요하지 보안이 더 중요하지는 않다고 생각하는 것. 결국 정부에서 꺼내는 카드가 바로 “과태료”. 민감한 정보를 송수신할 때 암호화를 하지 않으면 과태료를 물겠다는 조항을 만든 것이다.
결과적으로 어떻게 되었냐고? 확실히 효과는 있었다. 통계적으로 봤을 때 많은 사이트들이 보안 통신을 적용하게 되었다. 그렇다면 이러한 방식으로 보안 통신이 확산되었다고 해서 보안 마인드 향상에는 과연 도움이 되었을까?
이후 2009년도에 ssl strip이라는 재미있으면서도 다소 critical한 해킹 기법이 블랙햇에서 발표가 되었고, hsts, preloaded hsts, hts bypass by ntp hijacking 등 관련된 뚥고 막고 하는 방법론들이 나오기 시작했다. 대부분 해외 유명한 사이트들은 이러한 최신 트렌드의 해킹과 방어 기법들을 인지하고 그에 대해 적절히 대처해 나가고 있다. 불과 몇 년전만 해도 twitter.com, facebook.com, google.com 과 같은 유명 사이트에도 평문 통신이 존재했었는데 지금은 거의 100% SSL 통신이 이루어지고 있다.
반면 국내 사이트들은 어떠한가? N사이트나 D사이트는 메인은 SSL로 되어 있지만 조금만 사이트 돌아 다니다 보면 평문 통신으로 이루어지는 URL들을 어렵지 않게 발견할 수 있다. N2사이트는 아직 메인에 SSL 적용이 안되었고. 나머지 대부분 국내 사이트들은? 말할 필요도 없다. 대부분의 사이트들은 2007년도에 KISA에서 권고한 그 방식에서 한발짝도 나아진 바가 없다.
그 이유가 무엇일까? 바로 “과태료” 때문이다. 국내 대부분의 사이트들에서 SSL 통신을 적용한 이유는 “평문 로그인의 보안상의 문제점을 스스로 인지하여 보완을 한 것이 아니라 단지 과태료를 물지 않기 위해”였으니까. 공격과 방어 기법은 나날이 발전하고 있는데 그저 “과태료만 물지 않으면 돼”라는 마인드가 보안의 발전을 저해하고 있는 형국이다. 결론적으로 이러한 평문 통신에 대한 KISA의 과태료 정책은 반쪽만 성공한 정책이었다고 본다.