브라우저에서의 비밀번호 보안: 생성, 암호화, 해시, 테스트 — 서버 없이 모두 가능
브라우저 기반 비밀번호 및 암호화 도구 실용 가이드 — 강력한 비밀번호 생성, AES-256으로 텍스트 암호화, PBKDF2로 비밀번호 해시, 비밀번호 강도를 즉시 확인하세요.
개발자나 보안에 관심 있는 사용자라면 누구나 결국 같은 도구들이 필요해집니다: 강력한 비밀번호 생성, 민감한 텍스트 암호화, 저장을 위한 비밀번호 해시 생성, 또는 해시 일치 여부 확인. 예전에는 OpenSSL이나 전용 앱을 설치해야 했습니다. 오늘날 Web Crypto API는 브라우저 내에서 이 모든 작업을 수행할 만큼 강력합니다 — 서버 통신도, 기기 밖으로 데이터가 나가는 일도 전혀 없이요.
지금부터 핵심 도구들을 소개하고 각각을 효과적으로 사용하는 방법을 알아보겠습니다.
1. 비밀번호 생성기: 비밀번호를 올바르게 만드는 방법
사람은 무작위 비밀번호를 만드는 데 서툽니다. 우리는 무의식적으로 패턴을 사용합니다 — 사전 단어, 이름, 연도, qwerty123 같은 키보드 연속 입력. 진정한 무작위 비밀번호 생성기는 이 모든 것을 피합니다.
저희 비밀번호 생성기는 crypto.getRandomValues()를 사용합니다 — 모든 최신 브라우저에 내장된 암호학적으로 안전한 난수 생성기입니다. Math.random()과의 차이점:
Math.random()은 의사 난수 시퀀스 — 시드를 알면 예측 가능crypto.getRandomValues()는 OS 수준의 엔트로피를 활용 — 진정으로 예측 불가능
권장 설정:
| 사용 사례 | 길이 | 옵션 |
|---|---|---|
| 웹사이트 로그인 | 16자 이상 | 대문자, 소문자, 숫자, 특수문자 |
| 데이터베이스 비밀번호 | 24자 이상 | 모든 문자 세트 |
| 암호화 키 패스프레이즈 | 32자 이상 | 모든 문자 세트 |
| PIN (기기 잠금 해제) | 8자 이상 | 숫자만 |
피해야 할 것:
- 12자 미만의 비밀번호 (최신 GPU로 무차별 대입 가능)
- 특수문자만으로 구성된 비밀번호 (많은 서비스에서 거부됨)
- 이전에 어디서든 사용했던 비밀번호
2. 비밀번호 강도 검사기: 제출 전에 미리 확인하세요
비밀번호를 설정하기 전에, 또는 기존 비밀번호를 감사할 때 저희 비밀번호 강도 검사기를 통해 확인해보세요. 다음 항목을 평가합니다:
- 길이 점수 — 길수록 항상 유리
- 문자 세트 다양성 — 소문자, 대문자, 숫자, 특수문자
- 일반적인 패턴 — 사전 단어, 키보드 연속 입력, 반복 문자
- 엔트로피 비트 — 추측하기 얼마나 어려운지를 나타내는 수학적 척도
엔트로피 점수가 가장 정직한 측정 기준입니다. 128비트 엔트로피의 비밀번호는 현재 컴퓨팅 속도로 무차별 대입 공격을 시도해도 우주의 나이보다 더 긴 시간이 걸립니다.
"password" → 엔트로피: ~11비트 ❌ 최악
"P@ssw0rd" → 엔트로피: ~18비트 ❌ 여전히 최악 (패턴)
"correct-horse-bat" → 엔트로피: ~44비트 ⚠ 보통 (사전 단어)
"Kx9#mP2$vL7nQw" → 엔트로피: ~87비트 ✅ 강력
"mQ3$kX9#nP7&vL2@" → 엔트로피: ~104비트 ✅ 매우 강력
3. AES-256 암호화: 군사급 암호화로 텍스트를 보호하세요
비밀 메모를 저장하거나, 설정 값을 암호화하거나, 안전하지 않은 채널을 통해 민감한 텍스트를 전송해야 하나요? 저희 AES 암호화 / 복호화 도구는 AES-256-GCM을 사용합니다 — 은행, 정부, 종단간 암호화 메시지 앱에서 동일하게 사용하는 암호화 방식입니다.
AES-256-GCM 작동 방식 (간략히)
- 패스프레이즈를 PBKDF2를 통해 200,000회 반복 처리하여 256비트 키를 도출
- 암호화마다 무작위 **IV(초기화 벡터)**가 생성됨 — 동일한 평문도 매번 다르게 암호화되도록 보장
- 평문이 암호화되고 인증 태그가 생성됨 — 변조 감지에 사용
- 출력은 base64로 인코딩됨:
IV + 태그 + 암호문
평문: "API_KEY=sk_live_abc123"
패스프레이즈: "my-strong-passphrase"
↓
암호화: "a3Fm9K2...base64...Xp7nQ=="
보안 특성:
- ✅ 제로 지식 — 어떤 서버로도 전송되지 않음
- ✅ 인증된 암호화 — 암호문이 변조된 경우 복호화 실패
- ✅ 솔트 + IV 무작위화 — 동일한 입력도 매번 다른 출력 생성
- ✅ 200,000회 PBKDF2 반복 — 패스프레이즈 무차별 대입 공격에 강함
실제 활용 사례:
.env값을 메모 앱에 저장하기 전에 암호화- 이메일/Slack으로 동료에게 비밀번호 공유 (암호문은 해당 채널로 전송, 패스프레이즈는 다른 채널로 공유)
- 일기나 개인 메모 암호화
- 스프레드시트에 API 키를 암호화된 형태로 저장
4. 비밀번호 해시 생성기: 안전한 저장을 위한 PBKDF2
사용자 비밀번호를 저장하는 앱을 개발한다면, 절대로 평문 비밀번호나 MD5/SHA-1 같은 취약한 해시를 저장해서는 안 됩니다. 저희 비밀번호 해시 생성기는 PBKDF2-SHA256을 사용하여 안전한 비밀번호 해시를 생성합니다.
PBKDF2를 사용하는 이유 (MD5/SHA-256이 아닌)
| 해시 | 추측당 시간 (GPU) | 반복 횟수 | 평가 |
|---|---|---|---|
| MD5 | 0.001ms | 1 | ❌ 취약 |
| SHA-256 | 0.002ms | 1 | ❌ 너무 빠름 |
| PBKDF2-SHA256 | 200ms 이상 | 200,000 | ✅ 적절 |
| bcrypt (cost 12) | 300ms 이상 | 적응형 | ✅ 적절 |
비밀번호 해싱의 핵심 목적은 각 추측에 비용이 들도록 만드는 것입니다. 빠른 해시는 비밀번호 보안에 치명적입니다.
해시 형식 출력:
pbkdf2$200000$<salt>$<hash>
솔트는 해시마다 무작위로 생성되므로, 동일한 비밀번호도 매번 다른 해시를 생성합니다 — 레인보우 테이블 공격을 방지합니다.
5. TOTP / 2FA 생성기: 인증 코드 테스트
저희 TOTP / 2FA 생성기는 Google Authenticator, Authy, 그리고 RFC 6238 호환 인증 앱과 호환되는 시간 기반 일회용 비밀번호를 생성합니다. Base32 시크릿 키를 입력하면 카운트다운과 함께 현재 6자리 코드를 확인할 수 있습니다.
활용 사례:
- 서버의 TOTP 구현이 올바른 코드를 생성하는지 검증
- 사용자에게 배포하기 전 2FA 설정 테스트
- 이미 등록된 시크릿에 대한 코드 생성 (백업 방법으로 활용)
TOTP 코드는 30초마다 변경되고, 현재 UTC 시간에 연동되며, 시크릿 키 없이는 수학적으로 예측이 불가능합니다.
6. Diceware 패스프레이즈: 기억하기 쉽고 수학적으로 강력한
저희 Diceware 비밀번호 생성기는 EFF 단어 목록에서 패스프레이즈를 생성합니다 — 보안 연구자들이 마스터 비밀번호와 디스크 암호화 키에 사용하는 동일한 방식입니다.
예시: correct-horse-battery-staple-voyage
마스터 비밀번호에서 패스프레이즈가 무작위 문자 비밀번호보다 나은 이유:
| 비밀번호 | 엔트로피 | 기억 용이성 |
|---|---|---|
Kx9#mP2$ (8자) |
~52비트 | 매우 어려움 |
correct-horse-battery (3단어) |
~58비트 | 쉬움 |
correct-horse-battery-staple (4단어) |
~77비트 | 보통 |
correct-horse-battery-staple-voyage (5단어) |
~96비트 | 감당 가능 |
비밀번호 관리자 마스터 비밀번호 — 반드시 외워야 하고 절대 적어두지 말아야 하는 — 에는 5단어 diceware 패스프레이즈가 보안과 기억 용이성의 최적 균형을 제공합니다.
보안 체크리스트
인증 시스템을 배포하기 전에 다음을 확인하세요:
- ✅ 비밀번호 생성기로 비밀번호 생성 —
crypto.getRandomValues()사용 - ✅ 비밀번호 강도 검사기로 강도 확인 — 권한 있는 계정은 80비트 이상의 엔트로피를 목표로
- ✅ 저장된 비밀번호는 PBKDF2, bcrypt, 또는 Argon2로 해시 — 비밀번호 해시 생성기로 출력 형식 검증
- ✅ 저장된 민감한 값은 AES 암호화로 암호화 — AES-256-GCM 사용, AES-ECB 사용 금지
- ✅ 2FA를 활성화하고 TOTP 생성기로 코드 테스트
- ✅ 마스터 비밀번호에는 Diceware 생성기 사용 — 최소 5단어 이상
핵심 포인트: 이 목록의 모든 도구는 완전히 브라우저 내에서 실행됩니다. 비밀번호, 평문, 해시는 절대 기기 밖으로 나가지 않습니다. 이것은 단순한 기능이 아닙니다 — 보안 도구가 갖춰야 할 최소한의 기준입니다.