지키지 않는 규칙과 지킬 수 없는 규칙 사이에는 큰 차이가 있습니다. “사이트마다 다른 비밀번호를 쓰세요”는 후자입니다.
우리가 외웠던 그 교리 전부 — 대문자 하나, 숫자 하나, 특수문자 하나, 90일마다 강제 변경 — 를 NIST는 SP 800-63B에서 거의 통째로 갖다 버렸습니다. 비틀기보다 길이가 중요해졌습니다. 강제 주기 변경은 유출 정황이 있을 때를 빼고 사라졌습니다. 특수문자를 요구하던 자리에는 훨씬 상식적인 것이 들어왔습니다. 이미 유출된 비밀번호 목록과 대조해보는 것.
살아남은 규칙은 하나였습니다. 재사용하지 말 것. 그리고 우리가 가장 무시한 규칙이기도 합니다. 그걸 지키려면 사내 게시판의 그 어떤 포스터도 언급하지 않은 무언가가 필요했으니까요.
당신의 기억력이 못 하는 이유
계정이 몇 개인지 생각해보세요. 쓰는 계정 말고, 갖고 있는 계정 말입니다. 은행, 메일, 다른 메일, 2019년에 운동화 하나 샀던 쇼핑몰, 커뮤니티, 항공사, 주차 앱, 아파트 관리사무소 앱, 5분짜리 민원 하나 때문에 가입시켰던 공공기관 사이트.
이제 각각에 대해 길고, 무작위이고, 서로 다른 문자열을 외운다고 상상해보세요. 어려운 게 아닙니다. 인간의 뇌로는 도달 가능한 목표가 아닙니다. 그런데도 수년간 그 반대를 우겨온 건 정보보안이 저지른 작은 잔인함 중 하나였습니다.
그래서 우리는 할 수 있는 유일한 일을 했습니다. 좋은 비밀번호 하나와 그 변주들.
은행은 Gamja2019!, 커뮤니티는 Gamja2019?. 아니면 그냥 전부 똑같이 쓰고
머릿속에 각주를 하나 답니다. “뭐, 은행은 다른 거 쓰니까.”
문제가 바로 거기 있습니다. 실제 공격은 당신의 비밀번호를 알아맞히는 게 아니거든요. 다른 데서 이미 훔쳐낸 그 비밀번호를 넣어보는 겁니다. 2019년의 그 커뮤니티가 털립니다 — 2019년의 커뮤니티들은 털립니다 — 누군가 그 이메일·비밀번호 목록을 집어들고 생각나는 모든 서비스에 자동으로 넣어봅니다. 아무것도 부술 필요가 없습니다. 열쇠는 당신이 이미 줬고, 그는 문을 하나씩 밀어보는 중일 뿐입니다. 그게 크리덴셜 스터핑이고, 정확히 아무도 지킬 수 없었던 그 유일한 규칙 덕분에 잘 작동합니다.
관리자는 편의 도구가 아니다
여기서 보통 비밀번호 관리자는 사치품처럼 팔립니다. 얼마나 편한지, 자동으로 채워주고, 타이핑할 필요가 없다고. 사실입니다. 그리고 가장 사소한 부분입니다.
관리자는 당신의 수고를 덜어주는 게 아니라, 그것 없이는 도달 불가능한 규칙을 가능하게 만들어줍니다. 100킬로미터를 뛰라고 요구하는 것과 자전거를 쥐여주는 것의 차이입니다. 숫자는 그대로입니다. 할 수 있느냐가 달라질 뿐입니다.
관리자를 앞에 두면 SP 800-63B의 나머지는 저절로 풀립니다. 복잡함보다 길이? 관리자가 원하는 길이로 만들어줍니다. 어차피 손으로 칠 일이 없으니까요. 사이트마다 다르게? 정의상 당연한 얘기입니다. 강제 주기 변경 없음? 좋습니다. 유출된 것만 바꾸면 되고, 많은 관리자가 그런 일이 생기면 알려줍니다. 끝까지 외워야 하는 건 마스터 비밀번호 하나뿐이고, 그건 공들여 만들 값어치가 있습니다. 생성기에서 무작위 단어 네댓 개를 뽑고 검사기에서 얼마나 버티는지 확인해보세요.
정직한 반론
“계란을 한 바구니에 담는 거잖아요.” 천 번은 들었고, 헛소리가 아닙니다. 누가 당신의 관리자에 들어오면 전부에 들어옵니다. 단일 장애점이 맞고, 아니라고 하는 사람은 뭔가를 팔고 있는 겁니다.
답도 정직해야 합니다. 네, 바구니는 하나입니다. 하지만 대안은 계란을 나눠 담는 게 아닙니다. 바닥에 굴려두는 겁니다. 관리자가 없다고 해서 독립적인 비밀번호 80개가 생기지 않습니다. 똑같은 비밀번호가 80개 사이트에 놓입니다. 그것도 같은 바구니인데, 잠금장치도 없고 암호화도 없고, 보안 수준을 전혀 모르는 남의 서버 80군데에 복제된 바구니입니다.
실제 위협 모델을 보세요. 제대로 된 관리자의 암호화된 금고를 누가 뚫으려면 제품의 심각한 결함이 있거나, 당신의 마스터 비밀번호가 있어야 합니다. 쇼핑몰에서 쓴 비밀번호를 당신 메일에 넣어보는 데는 아무것도 필요 없습니다. 스크립트 하나와 목록 하나면 됩니다. 당신은 많은 것을 필요로 하는 공격과, 지금 이 순간에도 자동으로 계속 벌어지고 있는 공격을 저울에 올리고 있는 겁니다.
합리적인 대비는 이겁니다. 길고 유일한 마스터 비밀번호, 관리자에 2단계 인증 활성화, 그리고 이제 마스터가 당신의 급소라는 자각. 그에 맞게 다루세요.
어느 것을 쓸까, 그리고 정답이 하나가 아닌 이유
제휴 링크가 걸린 사이트에서 하기 불편한 말을 해야겠습니다. 가장 좋은 관리자는 당신이 실제로 쓸 관리자입니다. 그리고 좋은 건 하나가 아닙니다.
Bitwarden은 자유 소프트웨어이고, 대부분의 사람에게 필요한 걸 무료 요금제가 덮어주며, 원하면 직접 서버에 올릴 수도 있습니다. 코드를 감사할 수 있다는 건 마케팅 문구가 아닙니다. 누구의 말도 믿을 필요가 없다는 뜻입니다.
KeePass와 그 파생판들은 전부를 로컬 파일 하나에 담습니다. 클라우드도, 계정도, 사업자도 없습니다. “내 비밀번호가 남의 서버에 있는 게 싫다”가 걱정이라면, 그 걱정은 말 그대로 해결됩니다. 대신 기기 간 동기화는 당신 몫입니다.
1Password는 유료이고, 여기서 우리가 링크를 거는 곳입니다 — 제휴 링크입니다, 밝혀둡니다 —. 이 제품이 잘하는 건 보통 한 집안에서 관리자가 살아남느냐를 결정짓는 부분입니다. 기술을 모르는 사람이 이해하고, 배우자와 공유하고, 일주일 만에 포기하지 않는 것. 유료라서 Bitwarden보다 안전한 게 아닙니다. 많은 사람에게, 포기하지 않기가 더 쉬운 겁니다.
그리고 브라우저 내장 관리자. 공짜고, 이미 설치돼 있고, 이미 저장할지 물어봅니다. 제어권과 이식성과 공유에서 앞의 것들보다 아래에 있고, 한 생태계에 당신을 묶어둡니다. 상관없습니다. 브라우저 것을 쓰는 게 아무것도 안 쓰는 것보다 비교할 수 없이 낫습니다. 큰 문제를 해결해주니까요. 그 반대를 말하는 사람은 실제 위험보다 순수함을 앞에 두고 있는 겁니다.
전부를 요약하는 문장
수년 동안 사람들은 비밀번호 하나하나가 어때야 하는지는 말해줬지만, 그걸 전부 어떻게 기억할 건지는 거의 말해주지 않았습니다. 빠진 건 그 단계였고, 그것이 없는 한 살아남은 그 유일한 규칙은 규칙이 아니었습니다. 그냥 핀잔이었습니다.
하나 고르세요. 아무거나요. 어느 것이 나은지에 대한 논쟁은, 관리자가 있느냐 없느냐 사이의 거리에 비하면 사소합니다.
출처: NIST SP 800-63B, 「Digital Identity Guidelines: Authentication and Lifecycle Management」(복잡성보다 길이, 유출 정황이 없는 한 강제 주기 변경 없음, 유출된 비밀번호 목록과의 대조) · Bitwarden, KeePass, 1Password가 공개한 문서 및 보안 모델.