비밀번호 강도 체크
비밀번호 강도 체크는 비밀번호를 입력하는 즉시 얼마나 무작위인지, 어떤 패턴이 약하게 만드는지, 공격자가 최악의 경우 얼마 만에 풀 수 있는지를 보여 줍니다. 검사는 모두 사용 중인 브라우저 안에서 이루어집니다.
출처: NIST SP 800-63B, NIST SP 800-63B-4 – 3.1.1.2 Password Verifiers (length, blocklist). 업데이트: .
계산 방법
비밀번호는 어디에도 전송되지 않습니다. 비밀번호 강도 체크는 사용 중인 기기의 JavaScript만으로 이루어집니다. 입력란의 내용은 주소창이나 방문 기록에 남지 않고 저장되지도 않습니다. 불러오는 것은 자주 쓰이는 비밀번호의 공개 목록(파일 하나)뿐이며, 대조도 기기 안에서 합니다.
비밀번호 강도 확인하는 법
- 입력란에 비밀번호를 넣습니다. 브라우저 밖으로 나가지 않습니다.
- 판정, 추정 엔트로피, 찾아낸 패턴을 확인합니다.
- 약하다면 새 비밀번호를 만들고 다시 확인합니다.
예: 「Seoul2024!」에서는 2024가 연도 패턴으로 잡힙니다. 이 부분은 log₂(150) ≈ 7비트밖에 되지 않습니다. 정말 무작위인 숫자 네 자리라면 13비트가 넘습니다.
추정 방법
1. 문자 종류 × 길이: 쓰인 문자 종류로 후보 수를 정합니다(영문 소문자 26, 대문자 26, 숫자 10, 특수문자 33, 한글 등 그 밖의 문자는 일률 100). 단순 엔트로피는 「길이 × log₂(후보 수)」이며, 네 가지를 모두 쓴 12자라면 12 × log₂(95) ≈ 78.8비트입니다.
2. 패턴에 따른 감점: 사람은 문자를 무작위로 고르지 않습니다. 그래서 공격자는 유출된 비밀번호 목록, 글자를 바꾼 단어(P@ssw0rd), 연속된 문자(abc, 123), 키보드 배열(qwerty, asdf), 반복, 연도를 먼저 시도합니다. 이 도구는 비밀번호를 이런 조각으로 나누고, 각 조각을 맞히는 데 필요한 적은 비트 수만 셉니다. zxcvbn 방식(Wheeler, USENIX Security 2016)을 단순하게 만든 것이며, 두 값 중 작은 쪽을 보여 줍니다.
3. 해독 시간: 2비트 수를 초당 시도 횟수로 나눈 값, 즉 모든 조합을 시도하는 데 걸리는 시간입니다. 전제는 zxcvbn과 같이 도난당한 비밀번호 데이터베이스에 대한 오프라인 공격이며, 빠른 해시(초당 100억 번, 예: GPU로 솔트 없는 MD5)와 느린 해시(초당 1만 번, 예: bcrypt) 두 가지입니다. 잠금 기능이 있는 온라인 로그인을 공격할 때는 훨씬 오래 걸립니다.
한/영 전환 비밀번호는 실제보다 강하게 나옵니다
「사랑해」를 영문 자판으로 친 tkfkdgo처럼 한글 단어를 한/영 전환으로 바꾼 비밀번호를 많이 씁니다. 이 도구는 영어 단어 목록과 대조하므로 이런 비밀번호를 단어로 알아보지 못하고 무작위 소문자로 셉니다. 하지만 자판 변환 규칙은 누구나 알 수 있으므로, 공격자에게는 결국 한국어 사전 단어와 같습니다. 이런 비밀번호라면 표시된 값보다 훨씬 약하다고 보세요.
판정 단계
- 매우 약함: 40비트 미만(오프라인에서 2분 미만), 또는 자주 쓰이는 비밀번호 목록에 있음
- 약함: 40~59비트(오프라인에서 몇 분에서 3년 반 정도)
- 보통: 60~79비트
- 강함: 80~99비트(오프라인에서 수백만 년)
- 매우 강함: 100비트 이상
추정값은 상한입니다. 공격자가 이름, 생일, 전화번호, 반려동물 이름 같은 개인정보를 알거나 비밀번호가 과거 유출에 포함되었다면 훨씬 빨리 풀립니다. NIST SP 800-63B는 2단계 인증 없이 쓸 때 15자 이상을 요구하고, 문자 종류를 억지로 섞게 하기보다 알려진 비밀번호 목록과 대조하라고 합니다. 새 비밀번호는 비밀번호 생성기로 무작위로 만들 수 있습니다.
자주 묻는 질문
여기에 비밀번호를 넣어도 안전한가요?
비밀번호는 전송·저장되지 않으며 계산은 모두 브라우저 안에서 이루어집니다. 그래도 원칙적으로 필요 없는 곳에 실제 비밀번호를 넣지 마세요. 같은 방식으로 만든 다른 비밀번호로 시험하기를 권합니다.
내 비밀번호가 유출되었는지도 확인할 수 있나요?
아니요. 대조하는 것은 기기 안에 있는 자주 쓰이는 비밀번호 1만 개 목록뿐입니다. 유출 여부는 대규모 유출 데이터베이스와 대조해야 하고, 그러려면 해시 일부를 보내야 하므로 이 도구는 일부러 하지 않습니다.
「Seoul2024!」는 모든 문자 종류를 썼는데 왜 약한가요?
단어, 연도, 끝에 붙인 특수문자처럼 공격자가 가장 먼저 시도하는 패턴으로만 이루어져 있기 때문입니다. 문자 종류만으로는 안전한지 알 수 없습니다. 중요한 것은 얼마나 무작위인지입니다.
qwer1234 같은 비밀번호는 어떤가요?
키보드 배열과 연속 숫자를 이어 붙인 것이라 매우 약합니다. 특수문자를 하나 붙여도 크게 달라지지 않습니다. 이런 패턴은 판정과 「찾아낸 약점」에 표시됩니다.
안전한 비밀번호에는 몇 비트가 필요한가요?
중요한 계정이라면 80비트 이상이 기준입니다. 예를 들어 모든 문자 종류에서 무작위로 고른 14자, 또는 7,776개 단어 목록에서 무작위로 고른 단어 7개입니다.
해독 시간 「수백만 년」 같은 표시는 얼마나 정확한가요?
적어 둔 전제(초당 100억 번 또는 1만 번, 모든 조합 시도)에서의 대략적인 기준입니다. 실제 공격은 서비스의 해시 방식, 공격 장비, 공격자가 이미 아는 정보에 따라 달라집니다.
출처 및 근거
- NIST SP 800-63B: NIST SP 800-63B-4 – 3.1.1.2 Password Verifiers (length, blocklist)
- BSI – Creating secure passwords
- Wheeler (2016): zxcvbn – Low-Budget Password Strength Estimation, USENIX Security
- zxcvbn (Dropbox, MIT) – attack scenarios offline_fast_hashing_1e10_per_second / offline_slow_hashing_1e4_per_second
- SecLists – 10k-most-common.txt (common passwords, MIT)
업데이트: · 편집 원칙
관련 도구
- 비밀번호 생성기: 랜덤 비밀번호 만들기무료 비밀번호 생성기. 영문·숫자·특수문자 조합 랜덤 비밀번호나 외우기 쉬운 패스프레이즈를 만들고 강도를 비트로 보여 줍니다. 브라우저 안에서만 생성됩니다.
- 글자수 세기: 공백 포함·제외와 바이트무료 글자수 세기. 공백 포함·제외 글자 수와 바이트(한글 2·3바이트)를 입력과 동시에 보여 줍니다. 자소서 글자수 제한, 어절·줄 수, SNS 한도도 확인하세요.
- 텍스트 비교: 두 글의 차이 찾기무료 텍스트 비교 도구. 두 글의 다른 부분을 줄, 단어(어절), 글자 단위로 찾아 나란히 또는 한 화면에 표시합니다. 차이로 바로 이동, patch 저장. 업로드 없음.
- 대소문자 변환: 영어 대문자·소문자 바꾸기무료 대소문자 변환기. 영어 문장을 대문자, 소문자, 제목 형식(Title Case), 문장 형식, camelCase, snake_case로 바로 바꿉니다. 입력한 글은 저장되지 않습니다.
- 줄바꿈 제거: 공백·빈 줄·중복 줄 정리무료 텍스트 정리기. PDF에서 복사한 글의 줄바꿈 제거, 공백 제거, 빈 줄과 보이지 않는 문자 삭제, 중복 줄 제거, 줄 정렬까지 한 번에. 브라우저에서 바로 처리합니다.