강력한 비밀번호를 만들고 관리하는 법
2026년 11월 업데이트
강력한 비밀번호란 공격자가 추측할 수 없는 비밀번호이고, 그런 비밀번호를 얻는 확실한 방법은 컴퓨터가 무작위로 고르게 하는 것뿐입니다. 비밀번호 조언은 아직도 대문자 하나, 특수문자 하나 같은 세부 사항에 매달리는 경우가 많지만, 실제 위험은 짧은 비밀번호, 뻔한 패턴, 그리고 여러 사이트에 같은 비밀번호를 쓰는 습관입니다. 이 글에서는 비밀번호를 강하게 만드는 요소와 강도를 재는 방법, 그리고 무작위 문자열 수십 개를 외우지 않고도 안전하게 지내는 방법을 설명합니다.
비밀번호는 어떻게 뚫리나
- 온라인 추측. 로그인 화면에 비밀번호를 하나씩 넣어 봅니다. 시도 횟수 제한과 계정 잠금이 속도를 늦추기 때문에, 주로
123456이나qwerty처럼 아주 흔한 비밀번호가 이렇게 뚫립니다. - 오프라인 크래킹. 사이트의 데이터베이스가 유출되면 공격자는 비밀번호 해시(비밀번호를 뒤섞어 바꾼 값)를 손에 넣고, 자기 장비로 하드웨어가 허락하는 한 빠르게 추측을 시험할 수 있습니다. 길이와 무작위성이 가장 중요해지는 경우입니다.
- 크리덴셜 스터핑. 한 사이트에서 유출된 이메일과 비밀번호 쌍을 다른 사이트에 자동으로 넣어 봅니다. 해독할 필요도 없이, 사람들이 비밀번호를 재사용하기 때문에 통하는 공격입니다.
가짜 로그인 페이지로 비밀번호를 입력하게 만드는 피싱도 있는데, 이것은 아무리 강한 비밀번호로도 막을 수 없습니다. 2단계 인증과 패스키가 중요한 이유 중 하나입니다.
복잡함보다 길이
글자를 하나 더할 때마다 가능한 비밀번호의 수는 문자 집합의 크기만큼 곱해지지만, 문자 종류를 하나 더 넣으면 그 집합이 조금 커질 뿐입니다. 키보드로 입력할 수 있는 94가지 문자에서 무작위로 고른 8자리는 약 6.1 × 10¹⁵가지인데, 무작위 영문 소문자 12자리는 약 9.5 × 10¹⁶가지로 15배가 넘고 휴대폰으로 입력하기도 훨씬 쉽습니다. 국내 사이트에서 흔히 보는 “영문·숫자·특수문자 조합 8자리 이상” 같은 규칙을 지키더라도, 길이를 늘리는 쪽이 훨씬 효과적입니다. 특수문자도 강도를 높여 주지만, 어떤 사이트가 일부 특수문자를 받지 않는다면 비밀번호를 더 길게 만드는 편이 낫습니다.
엔트로피, 쉽게 이해하기
비밀번호의 강도는 엔트로피(비트)로 잽니다. 1비트는 동전 던지기 한 번입니다. 40비트 비밀번호를 맞히는 것은 동전 던지기 40번의 결과를 연달아 모두 맞히는 것만큼 어렵습니다. 1비트가 늘 때마다 공격자가 할 일은 두 배가 되므로, 50비트는 40비트보다 25% 어려운 것이 아니라 약 1,000배 어렵습니다(2¹⁰ = 1,024).
무작위로 고른 비밀번호라면 엔트로피는 간단히 길이 × log₂(사용할 수 있는 문자 수)입니다.
| 문자 집합 | 문자 수 | 글자당 비트 | 8자리 | 12자리 | 16자리 | 20자리 |
|---|---|---|---|---|---|---|
| 숫자만 (0–9) | 10 | 3.32 | 26.6 | 39.9 | 53.2 | 66.4 |
| 영문 소문자 | 26 | 4.70 | 37.6 | 56.4 | 75.2 | 94.0 |
| 영문 대소문자 | 52 | 5.70 | 45.6 | 68.4 | 91.2 | 114.0 |
| 영문 + 숫자 | 62 | 5.95 | 47.6 | 71.5 | 95.3 | 119.1 |
| 출력 가능한 ASCII 전체 | 94 | 6.55 | 52.4 | 78.7 | 104.9 | 131.1 |
감을 잡기 위해, 초당 100억 번 추측하는 오프라인 공격자를 생각해 봅시다. 그래픽카드로 빠른 해시를 공격하는 경우를 가정한 대략적인 예시 수치이며, bcrypt나 Argon2 같은 느린 비밀번호 해시라면 속도가 몇 자릿수나 떨어집니다. 무작위 비밀번호는 평균적으로 전체 경우의 절반을 시도했을 때 찾아집니다.
| 무작위 비밀번호 | 엔트로피 | 초당 100억 번일 때 평균 시간 |
|---|---|---|
| 영문 소문자 8자리 | 37.6비트 | 약 10초 |
| 모든 종류 8자리 | 52.4비트 | 약 3.5일 |
| 영문 소문자 12자리 | 56.4비트 | 약 55일 |
| 영문 소문자 16자리 | 75.2비트 | 약 6만 9천 년 |
| 모든 종류 12자리 | 78.7비트 | 약 75만 년 |
| 모든 종류 16자리 | 104.9비트 | 우주 나이의 수천 배 |
주의할 점은 이 수치가 무작위 비밀번호에만 해당한다는 것입니다. Summer2026!은 11자리에 네 종류의 문자를 모두 써서 공식으로는 약 72비트가 나오지만, “단어 + 연도 + 기호”라는 패턴은 크래킹 도구가 가장 먼저 시도하는 형태입니다. 사람이 고른 비밀번호는 공식보다 훨씬 약하기 때문에, 문자 종류만 세는 강도 표시는 믿기 어렵습니다.
일반 계정은 70–80비트, 이메일이나 비밀번호 관리자처럼 다른 모든 것을 여는 계정은 100비트 이상을 목표로 삼으면 적당합니다. 비밀번호 생성기는 만든 비밀번호마다 엔트로피를 보여 주며, 기본값인 네 종류 문자 16자리는 약 103비트입니다.
패스프레이즈: 강하면서도 외우기 쉽게
컴퓨터 로그인이나 비밀번호 관리자의 마스터 비밀번호처럼 꼭 외워야 하는 몇 개에는 패스프레이즈를 쓰세요. 큰 단어 목록에서 단어를 무작위로 고르는 방식으로, 예를 들어 영어 단어 7,776개로 된 Diceware 목록에서 주사위를 굴려 고릅니다. 단어 하나는 약 12.9비트이므로 4단어는 51.7비트(해시가 유출되면 부족함), 5단어는 64.6비트, 6단어는 77.5비트로 마스터 비밀번호에 알맞은 수준입니다.
6단어는 maple tundra spoon orbit velvet kettle처럼 생겼습니다(이 예시는 공개되었으니 쓰지 마세요). 직접 지어낸 문장, 노래 가사, 유명한 명언은 모든 크래킹 사전에 들어 있습니다. 대문자나 구분 기호는 효과가 작고, 무작위 단어를 하나 더 넣는 편이 훨씬 효과가 큽니다.
비밀번호 관리자를 쓰세요
무작위 비밀번호 100개를 모두 외울 수 있는 사람은 없습니다. 비밀번호 관리자는 강력한 마스터 비밀번호 하나로 보호되는 암호화 금고에 비밀번호를 보관하고, 자동으로 입력해 주며, 기기 사이에 동기화해 줍니다. 브라우저와 휴대폰에 들어 있는 관리자로 시작해도 좋고, Bitwarden, 1Password, KeePassXC 같은 전용 앱은 여러 브라우저와 기기에서 쓸 수 있고 더 세밀하게 관리할 수 있습니다. 덤으로, 관리자는 저장한 사이트에서만 비밀번호를 채워 주므로 은행 사이트와 똑같아 보이는 페이지에서 자동 입력이 되지 않는다면 주소를 꼭 확인하세요. 피싱 사이트일 수 있습니다.
- 관리자를 설치하고 6단어 패스프레이즈를 마스터 비밀번호로 정합니다. 완전히 외울 때까지는 종이에 적어 집 안 안전한 곳에 둡니다.
- 관리자 자체에 2단계 인증을 켭니다.
- 이메일, 은행, 휴대폰·클라우드 계정, SNS처럼 가장 중요한 계정부터 16–20자리 새 무작위 비밀번호로 바꿉니다.
- 나머지는 각 사이트에 로그인할 때마다 하나씩 바꿉니다.
2단계 인증과 패스키
2단계 인증(2FA)은 비밀번호 외에 다른 것을 하나 더 요구하므로, 비밀번호만 훔쳐서는 로그인할 수 없습니다. 네이버나 카카오처럼 자주 쓰는 서비스도 2단계 인증을 제공합니다. 다만 두 번째 수단도 강도가 서로 다릅니다.
| 방식 | 작동 방식 | 약점 |
|---|---|---|
| 문자(SMS)·이메일 코드 | 휴대폰이나 메일함으로 일회용 코드를 보냄 | 유심 탈취(심 스와핑)로 문자를 가로챌 수 있고, 코드도 피싱당할 수 있음 |
| 인증 앱(OTP 앱) | 앱이 30초마다 바뀌는 6자리 코드를 보여 줌 | 오프라인에서도 되지만, 가짜 사이트에 코드를 입력하도록 속을 수 있음 |
| 보안 키·패스키 | 실제 웹사이트 도메인에 묶인 공개 키 암호 방식 | 비슷하게 생긴 도메인에서는 브라우저가 쓰지 않으므로 피싱에 강함 |
패스키는 비밀번호를 아예 대신합니다. 기기가 키 한 쌍을 만들어 웹사이트에는 공개 키만 저장하고, 개인 키는 내 기기나 비밀번호 관리자에 남아 지문, 얼굴, 화면 잠금으로 풀립니다. 재사용할 것도, 서버에서 유출되어 로그인에 쓰일 것도, 가짜 페이지에 입력할 것도 없습니다. 서비스가 패스키를 지원한다면 대개 가장 안전한 선택입니다. 어떤 방식을 쓰든 2단계 인증을 켤 때 보여 주는 복구 코드를 비밀번호 관리자나 종이에 저장해 두세요. 휴대폰을 잃어버려도 계정에 들어갈 수 있어야 합니다.
재사용과 유출
대부분의 사람에게 가장 큰 위험은 재사용입니다. 사이트 한 곳이 유출되면 같은 비밀번호를 쓰는 모든 계정이 크리덴셜 스터핑에 노출됩니다.
Have I Been Pwned 같은 서비스에서 내 이메일 주소가 알려진 유출 사고에 포함되었는지 확인할 수 있습니다. 이 서비스의 비밀번호 확인은 k-익명성이라는 기법을 씁니다. 브라우저에서 비밀번호를 SHA-1로 해시한 뒤 해시의 앞 다섯 글자만 보냅니다. 예를 들어 password의 SHA-1 해시는 5BAA61E4C9B9…로 시작하는데, 기기 밖으로 나가는 것은 5BAA6뿐이고, 서비스는 그 다섯 글자로 시작하는 유출 해시를 모두 돌려보내 비교는 내 기기에서 이루어집니다. 해시가 어떻게 바뀌는지는 해시 생성기로 직접 볼 수 있습니다. 실제 비밀번호 대신 테스트용 문자열로 해 보세요. 잘 만든 사이트는 그냥 SHA-256이 아니라 bcrypt나 Argon2 같은 느린 알고리즘으로 비밀번호를 저장하지만, 사이트가 어떻게 저장하는지는 밖에서 알 수 없으니 사이트마다 다른 비밀번호를 쓰는 것이 안전합니다.
비밀번호가 유출되었다면 그 사이트와, 같거나 비슷한 비밀번호를 쓴 모든 곳에서 비밀번호를 바꾸고, 다른 기기의 로그인을 모두 로그아웃시킨 뒤 2단계 인증을 켜세요.
하지 말아야 할 것
- 이름, 생일, 반려동물, 전화번호, 아이디로 비밀번호를 만들지 마세요.
- 글자 바꾸기에 기대지 마세요. 크래킹 도구에게
P@ssw0rd는 그냥 “password”입니다. 1q2w3e4r같은 키보드 패턴이나, 바꾸라고 할 때마다 숫자만 하나씩 올리는 방식은 쓰지 마세요.- 비밀번호를 메모장, 스프레드시트, 나에게 보내는 메일에 그대로 적어 두거나 메신저로 보내지 마세요. 공유해야 한다면 비밀번호 관리자의 공유 기능을 쓰세요.
- 답을 인터넷에서 찾을 수 있는 보안 질문에는 사실대로 답하지 마세요. 무작위 답을 만들어 관리자에 저장하세요.
- 식별자를 비밀 값으로 쓰지 마세요. UUID 생성기는 고유 ID를 만드는 데는 좋지만, ID는 URL과 로그에 남기 쉽고 버전 7 UUID는 앞부분이 타임스탬프입니다.
- 좋은 비밀번호를 주기적으로 바꾸는 것 자체를 목표로 삼지 마세요. 억지로 바꾸게 하면 뻔한 변형이 생기기 쉬워서, 미국 NIST 지침(SP 800-63B)도 서비스가 정기 변경을 강제하지 말라고 권합니다. 유출 같은 이유가 있을 때 바꾸면 됩니다.