본문으로 건너뛰기
AZ Tools

비밀번호와 패스프레이즈: 무엇이 실제로 강하게 만드는가

비밀번호에 관한 조언 대부분은 10년쯤 낡았습니다. 많은 사이트가 아직도 강제하는 규칙들 — 대문자 하나, 숫자 하나, 기호 하나, 90일마다 변경 — 은 추측에서 나온 것이었고, 결과적으로 사람에게는 훨씬 어렵게 만들면서 기계에게는 거의 어렵게 만들지 못했습니다. 실제로 중요한 것은 규칙이 암시하는 것보다 단순하며, 외우기보다 이해할 가치가 있습니다.

길이가 잔재주를 이깁니다

비밀번호의 강도는 공격자가 훑어야 하는 경우의 수이고, 그 수는 길이에 대해 지수적으로 늘어나지만 문자 집합 크기에 대해서는 선형으로만 늘어납니다. 소문자 비밀번호에 한 글자를 더하면 작업량이 26배가 되지만, 짧은 비밀번호의 문자 집합에 기호를 추가하는 것은 전체적으로 훨씬 작은 배수에 그칩니다. 무작위 소문자 12자는 키보드의 모든 문자에서 뽑은 8자보다 압도적으로 강합니다.

치환 트릭이 실패하는 이유가 여기 있습니다. 글자를 닮은 기호로 바꾸는 것 — a를 @로, e를 3으로 — 은 사람에게는 치기 힘든 문자열을 만들지만 크래킹 도구는 밀리초 만에 펼쳐 버립니다. 그 치환들이야말로 모든 사전이 가장 먼저 시도하는 항목이기 때문입니다. 흔한 단어를 예측 가능하게 변형한 것은 그 흔한 단어의 약점을 그대로 물려받습니다.

강도 측정기가 오해를 부르는 지점

문자 종류만 세는 측정기는 Password1! 을 기꺼이 '강함'으로 표시합니다 — 대문자·소문자·숫자·기호가 다 있으니까요. 그리고 그것은 어떤 공격자든 처음 몇천 번 안에 시도하는 후보입니다. 더 나은 측정기는 사전, 키보드 패턴, 날짜, 흔한 치환을 모델링해 이 비밀번호가 몇 번의 추측을 버틸지 추정합니다 — 어떤 문자 종류가 들어 있는지보다 훨씬 유용한 질문입니다.

어떤 측정기든 '약함의 하한선'으로 받아들이고 '강함의 증명서'로 받아들이지 마세요. 무언가가 나쁘다는 것은 설득력 있게 알려줄 수 있지만, 그 비밀번호가 이미 유출 목록에 등장했는지는 알 수 없습니다. 그런데 그것이야말로 가장 중요한 사실입니다 — 점수가 높은 비밀번호보다 유일하고 재사용되지 않은 비밀번호가 더 중요합니다.

패스프레이즈: 실제로 기억할 수 있는 강도

패스프레이즈는 무작위 단어 여러 개를 이어 붙인 것이고, 그 강도는 단어 수와 그 단어를 뽑아온 목록의 크기에서 나옵니다 — 복잡해 보이는 것과는 무관합니다. 7,776개 목록에서 무작위로 여섯 단어를 고르면 약 77비트의 엔트로피가 되는데, 이는 오프라인 크래킹이 도달하는 범위를 넉넉히 넘어서면서도 사람이 머리에 담고 휴대폰으로 입력할 수 있는 수준입니다.

핵심 단어는 '무작위'입니다. 스스로 고른 단어는 무작위가 아닙니다. 사람은 서로 연관된 단어, 이름, 노래 가사나 책에 나오는 구절을 고르며, 공격자가 모델링하는 것이 정확히 그 구조입니다. 단어는 진짜 무작위 과정에서 나와야 하고, 주사위를 쓰는 방식의 존재 이유가 바로 그것입니다 — 그리고 당신이 지어낸 패스프레이즈가 생성한 패스프레이즈와 같지 않은 이유이기도 합니다.

진짜 위험은 재사용입니다

공격자가 비밀번호를 무차별 대입해서 뚫리는 사람은 거의 없습니다. 몇 년 전 가입한 사이트가 털렸고 같은 비밀번호가 이메일에서도 통했기 때문에 뚫립니다. 유출된 쌍을 다른 서비스에 대입해 보는 크리덴셜 스터핑은 값싸고 자동화되어 있으며 대단히 효과적이고, 재사용된 비밀번호는 아무리 복잡해도 이를 막지 못합니다.

그래서 최적화할 가치가 있는 속성은 '유일성'이고, 규모 있는 유일성에는 비밀번호 관리자가 필요합니다. 모든 비밀번호가 유일하고 생성된 것이 되면 개별 비밀번호의 암기 가능성은 중요하지 않게 되고, 기억해야 할 것은 관리자를 지키는 하나뿐입니다 — 긴 패스프레이즈가 제 값을 하는 지점이 정확히 여기입니다.

2단계 인증이 실제로 지켜주는 것

두 번째 요소는 도난당하거나 추측된 비밀번호를 막아주며, 그 역할은 아주 잘 해냅니다 — 비밀번호를 아는 것만으로는 더 이상 충분하지 않게 되니까요. 시간 기반 일회용 코드는 공유 비밀값과 현재 시각에서 유도되며, 그래서 오프라인에서도 작동하고 기기의 시계가 어느 정도 맞아야 합니다.

다만 무엇을 막지 못하는지도 분명히 알아두세요. 그럴듯한 피싱 페이지는 비밀번호만큼이나 손쉽게 코드를 요구하고 둘 다 즉시 재생할 수 있으며, SMS 코드는 전화번호를 탈취당하면 가로채입니다. 인증 앱의 코드는 SMS보다 의미 있게 낫고, 잘못된 도메인에는 인증을 거부하는 하드웨어 키는 판단에서 사람을 아예 배제하기 때문에 더 낫습니다.

  • 문자 종류 곡예보다 길이를 우선하고, 긴 패스프레이즈를 목표로 한다.
  • 비밀번호를 절대 재사용하지 않는다 — 유일성이 복잡성보다 더 지켜준다.
  • 지어내지 말고 생성한다. 사람의 선택에는 패턴이 있다.
  • SMS보다 인증 앱을, 제공된다면 하드웨어 키를 쓴다.
  • 정해진 주기가 아니라 이유가 있을 때 비밀번호를 바꾼다.

관련 도구