생각보다 많은 웹 사이트에서 3개월 주기로 비밀번호를 변경해 달라는 안내를 보내지요. 귀찮아서 안 바꾸는 경우가 더 많은 것 같은데… 아무튼 비밀번호를 주기적으로 바꿔주는 것이 보안에도 확실히 좋으니까요.
저는 예전에 바이두에서 회원가입을 하다가 닉네임을 설정하는 칸에 가입할 때 쓴 비밀번호를 입력하고 저장하는 바람에 닉네임=비밀번호가 되어버렸고 닉네임 변경 금지 정책과 회원 탈퇴 금지 정책(!) 때문에 손도 쓰지 못하고 비밀번호를 바꾼 적이 있었습니다. 바이두와 트위터의 비밀번호를 공유했다가 트위터가 해킹되면서 뒤늦게 다른 사이트도 비밀번호를 싹 갈아치웠던 기억이 있네요. 못해도 최소 5년 전 일입니다.
그 때의 기억 때문에 비밀번호를 만들 때 되도록이면 특수문자를 넣으려고 합니다. 그런데 일부 사이트에서는 특수문자 사용이 제한되는 경우가 있더라구요. 주로 <, > 같은 문자는 BASE64가 아닌 이상 & lt;와 & gt; 등으로 치환되기 때문에 그런 것 같습니다.
그런데 간혹 사용할 수 없는 특수문자를 알려주는 사이트가 아니라 일부 특수 문자만 사용해야 하는 골때리는 사이트가 있더라구요. 대체 왜인지는 모르겠지만 그런 사이트는 차라리 특문을 넣지 않고 비밀번호를 설정해버리고는 합니다. 심한 곳은 특수문자를 ‘_’만 허용하기도 합니다. 도대체 무슨 생각인지 모르겠어요… 그리고 대부분 사이트가 비밀번호를 16자리 이상으로 설정할 수도 없더라구요.
예전에는 비밀번호에 의무적으로 대소문자를 섞어야 하는 사이트가 제일 짜증났는데 요즘에는 특문에 제한을 두는 사이트가 더 짜증납니다. 반드시 특수문자를 한개만, 혹은 8개만 써야 하는 이유가 있을까요? <, >, /, |, 같은 문자는 그러려니 싶지만 !부터 *까지만 사용할 수 있도록 제한한 곳은 특문이 있으나마나 하다는 생각이 듭니다.
요즘에는 다들 스마트폰이라는 OTP 대용 장치를 들고 다니니 아예 2차 보안 인증으로 대체하는 방법이 더 낫지 않을까 같은 생각이 들기도 합니다. 이미 구글이나 애플 쪽에서는 자사 계정에 연동하고 연동된 계정은 무작위로 암호를 설정해서 보안성을 높이거나 브라우저에 무작위로 설정된 암호를 저장하고 자동로그인을 설정하는 방식으로 접근하고 있더라구요. 개인이 비밀번호를 설정하고 수첩에 비밀번호를 적고 그걸 다시 컴퓨터와 스마트폰에 저장해서 넣고 다니는 것보다는 훨씬 나아 보입니다. 더 많은 사이트에서 소프트웨어 OTP와 비슷한 범용 인증 프로세스로 로그인이 가능해지는 시대가 왔으면 좋겠습니다.
아래 문단에서 이야기하신 [OTP와 비슷한 범용 인증 프로세스]는 FIDO2 표준을 이용한 웹 인증 API(Web Authentication API)가 있긴 합니다. 그런데 이건 지문 인식(지문 정보를 직접 서버로 보내는 것은 아님)과 같은 추가 하드웨어를 사용하는 방식이고, 또 인증에 사용할 기기를 각각 서버에 등록해야 하므로(특정 서비스에 등록되지 않은 인증 장치는 그 서비스 로그인에 사용할 수 없음) 항상 인증용 기기(예를 들면 지문인식 가능한 안드로이드 스마트폰이나 YubiKey 같은 하드웨어 키)를 들고 다녀야 하고, 마지막으로 최신 기술을 많이 사용하기 때문에 보급되려면 시간이 많이 걸릴 것 같다는 단점이 있군요.
FIDO2 Web Authentication API 소개:
https://www.youtube.com/watch?v=Ph7vysww8hg