개인정보 유출 사고의 원인 중 상당수는 약한 비밀번호다. '123456', 'password', 'qwerty'는 매년 가장 많이 쓰이는 비밀번호 상위권에 오른다. 해커가 이런 비밀번호를 뚫는 데 걸리는 시간은 1초도 안 된다.
안전한 비밀번호의 조건
보안 전문가들이 공통으로 권고하는 기준은 명확하다.
- ✓ 최소 12자리 이상
- ✓ 대문자 + 소문자 + 숫자 + 특수문자 조합
- ✓ 사이트마다 서로 다른 비밀번호 사용
- ✓ 의미 없는 랜덤 문자열
- ✗ 생년월일, 전화번호, 이름 포함 금지
- ✗ 사전에 있는 단어 그대로 사용 금지
- ✗ 이전 비밀번호 재사용 금지
문제는 이 조건을 다 지키면서 사람이 직접 만들기가 어렵다는 점이다. 외울 수 있는 비밀번호를 만들려고 하면 패턴이 생기고, 패턴이 있으면 뚫리기 쉬워진다.
비밀번호 길이와 해킹 소요 시간
비밀번호가 길수록, 문자 종류가 많을수록 무차별 대입 공격(brute force)에 걸리는 시간이 급격히 늘어난다.
| 길이 | 숫자만 | 소문자만 | 대소문자+숫자+특수문자 |
|---|---|---|---|
| 6자리 | 즉시 | 즉시 | 수 초 |
| 8자리 | 즉시 | 수 분 | 수 시간 |
| 10자리 | 수 초 | 수 일 | 수 년 |
| 12자리 | 수 분 | 수 백 년 | 수 만 년 |
| 16자리 | 수 시간 | 수 억 년 | 사실상 불가 |
8자리 숫자 비밀번호는 최신 하드웨어로 1초 이내에 뚫린다. 12자리 이상, 4종류 문자 조합이면 현실적으로 해킹이 불가능한 수준이 된다.
사이트마다 다른 비밀번호 규칙
어떤 사이트는 특수문자 필수, 어떤 사이트는 8자 이상, 또 어떤 사이트는 16자까지만 허용한다. 규칙이 제각각이라 매번 새로 머리를 굴려야 한다. 이럴 때 랜덤 비밀번호 생성기를 쓰면 길이와 포함할 문자 유형만 선택하면 조건에 맞는 비밀번호가 바로 나온다.
- 슬라이더로 원하는 길이를 설정한다 (12자 이상 권장)
- 대문자, 소문자, 숫자, 특수문자 중 포함할 항목을 체크한다
- 생성 버튼을 누르면 즉시 랜덤 비밀번호가 출력된다
- 복사 버튼으로 클립보드에 저장한 뒤 사이트에 붙여넣는다
생성된 비밀번호는 서버에 전송되지 않고 브라우저 안에서만 처리된다. 암호학적 난수(crypto.getRandomValues)를 사용하기 때문에 패턴 없는 완전한 랜덤이 보장된다.
TIP 생성한 비밀번호는 반드시 비밀번호 관리자(1Password, Bitwarden 등)에 저장해두자. 랜덤 비밀번호는 외울 수 없으니 안전한 저장 수단이 필수다.
자주 묻는 질문
비밀번호를 주기적으로 바꿔야 하나요?
과거에는 3개월마다 변경을 권했지만, 최근 보안 지침(NIST)은 유출이 의심되지 않는 한 강제 변경을 권고하지 않는다. 강력한 비밀번호를 설정하고 유지하는 편이 자주 바꾸는 것보다 안전하다.
같은 비밀번호를 여러 사이트에 써도 되나요?
절대 안 된다. 한 사이트에서 유출되면 같은 비밀번호를 쓰는 모든 계정이 위험해진다. 이를 '크리덴셜 스터핑'이라고 하며, 실제로 가장 흔한 해킹 방식 중 하나다.
비밀번호에 한글을 넣어도 되나요?
일부 사이트에서는 한글 입력을 허용하지 않는다. 다만 허용하는 곳에서는 한글을 넣으면 해외 해커의 사전 공격에 상당히 강해진다. 자판 배열 기반 조합도 좋은 방법이다.
비밀번호 하나 뚫리면 줄줄이 엮인 계정이 전부 위험해진다. 사이트마다 다른 랜덤 비밀번호를 쓰고, 관리자에 저장하는 것이 지금 할 수 있는 가장 현실적인 방어다.