비밀번호 강도 검사기

0자

비밀번호 생성

길이: 16

GeekFormat 비밀번호 강도 검사기는 Shannon Entropy를 기반으로 비밀번호 보안성을 과학적으로 평가합니다. 비밀번호를 입력하면 5단계 별점 강도 평가, 엔트로피 값(bits), 세 가지 시나리오에서의 크래킹 시간 추정(일반 PC/슈퍼컴퓨터/온라인 속도 제한 공격)이 즉시 표시되며, 7가지 보안 지표(길이, 대소문자, 숫자, 특수문자, 반복 패턴, 연속 시퀀스, 일반적인 약한 비밀번호 데이터베이스 일치)를 항목별로 검사하고 개인 맞춤형 개선 제안을 제공합니다. 암호학적으로 안전한 랜덤 비밀번호 생성기(crypto.getRandomValues)를 내장하여 8-64자 길이와 사용자 정의 문자 집합을 지원합니다. 순수 브라우저 로컬 처리로 비밀번호는 서버에 업로드되지 않습니다.

관련 추천

비밀번호 강도와 보안에 대하여

Password Strength(비밀번호 강도)는 Brute-force Attack과 Dictionary Attack에 저항하는 비밀번호의 능력을 측정하는 척도입니다. 강력한 비밀번호는 충분한 길이, 충분히 큰 문자 집합(여러 문자 유형 혼합), 충분한 무작위성(규칙 없음, 예측 불가능)을 가져야 하며 유출된 비밀번호 목록에 포함되지 않아야 합니다. 비밀번호는 디지털 신원 인증의 가장 기본적이고 널리 사용되는 수단으로, 이메일, 소셜 계정부터 인터넷 뱅킹, 암호화폐 지갑까지 거의 모든 온라인 서비스가 비밀번호 보호에 의존합니다. 약한 비밀번호는 데이터 유출과 계정 도용의 주요 원인입니다——Verizon DBIR(데이터 유출 조사 보고서)의 다년간 통계에 따르면 데이터 유출 사고의 80% 이상이 약한 비밀번호 또는 비밀번호 유출과 관련이 있습니다.

Shannon Entropy(섀넌 엔트로피)는 비밀번호 강도를 측정하는 과학적 지표로 정보 이론의 아버지 Claude Shannon가 1948년에 제안했습니다. 암호학에서 엔트로피의 단위는 비트(bit)이며, 비밀번호를 Brute-force하는 데 평균적으로 필요한 시도 횟수의 로그(밑이 2)를 나타냅니다. 예를 들어 40 bits 엔트로피는 공격자가 평균적으로 2⁴⁰≈1조 회의 조합을 시도해야 함을 의미합니다; 80 bits 엔트로피는 2⁸⁰≈1조조 회가 필요합니다; 128 bits 엔트로피는 예측 가능한 미래 내에 Brute-force할 수 없습니다. 주의할 점은 Shannon Entropy는 비밀번호 문자가 완전히 무작위라고 가정하므로 비밀번호에 규칙성이 있는 경우(단어+숫자 접미사 등) 실제 유효 엔트로피는 이론값보다 낮아집니다.

Brute-force Attack은 가장 직접적인 비밀번호 공격 방법입니다: 올바른 비밀번호를 찾을 때까지 가능한 모든 문자 조합을 하나씩 시도합니다. Brute-force 속도는 두 가지 요인에 의존합니다: 계산 능력(초당 몇 회 시도할 수 있는지)과 비밀번호 엔트로피(히트할 때까지 몇 회 시도해야 하는지). GPU 병렬 계산 능력 향상에 따라 Brute-force 속도는 매우 빠르게 성장하고 있습니다——2020년대 고급 그래픽 카드는 초당 수백억 회의 비밀번호 해시를 시도할 수 있습니다. 그러나 비밀번호 엔트로피가 충분히 높은 경우(100 bits 이상 등) 전 세계 모든 계산 자원을 집결하더라도 우주의 나이 내에 전수 조사를 완료할 수 없습니다. 따라서 Brute-force 공격에 대항하는 가장 효과적인 방법은 높은 엔트로피의 긴 랜덤 비밀번호를 사용하는 것입니다.

Dictionary Attack은 Brute-force보다 더 효율적인 공격 방법입니다: 공격자는 모든 조합을 시도하는 대신 일반적인 비밀번호, 유출된 비밀번호, 단어 목록, 일반적인 패턴 조합을 포함하는 '사전'을 사용하여 시도합니다. 대부분의 사용자가 선택하는 비밀번호는 완전히 무작위가 아닙니다——연구에 따르면 사용자의 50% 이상이 상위 1000개 일반적인 비밀번호의 변형을 사용합니다. Dictionary Attack은 가장 가능성이 높은 후보만 시도하므로 Brute-force보다 수 자릿수 더 빠릅니다. 일반적인 비밀번호 데이터베이스(rockyou 유출의 1400만 비밀번호, Have I Been Pwned의 Pwned Passwords 데이터베이스 등)는 인터넷에서 유출된 수십억 개의 비밀번호를 기록하고 있으며 이러한 목록에 포함된 비밀번호는 모두 안전하지 않은 것으로 간주되어야 합니다.

비밀번호 크래킹 시간 추정은 공격 시나리오를 고려해야 합니다. 온라인 공격(웹사이트 로그인 인터페이스를 통한 시도)은 보통 엄격하게 속도 제한됩니다——서버는 시도 빈도를 제한하고 여러 번 실패하면 계정을 잠그며 CAPTCHA를 요구하므로 속도가 가장 느립니다(초당 수 회에서 수백 회). 오프라인 공격(공격자가 비밀번호 해시 데이터베이스를 얻은 후 로컬에서 크래킹)은 매우 빠릅니다——고급 GPU 클러스터를 사용하면 초당 수천억 회 시도할 수 있고 클라우드 컴퓨팅이나 슈퍼컴퓨터를 사용하면 초당 수조 회, 심지어 수천조 회에 도달할 수 있습니다. 또한 해시 알고리즘마다 크래킹 속도가 크게 다릅니다: MD5와 NTHash는 매우 빠르고, bcrypt/Argon2 등 느린 해시 알고리즘은 Brute-force 공격에 저항하도록 특별히 설계되어 속도가 수백만 배 느립니다.

NIST(미국 국립표준기술연구소)는 SP 800-63B 가이드라인에서 비밀번호 정책에 대한 현대적인 권장 사항을 제안합니다: 1) 비밀번호 길이는 최소 8자, 더 긴 비밀번호 사용을 권장(패스프레이즈/passphrase); 2) 모든 ASCII 문자와 Unicode 문자 지원(공백 포함); 3) 정기적인 비밀번호 변경을 강제하지 않음(유출 증거가 있는 경우에만 변경); 4) 특정 문자 조합 규칙을 강제하지 않음(단, 여러 유형 사용 권장); 5) 알려진 유출 비밀번호 사용 금지; 6) 비밀번호 강도 피드백 제공. 이러한 권장 사항의 핵심은: 비밀번호의 진정한 강도는 복잡한 구성 규칙이 아니라 길이와 무작위성에서 비롯된다; 복잡도보다 길이가 더 중요하다는 것입니다.

Passphrase(패스프레이즈)는 보안성과 기억 용이성의 균형을 맞추는 비밀번호 전략입니다: 무작위로 선택된 4-6개의 단어(correct horse battery staple 등)를 조합하여 문자 복잡도가 아닌 단어 수로 높은 엔트로피를 얻습니다. 5개의 무작위 영어 단어로 구성된 패스프레이즈의 엔트로피 값은 약 65-70 bits입니다(7776개의 일반적인 단어에서 무작위로 선택한다고 가정). 이는 10-11자의 완전히 무작위인 ASCII 문자에 해당하지만 더 기억하기 쉽습니다. 그러나 주의할 점: 패스프레이즈의 단어는 무작위로 선택되어야 하며 의미 있는 문장이나 일반적인 구문(iloveyou, tobeornottobe 등)을 사용하면 보안성이 크게 저하됩니다.

비밀번호 보안 모범 사례: 첫째, 비밀번호 관리자(Bitwarden, KeePassXC, 1Password 등)를 사용하여 웹사이트마다 고유한 강력한 랜덤 비밀번호(16자 이상 전체 문자 유형)를 생성하고 저장하여 비밀번호 재사용을 피합니다; 둘째, 가능하면 항상 이중 인증(2FA/TOTP/보안 키)을 활성화하여 비밀번호가 유출되더라도 계정을 보호합니다; 셋째, 이메일이 데이터 유출에 포함되었는지 정기적으로 확인합니다(Have I Been Pwned 등 서비스를 통해); 넷째, 피싱 이메일과 위장 웹사이트에 주의합니다. 이들은 비밀번호를 훔치는 가장 일반적인 방법입니다; 다섯째, 중요한 계정(이메일, 인터넷 뱅킹, 암호화폐 지갑)에 추가적인 강력한 보호를 사용하고 공용 WiFi에서 민감한 계정에 로그인하는 것을 피합니다; 여섯째, 비밀번호 보안은 시스템 공학이며 강력한 비밀번호는 첫 번째 방어선일 뿐입니다.

사용 사례

  • 새 웹사이트 계정 등록 전에 비밀번호 강도를 검사하여 약한 비밀번호 사용으로 인한 계정 도용을 피합니다
  • 정기적인 비밀번호 변경 시 새 비밀번호의 보안성을 평가하여 새 비밀번호가 이전 비밀번호보다 강력한지 확인합니다
  • 기업 IT 부서가 팀 비밀번호 정책을 제정할 때 비밀번호 복잡도 요구 사항의 참고 검사 도구로 사용합니다
  • 사용자 등록/비밀번호 변경 기능 개발 시 검사 기준을 참고하여 프론트엔드 비밀번호 강도 프롬프트를 설계합니다
  • 계정 보안 사고 조사 시 기존 비밀번호가 일반적인 약한 비밀번호인지, 크래킹 시간이 너무 짧지 않은지 검사합니다
  • 보안 등급이 다른 계정에 해당 강도의 비밀번호를 생성합니다——이메일/인터넷 뱅킹에는 매우 강력한 비밀번호, 포럼에는 중간 정도 비밀번호
  • 비기술자에게 '길어 보이는' 비밀번호(password123 등)가 실제로는 안전하지 않은 이유를 설명하고 크래킹 시간으로 위험을 시각적으로 보여줍니다
  • 비밀번호 관리자가 비밀번호를 생성한 후 엔트로피 값과 강도 등급이 기준을 충족하는지 이차 검증합니다
  • 비밀번호 보안 지식을 학습할 때 문자 조합을 조정하여 엔트로피와 크래킹 시간의 변화 관계를 관찰합니다
  • 다른 비밀번호 정책의 효과를 비교합니다——8자리 순수 숫자 vs 8자리 혼합 문자 vs 16자리 혼합 문자의 크래킹 시간 차이
  • 보안 교육 시연에서 약한 비밀번호의 취약성을 보여주고 일반적인 비밀번호를 입력하여 즉시 크래킹되는 위험을 보여줍니다
  • Wi-Fi 비밀번호, 데이터베이스 비밀번호, 암호화 키 등 높은 보안 시나리오를 설정할 때 비밀번호가 ★★★★ 등급 이상에 도달하는지 확인합니다

이용 방법

  1. 검사할 비밀번호를 비밀번호 입력 상자에 입력합니다. 눈 아이콘을 클릭하면 평문/암호문 표시를 전환하여 확인할 수 있습니다
  2. 도구는 비밀번호를 실시간으로 분석하여 5단계 별점 강도 평가, Shannon 엔트로피(bits), 세 가지 시나리오에서의 크래킹 시간을 표시합니다
  3. 문자 집합 검사 테이블을 보고 7가지 보안 지표(길이, 대소문자, 숫자, 특수문자, 반복 없음, 일반적인 비밀번호 아님)가 통과했는지 확인합니다
  4. 개선 제안 영역의 프롬프트에 따라 비밀번호를 최적화합니다——길이를 늘리거나, 부족한 문자 유형을 보충하거나, 일반적인 비밀번호를 피하는 등
  5. 강력한 비밀번호를 생성해야 하는 경우 길이(8-64자)와 문자 유형 옵션을 설정하고 생성 버튼을 클릭하여 암호학적으로 안전한 랜덤 비밀번호를 얻습니다

주요 기능

  • Shannon Entropy 알고리즘: 비밀번호 문자 집합 크기와 길이를 기반으로 Shannon 엔트로피 값(bits)을 계산하여 단순한 규칙 기반 점수 매기기가 아닌 비밀번호의 무작위성 강도를 과학적으로 정량화합니다
  • 5단계 별점 강도 평가: ☆☆☆☆☆(매우 약함)부터 ★★★★★(매우 강함)까지 5단계. 엔트로피 범위(<30/30-45/45-60/60-80/>80 bits)와 보안 검사 결과를 종합하여 판정합니다
  • 세 가지 시나리오 크래킹 시간 추정: 일반 PC(초당 10억 회), 슈퍼컴퓨터(초당 1000조 회), 온라인 속도 제한 공격(초당 100회)의 세 가지 시나리오에서 Brute-force Attack 크래킹 시간을 추정하며 밀리초부터 수조 년까지의 시간 범위를 커버합니다
  • 7가지 보안 지표 항목별 검사: 비밀번호가 8자 이상, 대문자 포함, 소문자 포함, 숫자 포함, 특수문자 포함, 연속된 반복 문자 없음(aaa/111 등), 연속된 숫자 시퀀스 없음(123/456 등), 일반적인 약한 비밀번호 목록에 없음을 자동으로 감지합니다
  • 일반적인 약한 비밀번호 데이터베이스 감지: 일반적인 약한 비밀번호 목록을 내장하여 123456, password, qwerty 등 대표적인 약한 비밀번호를 입력하면 즉시 빨간색 경고를 표시합니다. 이러한 비밀번호는 Rainbow Table 공격으로 순식간에 크래킹됩니다
  • 동적 개선 제안: 검사 결과를 기반으로 실시간으로 개인 맞춤형 개선 제안을 제공합니다——대문자가 부족하면 대문자 추가를 촉구하고, 길이가 부족하면 길이를 늘릴 것을 제안하며, 일반적인 비밀번호와 일치하면 변경을 촉구하여 사용자가 비밀번호 강도를 향상시키도록 정확하게 안내합니다
  • 안전한 비밀번호 생성기 내장: 브라우저의 crypto.getRandomValues() 암호학적 안전 난수를 사용하여 비밀번호를 생성합니다. 길이는 8-64자로 조정 가능하며, 대문자, 소문자, 숫자, 특수문자(!@#$%^&*-_+=?) 포함 여부를 자유롭게 선택할 수 있습니다
  • 비밀번호 표시/숨김 전환: 한 번의 클릭으로 평문/암호문 표시를 전환하여 입력 내용을 쉽게 확인할 수 있어 문자 오인으로 인한 비밀번호 설정 오류를 피할 수 있습니다
  • 실시간 문자 카운트: 입력 상자 아래에 현재 비밀번호 문자 수를 실시간으로 표시하여 길이가 기준을 충족하는지 쉽게 평가할 수 있습니다
  • 지연 없는 즉각적인 분석: 비밀번호 입력 시 즉시 분석하며, 버튼을 클릭할 필요 없이 수정하면 즉시 강도 변화가 피드백됩니다
  • 검사 결과 한 번 클릭 복사: 강도 등급, 엔트로피 값, 세 가지 크래킹 시간의 완전한 요약 텍스트를 한 번 클릭으로 복사할 수 있어 기록하거나 공유하기 편리합니다
  • 국제화된 숫자 형식: 크래킹 시간 숫자는 사용자의 언어 환경에 따라 자동으로 현지화되어 형식이 지정됩니다(천 단위 구분 기호 등)
  • 지우기 기능: 한 번의 클릭으로 입력 상자를 지우고 다시 검사할 수 있어 조작이 간편합니다
  • 순수 브라우저 로컬 처리: 비밀번호 분석과 생성은 브라우저 JavaScript에서 완료되며, 입력된 비밀번호가 네트워크를 통해 어떤 서버로도 전송되지 않아 비밀번호 보안이 보장됩니다

자주 묻는 질문

비밀번호 강도 검사의 원리는 무엇인가요? Shannon 엔트로피는 어떻게 계산되나요?

이 도구는 Claude Shannon가 제안한 정보 엔트로피 이론을 기반으로 비밀번호 강도를 정량화합니다. 엔트로피 계산 공식은 다음과 같습니다: 엔트로피 = 비밀번호 길이 × log₂(문자 풀 크기). 문자 풀 크기는 비밀번호에 사용된 문자 종류에 따라 누적됩니다: 소문자 26개, 대문자 26개, 숫자 10개, 특수문자 33개(!@#$%^&*-_+=? 등). 예를 들어 소문자만 사용한 8자 비밀번호의 경우 문자 풀=26, 엔트로피=8×log₂(26)≈37.6 bits; 네 가지 문자를 모두 사용한 16자 비밀번호의 경우 문자 풀=95, 엔트로피=16×log₂(95)≈105 bits입니다. 엔트로피 값이 높을수록 Brute-force Attack에서 시도해야 할 조합 수가 많아져 비밀번호가 더 안전합니다.

왜 123456, password 같은 비밀번호는 긴데도 매우 약하다고 평가되나요?

비밀번호 강도는 길이뿐만 아니라 무작위성과 예측 불가능성에 더 의존하기 때문입니다. 123456은 6자이지만 가장 일반적인 비밀번호 중 하나이며 모든 Rainbow Table과 비밀번호 사전에 존재합니다. 해커는 크래킹할 때 이러한 고빈도 비밀번호를 우선적으로 시도하므로 실제로는 몇 초 내에 추측할 수 있습니다. 이 도구에는 일반적인 약한 비밀번호 데이터베이스가 내장되어 있어 비밀번호가 일반적인 비밀번호 목록에 있음이 감지되면 길이에 관계없이 직접 매우 약함(☆☆☆☆☆)으로 판정합니다. 유사한 약한 비밀번호에는 다음이 포함됩니다: qwerty, abc123, admin, letmein, welcome, monkey, dragon 등.

크래킹 시간 추정의 세 가지 시나리오 차이는 무엇인가요?

세 가지 시나리오는 공격 능력에 따른 크래킹 속도를 시뮬레이션합니다: 1) 온라인 속도 제한 공격(초당 100회): 웹사이트 로그인 인터페이스를 시뮬레이션하며 서버는 보통 시도 빈도를 제한합니다(예: 계정당 초당 최대 몇 회, 5회 실패 시 잠금). 이는 가장 일반적인 원격 공격 시나리오이며 속도가 가장 느립니다; 2) 일반 PC 오프라인 공격(초당 10억 회): 공격자가 비밀번호 해시 값을 얻은 후 로컬에서 그래픽 카드를 사용하여 Brute-force Attack을 수행합니다. 현대 GPU는 초당 수십억 회 시도할 수 있습니다; 3) 슈퍼컴퓨터/분산 공격(초당 1000조 회): 국가 수준의 공격자 또는 대규모 봇넷으로 매우 강력한 병렬 계산 능력을 가지고 있습니다. 당신의 비밀번호는 슈퍼컴퓨터 시나리오에서도 충분한 시간 동안 저항해야 진정으로 안전하다고 간주됩니다.

몇 자리 비밀번호가 안전한가요? 권장되는 비밀번호 정책은 무엇인가요?

보안 등급은 시나리오에 따라 다릅니다: 1) 일반 포럼/중요하지 않은 계정: ≥12자 혼합 문자, 엔트로피 ≥60 bits(★★★☆☆), 슈퍼컴퓨터에서 수년 걸림; 2) 이메일/소셜 계정: ≥14자 혼합 문자, 엔트로피 ≥80 bits(★★★★☆); 3) 인터넷 뱅킹/암호화폐 지갑/관리자 계정: ≥16자 전체 문자 유형, 엔트로피 ≥100 bits(★★★★★), 슈퍼컴퓨터 크래킹에 수조 년 이상 걸림. 일반적인 권장 사항: 비밀번호 관리자를 사용하여 대문자+소문자+숫자+특수문자를 포함하는 16자 이상의 랜덤 비밀번호를 생성하고, 웹사이트마다 고유한 비밀번호를 사용하며, 이중 인증(2FA)을 활성화합니다.

대문자+소문자+숫자+특수문자가 있는데도 여전히 충분히 강하지 않다고 표시되는 이유는 무엇인가요?

몇 가지 이유가 있을 수 있습니다: 1) 길이가 부족함——네 가지 문자가 모두 있더라도 8자뿐이면 엔트로피 값이 약 52 bits로 슈퍼컴퓨터에서도 비교적 빨리 크래킹될 수 있습니다; 2) 반복 패턴이 있음——AAAbbb123!!!처럼 연속된 반복 문자가 포함되어 있으면 도구가 이를 감지하여 감점합니다; 3) 연속된 숫자가 있음——abc123!의 123은 연속 시퀀스입니다; 4) 전체 구조에 규칙성이 있음——Password1!은 네 가지 문자 요구 사항을 충족하지만 Password는 흔한 단어에 첫 글자 대문자와 숫자/기호 접미사가 붙은 것으로 Dictionary Attack에 쉽게 히트됩니다. 길이는 최소 12자 이상으로 하고 문자 배열을 가능한 한 무작위로 만드는 것을 권장합니다.

입력한 비밀번호가 서버에 업로드되나요? 안전한가요?

전혀 그렇지 않습니다. 이 도구의 모든 비밀번호 분석 계산은 브라우저의 JavaScript에서 로컬로 완료되며, 비밀번호를 입력한 후 네트워크를 통해 외부 서버로 전송되지 않습니다. 페이지는 브라우저 측의 crypto.getRandomValues() API를 사용하여 랜덤 비밀번호를 생성합니다(이는 브라우저가 제공하는 암호학적 안전 난수 인터페이스입니다). 서버에 의존하지 않습니다. 오프라인 상태에서 이 도구를 사용할 수 있으며 기능은 완전히 정상 작동합니다. 페이지를 닫거나 새로 고치면 입력한 비밀번호는 자동으로 지워지며 브라우저에 영구적으로 저장되지 않습니다.

왜 비밀번호가 무작위로 보이는데도 일반적인 비밀번호 데이터베이스에 없다고 검사 결과에 표시되나요? 이것은 어떻게 판단되나요?

도구에는 역사적 데이터 유출에서 가장 빈도가 높은 수천 개의 비밀번호(rockyou 등 유출 사건에서 통계된 고빈도 비밀번호 등)를 포함하는 일반적인 약한 비밀번호 데이터 세트(commonPasswords)가 내장되어 있습니다. 당신의 비밀번호가 이 목록에 없다면 널리 사용되는 약한 비밀번호가 아니라는 의미입니다. 그러나 주의할 점: 일반적인 비밀번호 데이터베이스에 없다고 해서 절대적으로 안전한 것은 아닙니다——비밀번호에 개인 정보(이름 병음, 생일, 전화번호), 키보드 경로(asdfgh) 또는 의미 있는 단어 조합이 포함되어 있으면 표적 Dictionary Attack으로 크래킹될 수 있습니다. 가장 안전한 비밀번호는 완전히 무작위로 생성된 문자 시퀀스입니다.

비밀번호 생성기가 사용하는 난수는 안전한가요?

안전합니다. 비밀번호 생성기는 브라우저가 제공하는 crypto.getRandomValues() 인터페이스를 사용합니다. 이는 Web Cryptography API가 제공하는 Cryptographically Secure Pseudo-Random Number Generator(CSPRNG)로, 난수 품질이 Math.random()보다 훨씬 우수합니다. crypto.getRandomValues()의 난수 엔트로피는 운영 체제의 엔트로피 풀(키보드 타이핑 간격, 마우스 움직임, 디스크 IO 시간 등 물리적 무작위 소스)에서 유래하여 예측 불가능하고 재현 불가능하며 비밀번호, 키 등 보안에 민감한 데이터 생성에 적합합니다. 생성된 비밀번호 문자는 선택한 문자 집합에서 균일하게 무작위로 추출됩니다.

왜 같은 비밀번호인데 도구마다 강도 평가가 다를 수 있나요?

비밀번호 강도 검사 도구마다 사용하는 알고리즘과 임계값이 다르므로 평가 결과가 다를 수 있습니다. 일반적인 차이점은 다음과 같습니다: 1) 엔트로피 계산 방식이 다름——일부 도구는 문자 클래스 수로 단순 계산하고 다른 도구는 더 정밀한 패턴 분석을 수행합니다; 2) 일반적인 비밀번호 데이터베이스 크기가 다름——데이터베이스가 완전할수록 더 많은 약한 비밀번호를 식별할 수 있습니다; 3) 강도 등급 임계값이 다름——몇 비트를 '강함'으로 간주할지에 대한 통일된 표준이 없습니다; 4) 키보드 패턴(qwerty, qazwsx), 날짜 형식, 반복 문자 등 패턴을 감지하는지 여부. 이 도구는 Shannon 엔트로피 + 7가지 규칙 검사의 조합 방식을 채택하고 일반적인 약한 비밀번호에 대한 전문적인 감지를 수행하며, 평가는 업계 표준(NIST, OWASP 권장 사항)을 참고합니다.

특수문자에는 무엇이 포함되나요? 왜 더 많은 특수문자를 지원하지 않나요?

이 도구의 특수문자 집합은 !@#$%^&*-_+=?(총 14개)이며 비밀번호 생성기도 이 문자 집합을 사용합니다. 이는 많은 웹사이트가 비밀번호에 허용하는 특수문자에 제한을 두기 때문입니다——예를 들어 작은따옴표, 큰따옴표, 백슬래시, 공백, 꺾쇠괄호 등은 SQL, HTML, 명령줄에서 특별한 의미를 가지므로 인젝션 문제를 일으키거나 웹사이트에 의해 거부될 수 있습니다. 가장 일반적으로 사용되고 널리 수용되는 특수문자를 선택하면 생성된 비밀번호가 대부분의 웹사이트에서 사용 가능하도록 보장할 수 있습니다. 수동으로 비밀번호를 입력할 때 다른 특수문자(%, ~, |, {}[] 등)를 사용하더라도 도구는 이를 특수문자로 인식하고 문자 풀에 카운트합니다.

정기적인 비밀번호 변경은 보안을 향상시키나요?

NIST(미국 국립표준기술연구소)의 SP 800-63B 최신 가이드라인에 따르면, 정기적인 강제 비밀번호 변경(예: 90일마다)의 보안상 이점은 제한적이며 오히려 사용자가 약한 비밀번호를 선택하거나 이전 비밀번호를 기반으로 미세한 변경(password1→password2 등)을 하게 만들 수 있습니다. 더 나은 전략은: 1) 충분히 강력한 긴 랜덤 비밀번호를 사용합니다(16자 이상); 2) 계정마다 고유한 비밀번호를 사용합니다(비밀번호 관리자로 관리); 3) 이중 인증(2FA)을 활성화합니다; 4) 데이터 유출 사실을 알게 된 경우 즉시 관련 비밀번호를 변경합니다; 5) 비정상적인 로그인을 발견한 경우 즉시 비밀번호를 변경합니다. 이 도구는 기존 비밀번호 강도를 업그레이드해야 하는지 판단하는 데 도움을 줄 수 있습니다.

비밀번호 관리자가 생성한 비밀번호를 이 도구로 검사해야 하나요?

일반적으로 필요하지 않습니다. 주류 비밀번호 관리자(1Password, Bitwarden, KeePass, LastPass 등)가 생성하는 비밀번호는 기본적으로 암호학적 안전 난수와 전체 문자 집합을 사용하며 일반적으로 길이가 12-20자 이상이고 강도는 보통 ★★★★ 이상입니다. 그러나 비밀번호 관리자의 생성 규칙을 사용자 정의한 경우(특수문자 제외, 길이 단축 등) 이 도구를 사용하여 엔트로피와 크래킹 시간이 보안 요구 사항을 충족하는지 검증할 수 있습니다. 또한 비밀번호 관리자의 난수 구현이 신뢰할 수 있는지 확실하지 않은 경우 이차 검증도 좋은 습관입니다.

왜 연속된 숫자나 연속된 반복 문자는 비밀번호 보안을 저하시키나요?

Brute-force 도구와 Dictionary Attack은 일반적인 비밀번호를 시도할 뿐만 아니라 일반적인 패턴을 대상으로 후보 비밀번호를 생성하기 때문입니다. 연속된 숫자(123, 456, 789, 012)와 연속된 반복 문자(aaa, 111, !!!)는 매우 고빈도 패턴으로 많은 비밀번호에 나타납니다. 비밀번호 크래킹 도구의 규칙 엔진은 이러한 변형(단어 뒤에 123, !!!, 2024 등 연도 숫자를 추가하는 등)을 특별히 생성합니다. 이러한 패턴을 포함하는 비밀번호는 사실상 유효 엔트로피를 감소시킵니다——공격자는 모든 조합을 무차별 대입할 필요 없이 일반적인 패턴을 시도하는 것만으로 히트할 수 있습니다.

한국어 비밀번호나 전각 문자 비밀번호는 안전한가요?

대부분의 웹사이트와 시스템은 인코딩 처리에서 호환성 문제가 발생하기 쉽기 때문에 한국어나 전각 문자를 비밀번호로 지원하지 않습니다. 이 도구는 영숫자가 아닌 문자를 모두 특수문자로 간주하지만, 실제로 한국어 비밀번호를 사용하면 로그인 불가, 크로스 플랫폼에서의 문자 깨짐 등의 문제가 발생할 수 있습니다. ASCII 문자 집합(영문 대소문자, 숫자, 반각 기호)으로 구성된 비밀번호를 사용하는 것을 권장합니다. 이것이 호환성이 가장 좋은 솔루션입니다. 시스템이 Unicode 비밀번호를 지원하는 경우(일부 Linux 시스템 등) Unicode 비밀번호는 문자 풀이 더 크지만 모든 터미널에서 올바르게 입력할 수 있는지 확인해야 합니다.

Rainbow Table 공격이 무엇인가요? Brute-force와의 차이는 무엇인가요?

Brute-force Attack은 가능한 모든 문자 조합을 하나씩 시도합니다; 반면 Rainbow Table 공격은 일반적인 비밀번호와 그 해시 값의 대조표(Rainbow Table)를 미리 계산하여 공격 시 매번 계산하는 대신 직접 테이블을 조회하므로 속도가 매우 빠릅니다. 사용자가 일반적인 비밀번호를 사용하는 경우 해시 알고리즘이 강력하더라도(SHA-256 등) 공격자는 Rainbow Table을 통해 몇 초 내에 원래 비밀번호를 역방향 조회할 수 있습니다. Rainbow Table 공격을 방지하는 방법에는 다음이 포함됩니다: 1) 충분히 무작위적인 긴 비밀번호를 사용합니다(Rainbow Table 커버리지 범위 밖); 2) 시스템이 솔트된 해시(bcrypt, scrypt, Argon2 등)를 사용하여 미리 계산된 Rainbow Table을 무효화합니다. 이 도구의 일반적인 비밀번호 데이터베이스 감지는 사용자가 이미 Rainbow Table에 커버된 비밀번호를 선택하는 것을 피하도록 도와줍니다.

문제 해결

비밀번호를 입력해도 분석 결과가 표시되지 않는 이유는 무엇인가요?

분석 결과는 비밀번호 입력 후 실시간으로 표시됩니다. 비밀번호를 입력해도 결과 영역이 보이지 않으면 다음을 확인하십시오: 1) 비밀번호를 입력했는지(빈 입력 상자는 결과를 표시하지 않습니다); 2) 페이지가 완전히 로드되었는지(JavaScript가 활성화되고 오류가 없음). 그래도 응답하지 않으면 페이지를 새로 고쳐 보십시오. 비밀번호 분석은 로컬 브라우저에서 완전히 실행되며 네트워크 요청에 의존하지 않습니다. 새로 고쳐도 입력은 손실되지 않지만 내용은 지워집니다.

비밀번호 생성 버튼을 클릭해도 반응이 없어요?

비밀번호 생성 버튼은 최소한 하나의 문자 유형을 선택해야 합니다(대문자/소문자/숫자/기호 중 적어도 하나). 모든 옵션이 선택 해제되어 있으면 비밀번호를 생성할 수 없으며 기본적으로 소문자+숫자가 대체로 사용됩니다. 가장 강력한 비밀번호를 생성하려면 대문자, 소문자, 숫자, 기호 네 가지 옵션을 모두 선택한 상태로 유지하는 것을 권장합니다. 길이 슬라이더 범위는 8-64자입니다. 생성된 비밀번호는 자동으로 입력 상자에 입력되고 즉시 분석됩니다.

비밀번호 표시/숨김 버튼이 작동하지 않아요?

눈 아이콘 버튼은 비밀번호 입력 상자의 type 속성을 password와 text 사이에서 전환합니다. 클릭해도 전환되지 않으면 브라우저 JavaScript 예외일 수 있으니 페이지를 새로 고쳐 보십시오. 주의: password 모드에서 입력한 문자는 점(•••)으로 표시되고 text 모드에서는 평문이 표시됩니다. 공공장소나 화면 녹화 시에는 password 모드를 사용하는 것을 권장합니다.

내 비밀번호는 분명히 복잡한데 평가가 높지 않은 이유는 무엇인가요?

다음 일반적인 문제를 확인하십시오: 1) 길이가 부족한가? 12자 미만은 전체 문자 혼합이더라도 슈퍼컴퓨터에서 비교적 빨리 크래킹될 수 있으니 최소 14자를 권장합니다; 2) 반복 시퀀스가 포함되어 있나? AAA111!!!처럼 연속된 반복 문자를 포함함; 3) 흔한 단어에 접미사가 붙은 것 뿐인가? Password123!이나 Qwerty@2024는 네 가지 문자를 만족하지만 핵심이 흔한 단어+규칙적 접미사임; 4) 키보드 경로인가? Qazwsx123!은 키보드 상의 Z자 경로이며 이러한 패턴은 크래킹 도구에 의해 우선적으로 시도됩니다. 비밀번호 생성기를 사용하여 완전히 무작위인 비밀번호를 생성하는 것을 권장합니다.

용어집

Shannon Entropy(섀넌 엔트로피)
Claude Shannon가 제안한 정보 이론 개념으로 비밀번호의 무작위성 강도를 측정하는 데 사용되며 단위는 비트(bit)입니다. 엔트로피 = 비밀번호 길이 × log₂(문자 풀 크기). 엔트로피 값이 높을수록 Brute-force 공격에 필요한 조합 수가 많아집니다.
Character Pool(문자 풀)
비밀번호에 사용되는 모든 가능한 문자의 집합 크기. 소문자 26개, 대문자 26개, 숫자 10개, 특수문자 약 33개. 사용하는 문자 유형이 많을수록 문자 풀이 커지고 문자 하나를 추가할 때마다 엔트로피 이득이 커집니다.
Brute-force Attack(무차별 대입 공격)
가능한 모든 문자 조합을 체계적으로 시도하여 비밀번호를 추측하는 공격 방법. 크래킹 시간은 비밀번호 엔트로피와 공격자의 계산 능력에 의존하며, 높은 엔트로피 비밀번호는 Brute-force를 계산상 실행 불가능하게 만들 수 있습니다.
Dictionary Attack(사전 공격)
일반적인 비밀번호, 유출된 비밀번호, 단어, 일반적인 패턴을 포함하는 사전 컴파일된 목록을 사용하여 비밀번호 추측을 수행하는 공격 방법으로 순수 Brute-force보다 훨씬 효율적이며 현실에서 가장 일반적인 비밀번호 공격 수단입니다.
Rainbow Table(레인보우 테이블)
해시 값을 얻은 후 원래 비밀번호를 빠르게 역방향 조회하는 데 사용되는 미리 계산된 비밀번호 해시 값 대조표. 솔트된 해시(salted hash)와 느린 해시 알고리즘(bcrypt/Argon2)을 사용하면 Rainbow Table 공격을 효과적으로 방어할 수 있습니다.
CSPRNG(암호학적 안전 의사 난수 생성기)
Cryptographically Secure Pseudo-Random Number Generator, 예측 불가능하고 재현 불가능한 난수를 출력하는 난수 생성기. 이 도구는 브라우저의 crypto.getRandomValues() CSPRNG 인터페이스를 사용하여 비밀번호를 생성합니다.
Common Password(일반적인 약한 비밀번호)
여러 데이터 유출 사고에서 고빈도로 나타나는 비밀번호(123456, password, qwerty, admin 등). 이러한 비밀번호는 모든 크래킹 사전에 존재하며 완전히 사용을 피해야 합니다.
2FA/MFA(이중/다중 인증)
Two-Factor/Multi-Factor Authentication, 비밀번호 외에 두 번째 검증 요소(휴대폰 인증 코드, TOTP, 하드웨어 보안 키 등)를 필요로 하여 비밀번호가 유출되더라도 계정 보안을 보호합니다.
Passphrase(패스프레이즈)
여러 개의 무작위 단어로 구성된 긴 비밀번호로 무작위 문자열보다 기억하기 쉬우면서 단어 수로 높은 엔트로피를 얻습니다. 예를 들어 'correct horse battery staple' 스타일의 4단어 무작위 조합.
Password Hash(비밀번호 해시)
단방향 해시 함수를 사용하여 비밀번호를 비가역적인 고정 길이 문자열로 변환하여 저장합니다. 검증 시 평문이 아닌 해시 값을 비교하여 데이터베이스가 유출되더라도 비밀번호를 직접 노출시키지 않습니다. bcrypt/Argon2 등 느린 해시 알고리즘을 사용해야 합니다.
Salt(솔트)
해시 계산 전에 비밀번호에 추가되는 무작위 문자열로 동일한 비밀번호라도 다른 해시 값을 생성하게 하여 Rainbow Table 공격과 일괄 크래킹을 방지합니다. 각 비밀번호에는 고유한 솔트 값이 있어야 합니다.
crypto.getRandomValues()
Web Cryptography API가 제공하는 암호학적 안전 난수 생성 인터페이스로 브라우저에 의해 구현되며 난수 소스는 운영 체제 엔트로피 풀에서 유래하고 Math.random()보다 훨씬 우수하며 비밀번호와 키 생성에 적합합니다.

비밀번호 엔트로피와 크래킹 시간 참고

슈퍼컴퓨터 공격 시나리오(초당 1000조 회)에서 다른 엔트로피 값을 가진 비밀번호의 크래킹 난이도 참고:

엔트로피(bits)대표적인 조합PC 크래킹 시간슈퍼컴퓨터 시간강도 평가
< 306자리 순수 숫자, 일반적인 단어< 1초순식간☆☆☆☆☆ 매우 약함
30-458자 순수 소문자수초-수시간< 1초★☆☆☆☆ 약함
45-608자 대문자+소문자+숫자수일-수년수초-수분★★☆☆☆ 보통
60-8010자 전체 문자 혼합수십년-수천년수시간-수일★★★☆☆ 양호
80-10014자 전체 문자 혼합수백년 이상수년-수백년★★★★☆ 강함
> 10016자 전체 문자 무작위실행 불가능수조년 이상★★★★★ 매우 강함

다른 문자 유형 조합의 엔트로피 비교

12자 비밀번호에 다른 문자 조합을 사용했을 때의 이론적 엔트로피와 보안성 차이:

문자 조합문자 풀12자 엔트로피조합 수 규모보안 평가
순수 숫자(0-9)10~40 bits10¹²매우 약함, 초 단위 크래킹
순수 소문자26~56 bits10¹⁷약함, 분 단위 크래킹
대문자+소문자52~68 bits10²⁰보통, 시간 단위 크래킹
대문자+소문자+숫자62~71 bits10²¹양호, 일 단위 크래킹
대문자+소문자+숫자+기호95~79 bits10²³강함, 년 단위 크래킹
전체 문자 16자 무작위95~105 bits10³¹매우 강함, Brute-force 불가

7가지 보안 검사 지표 설명

도구가 항목별로 검사하는 7가지 비밀번호 보안 지표:

검사 항목통과 기준불통과 위험
길이≥8자비밀번호가 최소 8자너무 짧은 비밀번호는 Brute-force 공간이 작음
대문자 포함A-Z를 최소 하나 포함문자 풀이 26 감소, 엔트로피 저하
소문자 포함a-z를 최소 하나 포함문자 풀이 26 감소, 엔트로피 저하
숫자 포함0-9를 최소 하나 포함문자 풀이 10 감소, 엔트로피 저하
특수문자 포함영숫자 외 기호 포함문자 풀이 약 33 감소, 엔트로피 저하
반복/연속 패턴 없음3개 이상 동일 문자 또는 연속 숫자 없음패턴화된 비밀번호는 규칙 공격에 히트되기 쉬움
일반 비밀번호 DB에 없음알려진 약한 비밀번호 목록에 없음일반 비밀번호는 사전에서 초 단위 크래킹

Privacy & Security

이 비밀번호 강도 검사기의 모든 작업은 브라우저에서 완전히 로컬로 완료됩니다: 입력한 비밀번호는 브라우저 JavaScript에서 엔트로피 계산과 보안 분석에만 사용되며 네트워크를 통해 어떤 외부 서버로도 전송되지 않습니다. 비밀번호 생성기는 브라우저에 내장된 crypto.getRandomValues() 인터페이스를 사용하여 로컬에서 랜덤 비밀번호를 생성하며 서버에 의존하지 않습니다. 페이지는 Cookie 추적을 사용하지 않으며 사용자가 입력한 비밀번호나 어떤 사용 데이터도 수집하지 않습니다. 페이지를 닫거나 새로 고치면 입력한 비밀번호와 분석 결과는 자동으로 지워지며 브라우저에 영구적으로 저장되지 않습니다. 오프라인 상태에서 이 도구를 사용할 수 있으며 모든 기능이 완전히 이용 가능합니다.

Authoritative References