대부분의 비밀번호가 약한 이유
보통 사람은 여러 사이트에서 같은 비밀번호를 재사용하고, 뻔한 문자 치환(@를 a 대신, 3을 e 대신)을 하고, "P@ssw0rd123!"이 강한 비밀번호라고 생각합니다. 안타깝게도 공격자는 이 패턴을 전부 알고 있습니다. 현대의 비밀번호 크래킹 도구는 초당 수십억 개의 조합을 테스트하며, 흔한 비밀번호 사전, 알려진 치환 패턴, 유출된 비밀번호 데이터베이스를 활용합니다.
비밀번호의 강도는 오직 한 가지에 달려 있습니다: 진짜 무작위성. 영리함이 아니라, 길이만이 아니라, 복잡성 규칙이 아니라 — 무작위성입니다.
비밀번호 공격의 작동 방식
무차별 대입(Brute Force)
가능한 모든 문자 조합을 시도합니다. 소문자만 사용하는 8글자 비밀번호는 26^8(약 2090억) 가지입니다. 많아 보이지만 최신 GPU는 초당 수십억 개의 해시를 테스트할 수 있어서, 이런 비밀번호는 몇 분이면 깨집니다.
대문자, 숫자, 기호를 추가하면 문자 집합이 커지지만 수학은 같습니다. 진짜 방어는 길이와 문자 집합 크기의 곱 — 가능한 비밀번호의 총 수입니다.
사전 공격
흔한 비밀번호("password", "123456", "qwerty"), 일반 단어, 이름, 이전에 유출된 비밀번호 목록으로 시작합니다. 그다음 첫 글자 대문자화, 숫자 추가, 문자 치환 같은 흔한 변형을 적용합니다. 사람에게는 창의적으로 느껴지지만 예측 가능한 패턴을 따르는 비밀번호가 이렇게 깨집니다.
크리덴셜 스터핑
서비스가 해킹되어 비밀번호가 유출되면, 공격자는 같은 이메일/비밀번호 조합을 다른 서비스에서 시도합니다. 대부분의 사람이 비밀번호를 재사용하기 때문에, 놀라울 정도로 잘 작동합니다. 방어는 간단합니다: 같은 비밀번호를 두 번 쓰지 마세요.
강한 비밀번호의 조건
엔트로피
비밀번호 강도는 엔트로피 비트 수로 측정됩니다. 엔트로피 1비트가 늘 때마다 가능한 비밀번호 수가 두 배가 됩니다. 40비트 엔트로피는 약 1조 가지, 80비트는 약 100경 가지 가능성입니다.
2026년 기준 실용적 보안을 위해 중요한 계정은 최소 80비트, 덜 중요한 계정은 60비트 이상을 목표로 하세요.
문자 집합 크기
소문자만 쓰면 문자당 26가지 선택지입니다. 대문자를 더하면 52, 숫자를 더하면 62, 기호까지 넣으면 90 이상이 됩니다. 문자 집합이 클수록 같은 길이에서도 가능한 조합이 기하급수적으로 늘어납니다.
90+ 문자 집합의 12글자 비밀번호가 소문자만 쓴 20글자 비밀번호보다 엔트로피가 더 높습니다.
길이
길이는 엔트로피에 곱셈 효과를 줍니다. 문자 하나가 추가될 때마다 전체 가능성이 문자 집합 크기만큼 곱해집니다. 16글자 무작위 비밀번호는 8글자보다 천문학적으로 깨기 어렵습니다.
적절한 길이(12~16자)와 넓은 문자 집합(문자, 숫자, 기호)을 조합하는 것이 가장 효율적입니다.
무작위 비밀번호 생성
진정한 무작위 비밀번호는 사람이 만들 수 없습니다. 우리는 패턴, 익숙한 시퀀스, 키보드 배열 쪽으로 편향되어 있습니다. 무작위로 만들려고 해도 사람이 만든 비밀번호는 진정한 무작위보다 엔트로피가 현저히 낮습니다.
암호학적으로 안전한 난수 생성기(CSPRNG)가 비밀번호 생성에 적합한 진정한 무작위성을 제공합니다. 이 알고리즘은 하드웨어 엔트로피 소스에서 추출하여 수학적으로 예측 불가능한 출력을 만듭니다.
무작위 비밀번호를 생성할 때:
- Math.random() 같은 유사 난수가 아닌 CSPRNG을 사용하세요
- 문자 집합(대문자, 소문자, 숫자, 기호)을 명시적으로 지정하세요
- 엔트로피 요구 사항에 따라 길이를 설정하세요
- 계정마다 새로운 독립 비밀번호를 생성하세요
패스프레이즈 방식
무작위 문자 비밀번호의 대안은 패스프레이즈입니다. 무작위로 선택된 여러 단어를 연결하는 방식입니다. "correct-horse-battery-staple"은 "j7#Kx9$mR2&p"보다 외우기 쉬우면서 비슷한 수준의 엔트로피를 제공합니다(단어가 진정 무작위로 선택된 경우).
핵심 요구 사항은 같습니다: 진짜 무작위성. 7,776개 단어 사전에서 무작위로 4단어를 선택하면(Diceware 방식) 약 51비트 엔트로피를 제공합니다. 6단어면 약 77비트입니다.
의미 있는 문장을 이루거나 서로 관련된 단어를 고르면 안 됩니다. "my-dog-loves-walks"는 단어들이 관련되어 예측 가능하므로 나쁜 패스프레이즈입니다. "quantum-mailbox-furnace-eleven"은 조합이 자의적이므로 훨씬 낫습니다.
비밀번호 관리자
고유한 무작위 비밀번호의 현실적 문제는 기억입니다. 16글자 무작위 문자열 50개를 외울 수는 없습니다. 비밀번호 관리자는 모든 비밀번호를 하나의 마스터 비밀번호로 보호되는 암호화 금고에 저장합니다.
마스터 비밀번호만 정말 강하게 만드세요 — 최소 80비트 엔트로피, 긴 무작위 문자열이나 6단어 이상의 패스프레이즈. 나머지는 관리자가 생성하고 저장합니다.
흔한 실수
**약한 비밀번호에 숫자 추가**: "password1"은 "password"보다 의미 있게 강해지지 않습니다. 공격자는 이런 변형을 자동으로 테스트합니다.
**개인 정보**: 생일, 반려동물 이름, 주소, 전화번호는 쉽게 알아낼 수 있고, 표적 공격에 흔히 사용됩니다.
**키보드 패턴**: "qwertyuiop", "1qaz2wsx" 같은 패턴은 모든 공격자의 사전에 들어 있습니다.
**특수 문자가 포함된 짧은 비밀번호**: "A1@b"는 모든 문자 유형을 사용해도 엔트로피가 매우 낮습니다. 문자 다양성보다 길이가 더 중요합니다.
**주기적 비밀번호 변경**: 강제 변경은 예측 가능한 패턴(Password1, Password2, Password3)을 만듭니다. 일정에 따라가 아니라 유출되었을 때 변경하세요.
실용적 권장 사항
모든 곳에 비밀번호 관리자를 사용하세요. 모든 문자 유형을 포함한 최소 16글자 무작위 비밀번호를 생성하세요. 마스터 비밀번호는 강한 패스프레이즈를 사용하세요. 가능한 곳마다 이중 인증을 활성화하세요 — 비밀번호가 유출되더라도 보호하는 두 번째 방어선입니다.
보안은 완벽한 비밀번호 하나를 만드는 게 아닙니다. 모든 비밀번호를 고유하고, 무작위로, 깨는 데 공격자의 시간을 쏟을 가치가 없을 만큼 충분히 길게 만드는 것입니다.