비밀번호 생성기
암호학적으로 안전한 난수(Web Crypto API)로 비밀번호를 생성. 문자 종류, 길이, 유사 문자 제외를 세밀하게 지정할 수 있으며 강도 미터도 제공.
암호학적 난수 (crypto.getRandomValues) 사용, 비밀번호는 브라우저 외부로 나가지 않습니다.
보안에 대하여
- 이 도구는
crypto.getRandomValues()를 사용하여 암호학적으로 안전한 난수를 생성합니다. - 생성은 브라우저 내에서만 이루어지며, 서버로 비밀번호가 전송되지 않습니다.
- 12자 이상, 4종 모두 활성화, 유사 문자 제외 없음을 권장. 중요한 용도에는 16자 이상을 권장합니다.
- 생성된 비밀번호는 반드시 안전한 곳(비밀번호 관리자 등)에 보관하세요.
복사되었습니다
📖 자주 걸리는 지점
Web Crypto API 의 crypto.getRandomValues() 를 사용해 암호학적으로 안전한 난수에서 비밀번호를 생성합니다. 문자 종류 · 길이 · 비슷한 문자의 제외를 지정할 수 있고 엔트로피 추정값도 표시합니다. 처리는 브라우저 안에서 끝나며 생성한 비밀번호는 전송되지 않습니다. 강도 미터가 나타내는 것은 엔트로피(추측에 필요한 시도 횟수의 기준)이지 뚫리기 어려움 그 자체가 아닙니다 — 실제의 안전성은 그 비밀번호를 어디에 어떻게 보관하고 돌려쓰지 않는가로 정해집니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 복잡함을 올리면 강해진다고 생각한다 | 엔트로피는 문자 종류의 수와 길이 양쪽으로 정해지지만 듣는 방식이 다릅니다 — 문자 종류를 늘려도 한 글자당 비트 수가 조금 늘 뿐이지만 길이는 한 글자 늘 때마다 그 비트 수가 통째로 더해집니다. 실제로 계산하면 4 종류를 모두 쓴 8 자(약 52 비트)보다 소문자뿐인 12 자(약 56 비트)가 더 강합니다. 그런데도 많은 사이트가 대문자 · 숫자 · 기호를 각 1 자 이상이라는 요건을 부과하고 있어 결과적으로 Password1! 같은 외우기 쉽고 약한 비밀번호를 대량으로 낳고 있습니다. |
길이를 우선하세요. 비밀번호 관리자를 쓴다면 기억할 필요가 없으므로 20 자 이상의 랜덤 문자열로 해도 상관없습니다 — 이 도구의 기본값보다 길게 해도 복사 붙여넣기의 수고는 변하지 않습니다. 외워야 하는 소수의 비밀번호(단말의 로그인, 관리자의 마스터 비밀번호)는 무관한 단어를 4~6 개 이은 패스프레이즈가 외우기 쉬움과 강도를 양립시킵니다. NIST 의 SP 800-63B 는 2017 년 개정에서 복잡성 요건과 정기 변경의 강제를 모두 권장에서 뺐습니다 — 대신 요구되고 있는 것은 길이와 유출된 비밀번호의 블록리스트와의 대조입니다. 요건을 설계하는 쪽이라면 이 두 가지로 바꾸세요. |
| 비슷한 문자의 제외로 오히려 약해진다 | 0 과 O, 1 과 l 과 I 를 제외하면 잘못 읽는 일이 줄지만 그만큼 문자 집합이 작아져 한 글자당 엔트로피가 낮아집니다 — 영숫자 62 종에서 5 자를 빼면 57 종이 되고 16 자라면 전체로 2 비트 남짓의 손실입니다. 손실 자체는 작지만 문제는 무엇을 위해 제외하고 있는지가 잊히기 쉽다는 점입니다 — 복사 붙여넣기로만 쓰는 비밀번호에서 비슷한 문자를 제외해도 읽기 쉬움의 이익은 0 이고 엔트로피만 줄어듭니다. |
용도로 전환하세요. 비슷한 문자의 제외가 의미를 갖는 것은 종이에 인쇄해 건네거나 구두로 전하거나 다른 단말에 손으로 입력하는 같은 사람이 문자를 읽는 장면뿐입니다 — 초기 비밀번호를 우송한다, 기기의 설정을 현장에서 입력한다 같은 경우입니다. 비밀번호 관리자에 저장해 복사 붙여넣기로 쓴다면 제외는 끄고 그만큼 길이를 1~2 자 늘리세요. 손으로 입력할 가능성이 있는지를 먼저 정하고 나서 설정을 고르는 것이 요점이며 왠지 안전해 보인다는 이유로 제외를 켜는 것은 목적과 반대 방향의 선택입니다. |
| 강한 비밀번호를 만들어도 돌려쓰고 있다 | 돌려쓴 비밀번호의 강도는 그것을 보관하고 있는 사이트 중 가장 약한 하나로 정해집니다. 아무리 길고 복잡해도 어떤 사이트가 평문으로 저장하고 있다가 유출되면 그 문자열은 그대로 다른 모든 사이트의 열쇠가 됩니다 — 이것이 크리덴셜 스터핑이며 유출된 메일 주소와 비밀번호의 조합을 자동으로 다른 서비스에 하나하나 시도하는 공격입니다. 성공률은 몇 퍼센트이지만 시도가 자동화되어 있으므로 수천만 건의 조합에서 보면 충분한 수의 계정이 탈취됩니다. 생성한 비밀번호가 강한 것은 이 공격에 대해 아무런 방어도 되지 않습니다. | 사이트마다 다른 비밀번호를 쓰세요 — 이는 비밀번호 관리자를 쓰는 것과 사실상 동의입니다. 사람이 수십 개의 랜덤 문자열을 외울 수는 없으므로 돌려쓰지 않기를 실현하는 방법은 관리자 외에 없습니다. 그 위에 더 효과가 큰 것은 2 요소 인증(2FA)의 활성화입니다 — 비밀번호가 새도 그것만으로는 로그인할 수 없게 됩니다. 우선순위로는 중요한 계정(메일 · 은행 · 비밀번호 관리자 자신)부터 2FA 를 켜고 그 후에 비밀번호의 돌려쓰기를 해소해 가는 것이 현실적입니다. 메일 계정을 최우선으로 하세요 — 다른 모든 서비스의 비밀번호 재설정이 거기로 도착하므로 실질적으로 모든 열쇠를 겸하고 있습니다. |
생성한 비밀번호는 생각보다 많은 곳에 남습니다. 복사한 시점에 클립보드에 들어가고 Windows 의 클립보드 기록이나 macOS 와 iPhone 의 유니버설 클립보드가 켜져 있으면 다른 단말에도 동기화됩니다 — 나아가 클립보드는 원칙적으로 어느 앱에서나 읽을 수 있습니다. 정말로 중요한 비밀번호는 비밀번호 관리자의 생성 기능을 쓰세요 — 생성과 저장이 같은 앱 안에서 끝나고 클립보드도 브라우저도 거치지 않습니다. 이 페이지가 도움이 되는 것은 관리자를 쓸 수 없는 장면(기기의 초기 설정, 남에게 건네는 일시적인 인증 정보, 테스트 데이터) 입니다. 한 가지 더, 실무에서 기억해 두면 도움이 되는 판단 재료가 있습니다 — 등록 화면에서 기호는 쓸 수 없습니다, 최대 12 자까지라고 하면 그것은 그 사이트가 비밀번호를 평문이나 그에 가까운 형태로 저장하고 있는 징조입니다. 올바르게 해시화하고 있다면 입력의 길이나 문자 종류는 해시의 길이에 영향을 주지 않으므로 제한할 이유가 없습니다. 그런 사이트에서는 다른 곳에서 쓰지 않는 비밀번호를 쓰는 것이 특히 중요해집니다.
📖 사용법
-
1
문자 종류와 길이 설정문자 종류를 선택하고 슬라이더로 길이를 설정합니다(4~64).
-
2
생성 수 설정 후 생성 클릭생성 수(1~50)를 입력하고 생성 버튼을 클릭합니다.
-
3
비밀번호 복사 후 저장각 행의 복사 버튼을 클릭합니다. 비밀번호 관리자에 저장하세요.
❓ 자주 묻는 질문
이 도구는 정말 안전한 난수를 사용하나요?
유사 문자 제외 옵션이란?
생성된 비밀번호가 서버로 전송되나요?
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.