Wednesday, February 25, 2015

사용성을 전혀 고려하지 않는 "보안"을 요구하는 한국의 사이트들

Coursera라는 무료 인터넷 대학 사이트가 있다. 거기에서 Usable security라는 과목을 신청 후 첫 번째 비디오를 봤는데, 평소에 내가 생각하고 있던 것과 같은 말이 나왔다. 사용자가 하려는 일에 방해가 되는 보안을 요구하지 말라는 것.

한국 사이트들은 참 특이하다. 내가 전세계 여러 사이트를 쓰지만 (대부분이 미국 사이트이긴 해도), 한국 사이트들만큼 어디 한 군데가 하면 다른 데서 똑같이 따라하는 나라는 없는 것 같다. 대표적인 예를 들자면


  1. 집 주소 입력 시, 우편 번호를 직접 입력 못하게 막고 반드시 팝업 창에서 검색해 고르게 한다.
  2. 메일 주소를 한 번에 못 치게 하고 반드시 도메인 부분을 @ 뒤의 별도 칸으로 빼서 드롭다운을 둔다.
  3. 제딴에는 보안을 요구한다는 사이트들은 입력 윈도에서 copy는 물론 선택과, paste도 막는다. 암호 입력 윈도가 아닌데도 말이다.
  4. 보안을 위한다며 마우스 오른쪽 버튼을 막는다.
뭐 당장 생각나는 것만 저 정도이다. 자기 집 우편 번호를 기억하는 사람이 많을까, 기억하지 못하는 사람이 많을까? 그 깟 여섯 숫자 입력하는 걸 귀찮게 팝업을 띄우고 주소를 입력하게 한다. 게다가 한글 특성상 검색이 잘 안 되는 경우도 많다. 어떤 사이트는 "가나다동"이라고 쳐야 나오고 "가나다"라고 치면 안 나오는 곳도 있고, 그 반대의 경우도 있다. 우편 번호만 입력하면 동까지 자동입력해 주면 되잖아!

메일 주소는 도대체 왜 별도의 칸으로 띄우는 걸까? 저건 2000년대 초반부터 저러더니 아직도 저러고 있다. 요즘 브라우저들이 똑똑해져서 메일 주소같은 건 자동 완성해 주는 데도 말이다.  그리고 도대체 오른쪽 버튼을 막아서 무슨 보안을 얻겠다는 건지? 요즘 모든 브라우저에 개발자 도구가 다 탑재되어 DOM까지 on-the-fly로 수정할 수 있는 현실인데 말이다.  어쨌든 웃긴 건, 대부분의 한국 사이트가 마치 서로 베낀 듯이 저런 허잡한 짓을 똑같이 하고 있고, 외국 사이트에서는 저런 짓을 하는 사이트가 거의 없다는 것이다.

뭐 그 중 보안 관련해서 한국 사람이라면 정말 짜증나는 경험이 많을 것이다. 도대체 사용성은 일체 고려를 안 한 짓만 골라서 한다. 한국 은행이나 정부 사이트 자체가 정말 스트레스를 주고 꼭 필요하지 않으면 절대로 가고 싶지 않게 만든다. 게다가 그 외의 한국 사이트들도 역시 짜증을 주는데, 대표적인 것으로 암호를 주기적으로 변경하라는 것이다. 그리고 암호도 각 사이트마다 다른 이상한 규칙을 강제 적용한다. 문제는... 외국 사이트들은 암호를 submit하기 전에 암호가 잘못되었다고 바로 보여주는 데 비해, 한국 사이트들은 대부분 submit한 후에 암호가 규칙에 안 맞다고 처음부터 새로 입력하라는 것이다. 어떤 사이트들은 숫자/영어/기호를 섞어 쓰라고 하고, 어떤 사이트는 기호를 넣은 암호를 submit했더니 기호는 안 된다고 다시하란다.

정말 묻고 싶은 게 있는데... 그 사이트 개발자는 그렇게 복잡한 암호를, 사이트마다 다르게 해서,  사이트마다 다른 ID와 함께, 주기적으로 변경해 가면서, 자동 입력 안 하고 손으로 입력해 가면서 쓰고 있나? 요즘 사람들이 쓰는 사이트가 적어도 개인당 100개는 넘을 거다. 정말 그 많은 사이트들에 대해 저렇게 할 수 있는 게 인간적으로 가능하다고 생각하는가? 사이트마다 공통된 암호 변경 인터페이스가 있는 것도 아니고, 첫 접속부터 비밀 번호 변경까지 끝내려면 빨라도 5분은 걸릴 거다. 한 달에 100개 사이트에 5분씩 써 보자... 500분 =8시간이다. 거의 하루 전체를 투자해야 한다. 아예 한 달에 하루 비밀 번호 변경 공휴일을 만들지 그래? 

도저히 불가능하다. 복잡한 암호를 요구하기 때문에 복잡한 암호를 만들면 해커만 추측이 힘든 게 아니라, 나도 기억을 못한다. 그래서 어디 적어 놓고 복사해 넣으려면 paste가 안 되게 막아 놨다. 소스를 보니 onpaste="return false"를 넣어 놨더구만.  정말 뭘 바라는 걸까? 사람이 로봇인 줄 아나? 왜 불가능한 걸 요구하는 것이냐.

이제 사람이 각 사이트마다 서로 다른, 대칭 암호를 기억해서 사용하는 것은 불가능한 시점에 이르렀다. 정부와 각 사이트들 개발자들이 그 점을 좀 인정했으면 좋겠다. 이제는 비밀 번호가 자동으로 관리되어야 하고, 사용자들이 더 쉽게 그 장점을 누릴 수 있는 제도가 마련되어야 한다. 예를 들면 내가 언뜻 생각해 본 건 다음과 같다. 물론 나보다 전문가인 사람들은 더 좋은 생각을 가지고 있겠지만.
  1. 각 사이트가 공통된 회원 가입/비밀 번호 변경/탈퇴 API를 제공한다. 이 건 정부에서 쉽게 강제할 수 있을 것이고, 사이트 개발자한테도 그리 어려운 일이 아닐 것이다. 이 공통된 API가 있다면 비밀 번호 변경이나 탈퇴를 비밀 번호 보안 관리 프로그램이 일괄적으로 빠르게 처리해 줄 수 있을 것이다. 회원 가입 시에도 불필요한 시간 낭비를 줄일 수 있을 것이다.
  2. 각 사이트들이 모두 OTP 인증 옵션을 도입한다. 지금은 아이핀이라는 사설 업체 서비스를 쓸 수밖에 없는 현실인데, 대칭 암호이다. 입력에 짜증만 나고, 주민등록번호와 다를 바가 없다. 아이핀 비밀 번호가 털리면 다 털리는 것이다.
  3. 각 사이트가 통합해서 (정부 등의 중계 서버를 거치든가 해서) 해킹 시도나, 보안 관련 메일을 하나로 묶어 보낸다. 지금은 들쑥날쑥 제 멋대로 보내니, 스팸 필터에 걸려 지워지고, 잘 관리도 안 되어 결국 잘 안 보게 된다.