강력한 비밀번호를 만드는 방법은?
강력한 비밀번호란 공격자가 현실적인 시간 내에 추측할 수 없고, 다른 어떤 곳에서도 사용한 적이 없는 비밀번호를 말합니다. 길이가 짧고 예측 가능한 비밀번호는 쉽게 풀리며, 재사용된 비밀번호는 데이터 유출 사고 발생 후 다른 서비스에 무차별적으로 대입됩니다. 이 두 가지 취약점은 간단히 해결할 수 있습니다. 다만 강력한 비밀번호라고 해서 모든 것을 막아주지는 못합니다. 피싱 사이트나 악성코드까지 막을 수는 없으므로 아래의 마지막 단계들은 비밀번호 자체에 국한되지 않는 보안 수칙을 다룹니다. 이 글에서는 먼저 핵심 요약을 제시한 다음 각 단계가 효과를 발휘하는 이유를 설명합니다.
핵심 요약
- 비밀번호를 직접 머리로 생각하지 말고 생성기를 사용하십시오. 사이트에서 허용하는 한 16자 이상으로 만듭니다.
- 대문자, 소문자, 숫자, 특수기호 등 사이트에서 허용하는 모든 문자 종류를 사용합니다.
- 생성한 비밀번호는 비밀번호 관리자에 저장합니다.
- 하나의 계정에만 고유하게 사용하고 절대 재사용하지 않습니다.
- 2단계 인증을 활성화하거나 서비스에서 지원하는 경우 패스키를 등록하고 복구 코드를 안전하게 보관합니다.
비밀번호를 강력하게 만드는 요소
비밀번호의 강도는 세 가지 특성에 의해 결정됩니다. 첫째는 길이입니다. 무작위 문자가 하나 추가될 때마다 공격자가 시도해야 하는 조합의 수는 기하급수적으로 늘어납니다. 둘째는 무작위성입니다. 비밀번호의 안전성은 그것을 생성한 과정의 무작위성에 비례하므로 컴퓨터가 무작위로 생성한 12자는 사람의 이름과 연도로 조합한 12자보다 훨씬 강력합니다. 셋째는 고유성입니다. 두 개 이상의 사이트에서 동일한 비밀번호를 사용하면 전체 보안 수준은 보안이 가장 취약한 사이트의 수준으로 떨어집니다. 한 서비스에서 유출된 비밀번호는 다른 모든 사이트에 일상적으로 대입되기 때문입니다.
비밀번호의 강도는 엔트로피 비트로 측정되며, 1비트가 늘어날 때마다 추측에 필요한 시도 횟수는 2배가 됩니다. 동일한 확률을 갖는 62개의 문자, 즉 라틴 문자 a–z와 A–Z 및 숫자 0–9 중에서 무작위로 선택된 문자 하나는 약 6비트의 엔트로피를 추가합니다. 따라서 이러한 무작위 문자 12자는 약 71비트, 16자는 약 95비트의 강도를 갖습니다. 이러한 수치는 모든 문자가 독립적이고 무작위로 선택되었을 때만 성립하며, 사람이 머리로 생각해서 만든 비밀번호에는 적용되지 않습니다. 당사의 생성기가 생성된 비밀번호에 대해 표시하는 강도 척도를 기준으로 볼 때, 60비트는 일상적인 계정에 적절한 수준이고, 80비트는 강력한 수준이며, 100비트는 오늘날의 하드웨어로 무차별 대입 공격을 가하기에 현실적으로 불가능한 수준입니다. 이는 표준이라기보다는 참고 기준입니다. 실제 환경에서 비밀번호가 얼마나 오래 버티는지는 서비스가 비밀번호를 저장하는 방식과 공격 방식에 따라서도 달라집니다.
흔히 쓰이는 요령이 통하지 않는 이유
사람들이 비밀번호를 만드는 방식은 놀라울 정도로 비슷하며, 해킹 도구는 이러한 인간의 습관에 맞춰 정교하게 설계되어 있습니다.
Anna1994와 같은 이름과 연도의 조합은 가장 먼저 시도되는 패턴 중 하나입니다.P@ssw0rd처럼 문자를 유사 기호로 치환하는 방식은 거의 도움이 되지 않습니다. a를 @로, o를 0으로 바꾸는 규칙은 해킹 도구의 기본 설정에 포함되어 있습니다.qwerty123이나1q2w3e4r과 같은 키보드 연속 패턴은 가장 흔한 비밀번호 목록 대부분에 등장합니다.- 첫 글자를 대문자로 쓰고 끝에 숫자나 느낌표를 붙이는 방식은 복잡성 규칙을 만족하기 위해 흔히 쓰이므로 공격 프로그램이 초기에 대입합니다.
- 사이트마다 하나의 기본 비밀번호에 작은 변형만 주는 방식은 한 버전이 유출되어 규칙이 드러나는 순간 보안 기능을 상실합니다.
이러한 방식의 공통된 결함은 인간의 예측 가능한 선택 패턴을 따른다는 점입니다. 특수문자나 숫자 포함, 90일마다 변경과 같이 복잡성을 강제하는 규칙은 역설적으로 사람들을 바로 이러한 패턴으로 유도합니다. 그렇기 때문에 NIST의 최신 보안 가이드라인에서는 서비스 제공자에게 문자 조합 규칙이나 주기적인 변경을 강제하지 말고, 대신 신규 비밀번호를 유출된 비밀번호 목록과 대조하여 검증하도록 권고하고 있습니다.
직접 입력해야 하는 비밀번호: 패스프레이즈 사용하기
비밀번호 관리자의 도움 없이 직접 타이핑해야 하는 비밀번호가 몇 가지 있습니다. 비밀번호 관리자 자체의 마스터 비밀번호, 컴퓨터나 휴대전화의 잠금 해제 암호, 그리고 많은 사람에게 주 이메일 계정의 비밀번호가 여기에 해당합니다. 이러한 용도에는 직접 지어낸 문장이 아닌 무작위로 선택된 여러 단어로 이루어진 패스프레이즈를 사용하십시오. 대표적인 방식은 Diceware이며, EFF는 이를 위한 단어 목록을 배포하고 있습니다. 영어로 된 EFF Long Wordlist 목록을 사용하는 것이 좋습니다.
- 단어 목록을 엽니다. 목록에는 1부터 6까지의 다섯 자리 숫자가 매겨진 7,776개의 단어가 수록되어 있습니다.
- 일반 6면체 주사위를 다섯 번 굴리거나 다섯 개의 주사위를 한꺼번에 굴려 왼쪽에서 오른쪽으로 읽은 뒤, 나온 다섯 자리 숫자를 순서대로 적습니다.
- 해당 번호에 매칭되는 단어를 찾습니다.
- 단어가 6개가 될 때까지 이 과정을 반복합니다.
- 단어가 중복되거나 더 마음에 드는 단어로 바꾸고 싶더라도 나온 단어들을 그대로 유지합니다. 이를 외우려면 단어들의 내용이나 순서를 바꾸지 말고 그 단어들을 연결하는 시각적 이미지나 스토리를 만들어 기억하십시오.
단어 하나마다 약 12.9비트의 엔트로피가 추가되므로 다섯 개 단어는 약 65비트, 여섯 개 단어는 약 78비트의 강도를 가집니다. 일반 단어 여섯 개는 동일한 보안 강도를 가진 무작위 기호 배열보다 외우거나 타이핑하기가 훨씬 쉽습니다. 이 방식이 효과를 발휘하려면 두 가지 조건이 필수적입니다. 노래 가사나 유명한 명언은 이미 공격자의 사전에 등록되어 있으므로 단어는 반드시 온전한 우연에 의해 선택되어야 합니다. 같은 이유로 예시로 제시된 문구를 그대로 사용해서는 안 됩니다. 또한 패스프레이즈는 재사용하지 말아야 합니다. 한 곳에는 오직 하나의 패스프레이즈만 사용하십시오.
그 밖의 모든 비밀번호: 생성기로 만들기
직접 손으로 타이핑할 필요가 없는 수십 개의 계정에 대해서는 비밀번호를 직접 지어낼 이유가 없습니다. 당사의 강력한 비밀번호 생성기는 Web Crypto API를 사용하여 브라우저 내에서 각 비밀번호를 생성하며, 서버로 절대 전송되지 않습니다. 길이 필드를 16 이상으로 설정하고 사이트에서 허용하는 문자 종류를 선택한 다음 결과 생성을 누르면 결과 아래의 엔트로피 추정치에 비트 단위 강도가 표시됩니다. 혼동하기 쉬운 문자 제외 옵션은 비밀번호를 소리 내어 읽거나 화면을 보고 직접 입력할 때 혼동하기 쉬운 문자(Il1O0o)를 제거해 주며, 생성 개수 필드를 사용하면 여러 계정을 한 번에 설정할 때 전체 목록을 생성할 수 있습니다.
일부 사이트는 여전히 길이를 제한하거나 특정 기호의 사용을 금지합니다. 생성된 결과가 거부되면 사이트가 금지하는 기호 유형만 끄고 길이는 그대로 유지하십시오. 사이트에서 길이 자체를 엄격히 제한하는 경우에만 길이를 줄이십시오. 어떤 경우이든 머리로 지어낸 비밀번호로 되돌아가지 마십시오. 무작위로 생성된 12자 비밀번호가 사람이 그럴싸하게 꾸며낸 비밀번호보다 훨씬 안전합니다.
비밀번호는 어디에 보관해야 하는가
모든 계정마다 고유한 무작위 비밀번호를 사용하는 가장 쉬운 방법은 비밀번호 관리자를 활용하는 것입니다. 관리자는 비밀번호를 안전하게 저장하고 로그인 시 자동으로 입력해 주며, 저장된 비밀번호가 알려진 데이터 유출 사고에 포함되어 있는지 경고해 주기도 합니다. 이렇게 하면 수백 개의 비밀번호 대신 하나의 패스프레이즈만 기억하면 됩니다. 비밀번호 관리자를 쓰고 싶지 않다면 방문자의 눈에 띄지 않는 집 안의 안전한 장소에 비밀번호 수첩을 보관하는 것이 비밀번호를 여러 곳에서 재사용하는 것보다 위험이 훨씬 적습니다. 효과가 없는 방법은 바탕화면에 텍스트 파일로 저장하거나, 메신저 나와의 채팅방에 적어두거나, 직장 모니터에 포스트잇으로 붙여두는 것입니다.
체크리스트
- 사이트에서 허용하는 한 16자 이상으로 설정하고, 12자 미만으로는 절대 사용하지 않기
- 직접 지어내지 않고 생성기로 만들기 — 직접 입력해야 하는 곳에는 여섯 개의 무작위 단어로 된 패스프레이즈 사용하기
- 모든 계정마다 고유하고 서로 다른 비밀번호 사용하기
- 비밀번호 유출 시 2차 방어선 역할을 하도록 제공되는 모든 곳에서 2단계 인증 활성화하기 — 위조 사이트에 탈취될 염려가 없는 패스키나 FIDO2 보안 키는 한 걸음 더 안전한 대안입니다
- 정기적인 일정에 맞춰 바꾸는 것이 아니라 유출 사고나 피싱 의심, 더 이상 공유해서는 안 되는 상황 등 명확한 이유가 있을 때 비밀번호 변경하기
이러한 보안 수칙이 왜 존재하는지 더 깊이 이해하려면 비밀번호는 어떻게 해킹되는가 가이드를 확인하십시오. 더 많은 관련 정보는 비밀번호 생성기 자료에서 확인하실 수 있습니다.