기능 소개
비밀번호 생성기는 선택한 문자 집합(소문자, 대문자, 숫자, 기호)으로 강력한 무작위 비밀번호를 만듭니다. 켜 둔 모든 집합에서 최소 한 글자씩은 반드시 들어가므로, 대부분의 웹사이트가 요구하는 구성 규칙을 만족합니다.
난수는 Math.random이 아니라 브라우저의 암호학적으로 안전한 생성기에서 얻습니다. 문자는 거부 샘플링(rejection sampling)으로 고르므로 문자 풀의 모든 문자가 같은 확률로 뽑히고, 알파벳 앞쪽으로 치우치지 않습니다.
사용 방법
- 길이를 고릅니다. 레이블에 현재 설정으로 만든 비밀번호 하나의 엔트로피가 표시됩니다.
- 한 번에 만들 비밀번호 개수를 고릅니다.
- 문자 집합을 켜거나 끕니다. 비밀번호를 사람이 읽거나 손으로 입력해야 한다면 헷갈리는 문자 제외를 켭니다.
- 생성을 클릭해 새 묶음을 만든 뒤 한 줄씩 복사하거나 목록을 다운로드합니다.
강력한 비밀번호의 조건
복잡함보다 길이가 중요합니다. 출력 가능한 ASCII 문자 94개를 모두 쓰는 16자 비밀번호는 엔트로피가 약 104비트입니다. 초당 1조 번을 추측하더라도 모든 조합을 시도하려면 우주의 나이보다 훨씬 오래 걸립니다. 기호가 들어간 짧은 비밀번호는 글자만 쓴 긴 비밀번호보다 약합니다.
그만큼 중요한 것은 사이트마다 다른 비밀번호를 쓰고 비밀번호 관리자에 보관하는 것입니다. 계정 탈취는 대부분 추측이 아니라, 다른 사이트에서 유출된 비밀번호를 재사용해서 일어납니다.
예시
기본 설정(16자, 모든 집합)으로는 다음과 같은 비밀번호가 만들어집니다.
q7#Lm2^vR!xP9tGd
Wz$4kN8@hE&c3uJy
매번 다른 비밀번호가 생성됩니다. 위 예시는 설명용이므로 실제로 사용하지 마세요.
자주 묻는 질문
› 비밀번호가 서버에서 생성되나요?
아니요. 암호학적으로 안전한 난수 생성기인 Web Crypto API(crypto.getRandomValues)로 브라우저에서 만듭니다. 네트워크로 전송되거나 저장되는 것은 없습니다.
› 비밀번호는 얼마나 길어야 하나요?
비밀번호 관리자로 관리하는 계정이라면 네 가지 문자 집합을 모두 쓴 16자 이상이면 충분합니다(엔트로피 100비트 이상). 마스터 비밀번호나 디스크 암호화 키에는 20자 이상을 쓰세요.
› "비트 엔트로피"는 무슨 뜻인가요?
공격자가 몇 번이나 추측해야 하는지를 나타내는 척도로, 1비트가 늘 때마다 필요한 작업량이 두 배가 됩니다. 길이 × log2(가능한 문자 수)로 계산합니다. 80비트면 온라인 공격과 대부분의 오프라인 공격에 강하고, 100비트 이상이면 현실적인 무차별 대입으로는 뚫을 수 없습니다.
› 헷갈리는 문자는 왜 빼나요?
0과 O, 1과 l과 I 같은 문자는 비밀번호를 소리 내어 읽거나 종이에 적힌 것을 보고 입력할 때 구별하기 어렵습니다. 빼면 엔트로피가 조금 줄지만, 비밀번호를 약간 길게 하면 메울 수 있습니다.