liminfo

Password Generator

강력한 비밀번호 생성기

비밀번호 강도매우 강함
엔트로피
103.4 bits
문자 풀 크기
88 문자
예상 해독 시간
사실상 불가능

* 10B guesses/sec (고성능 GPU 클러스터) 기준 추정치

Password Generator 소개

비밀번호 생성기는 브라우저의 네이티브 crypto.getRandomValues() API를 사용하여 암호학적으로 안전한 랜덤 비밀번호를 생성합니다. 시각적 비밀번호 강도 측정기가 엔트로피(비트), GPU 클러스터 공격 대비 예상 해독 시간, 색상 코드 강도 막대(빨강~초록)를 표시합니다. 기업 보안 정책 프리셋 — NIST SP 800-63B, 한국 금융권(KISA), 기업 보안 — 중에서 선택하거나 사용자 지정 규칙을 설정할 수 있습니다. 빠른 일괄 버튼으로 1~50개의 비밀번호를 한 번에 생성합니다.

강력하고 고유한 비밀번호는 무단 접근에 대한 첫 번째 방어선입니다. 비밀번호를 재사용하거나 예측 가능한 것을 선택하면 크리덴셜 스터핑, 사전 공격, 무차별 대입 공격에 취약해집니다. 이 생성기는 각 문자 위치를 CSPRNG를 사용하여 독립적으로 선택하여 문자당 최대 엔트로피를 보장합니다. 실시간 강도 분석으로 비밀번호 설정이 얼마나 안전한지 정확히 파악할 수 있습니다.

crypto.getRandomValues()를 사용합니다 — 브라우저가 TLS, WebAuthn 등에 사용하는 것과 동일한 CSPRNG입니다. 모든 비밀번호 생성과 강도 분석이 브라우저 내에서만 이루어집니다. 엔트로피 계산은 정보 이론 공식 H = L * log2(N)에 기반하며, L은 비밀번호 길이, N은 문자 풀 크기로 비밀번호의 무작위성을 정확하게 측정합니다.

주요 기능

  • 엔트로피 기반 색상 코드 강도 막대(빨강/주황/노랑/초록) 시각적 비밀번호 강도 측정기
  • 문자 풀 크기와 함께 비트 단위 실시간 엔트로피 계산
  • 10B guesses/sec(고성능 GPU 클러스터) 기준 예상 해독 시간 표시
  • 기업 보안 정책 프리셋: NIST SP 800-63B, 한국 금융권(KISA), 기업 보안, 사용자 지정
  • 프리셋 선택 시 비밀번호 길이 및 문자 집합 옵션 자동 설정
  • 빠른 버튼(1, 5, 10, 20, 50) + 최대 50개 사용자 지정 개수 일괄 생성
  • 각 생성된 비밀번호별 미니 강도 표시기로 엔트로피와 강도 수준 확인
  • 네이티브 crypto.getRandomValues() API를 통한 암호학적으로 안전한 난수
  • 슬라이더와 숫자 입력으로 4~128자 길이 설정
  • 4가지 문자 종류: 대문자(A-Z), 소문자(a-z), 숫자(0-9), 특수문자(!@#$%^&*...)
  • 각 비밀번호 개별 복사 버튼 + 전체 일괄 복사 기능
  • 100% 클라이언트 사이드 — 비밀번호가 서버에 전송되거나 저장되지 않음

자주 묻는 질문

비밀번호 강도 측정기는 어떻게 작동하나요?

강도 측정기는 H = L * log2(N) 공식으로 엔트로피를 계산합니다. L은 비밀번호 길이, N은 문자 풀 크기입니다. 비트 단위 결과는 비밀번호의 이론적 무작위성을 나타냅니다. 색상 코드 막대는 엔트로피를 5단계 강도로 매핑합니다: 매우 약함(<36비트), 약함(<60비트), 보통(<80비트), 강함(<100비트), 매우 강함(100+비트).

해독 시간은 어떻게 추정하나요?

초당 100억(10^10)회 추측이 가능한 고성능 GPU 클러스터를 가정합니다. 전체 키스페이스는 2^엔트로피이며, 평균적으로 공격자는 절반을 시도해야 합니다. 이는 보수적 추정치입니다 — 온라인 공격은 속도 제한으로 초당 수천 회로 제한되므로 대부분의 실제 시나리오에서 실제 시간은 훨씬 더 깁니다.

NIST SP 800-63B 프리셋이란?

NIST SP 800-63B는 미국 국립표준기술연구소(NIST)의 디지털 신원 가이드라인입니다. 최소 8자에 복잡성 요구사항이 없습니다(필수 대문자, 숫자, 특수문자 없음). NIST는 복잡성 요구사항이 예측 가능한 패턴("Password1!" 등)으로 이어진다는 것을 발견했으며, 길이가 비밀번호 강도의 주요 요소라고 합니다. 프리셋은 실용적 보안을 위해 대소문자 16자를 사용합니다.

한국 금융권(KISA) 프리셋이란?

한국 금융권 프리셋은 한국인터넷진흥원(KISA) 가이드라인을 따릅니다. 한국 은행 및 금융기관에서 사용됩니다. 최소 10자에 2종류 이상의 문자 유형이 필요합니다. 프리셋은 최소 요구사항을 충분히 초과하도록 4가지 문자 유형을 모두 활성화한 12자를 설정합니다.

비밀번호 길이는 얼마로 해야 하나요?

대부분의 용도에는 모든 문자 종류를 활성화한 16자가 훌륭한 보안을 제공합니다(약 105비트 엔트로피). 마스터 비밀번호, 암호화 키, API 시크릿 등 높은 보안이 필요한 경우 24~32자를 사용하세요. PIN 같은 사용 사례를 위해 최소 4자를 제공하지만, 일반 용도에는 12자 미만은 권장하지 않습니다.

생성된 비밀번호는 얼마나 안전한가요?

매우 안전합니다. crypto.getRandomValues()를 사용합니다 — TLS 암호화와 WebAuthn에 사용되는 것과 동일한 CSPRNG입니다. 기본 설정(16자, 모든 문자 종류)으로 약 105비트 엔트로피를 얻으며, 가장 강력한 GPU 클러스터로도 수십억 년이 걸립니다.

팀이나 여러 계정용 비밀번호를 생성할 수 있나요?

네. 빠른 일괄 버튼(1, 5, 10, 20, 50)을 사용하거나 최대 50개까지 사용자 지정 개수를 입력하세요. 각 비밀번호는 완전한 암호학적 무작위성으로 독립적으로 생성됩니다. 각 비밀번호에 미니 강도 표시기가 있으며, "전체 복사" 버튼으로 줄바꿈으로 구분된 모든 비밀번호를 복사할 수 있습니다.

생성된 비밀번호가 어딘가에 저장되나요?

아닙니다. 모든 비밀번호는 페이지가 열려 있는 동안만 브라우저 메모리에 존재합니다. 강도 분석도 완전히 클라이언트 사이드에서 수행됩니다. 서버에 전송되거나, 디스크에 기록되거나, 쿠키에 저장되지 않습니다. 페이지를 벗어나거나 탭을 닫으면 모든 것이 메모리에서 사라집니다.

Math.random()과 어떤 차이가 있나요?

Math.random()은 보안 목적에 적합하지 않습니다 — 관찰 가능한 비암호학적 PRNG를 사용합니다. crypto.getRandomValues()는 설계상 예측 불가능한 OS의 암호학적 난수 생성기를 사용합니다. 이 도구는 오직 crypto.getRandomValues()만 사용합니다.