회원가입을 할 때마다 비밀번호를 새로 만들어야 한다. "영문 대소문자 + 숫자 + 특수문자 조합, 12자 이상"이라는 조건을 보면 막막하다. 결국 기존 비밀번호 뒤에 숫자만 바꿔서 쓰게 되는데, 보안상 거의 의미가 없다.
비밀번호가 뚫리는 가장 흔한 이유
비밀번호 해킹의 대부분은 "추측"으로 시작된다. 사전에 있는 단어, 생년월일, 전화번호, 이름 등 예측 가능한 패턴을 자동으로 대입하는 사전 공격(Dictionary Attack)이 가장 흔하다.
- qwerty123: 키보드 패턴 + 숫자 조합, 1초 만에 뚫림
- password1!: 흔한 단어 + 숫자 + 특수문자를 넣어도 뚫림
- kim1990!: 이름 + 생년 + 특수문자, 쉽게 추측 가능
조건을 형식적으로 충족하는 것과 실제로 안전한 것은 다르다. 진짜 안전한 비밀번호는 완전히 랜덤한 문자열이어야 한다.
안전한 비밀번호의 조건
- ✓ 12자 이상 (16자 이상이면 더 안전)
- ✓ 대문자 + 소문자 + 숫자 + 특수문자 조합
- ✓ 사전에 있는 단어가 포함되지 않을 것
- ✓ 사이트마다 전부 다른 비밀번호 사용
- ✗ 개인정보(이름, 생일, 전화번호) 포함 금지
- ✗ 키보드 패턴(qwerty, 1234) 금지
이 조건을 매번 머리로 만족시키기는 사실상 불가능하다. 16자짜리 랜덤 문자열을 즉석에서 만들어내는 사람은 없다.
비밀번호 생성기를 쓰는 게 빠른 이유
비밀번호 생성기는 암호학적으로 안전한 난수를 이용해서 완전히 랜덤한 비밀번호를 만들어준다. 사람이 "랜덤하게" 만든다고 생각하는 비밀번호보다 훨씬 예측 불가능하다.
비밀번호 자동 생성 도구에서는 길이(8~64자), 대소문자, 숫자, 특수문자 포함 여부를 체크박스로 선택하면 즉시 생성된다. 강도 표시까지 나오니까, "취약"으로 뜨면 옵션을 조정하면 된다.
비밀번호 길이에 따른 강도 차이
| 길이 | 조합 수 (대소문자+숫자+특수문자) | 무차별 대입 예상 시간 |
|---|---|---|
| 8자 | 약 6천조 조합 | 수 시간~수 일 |
| 12자 | 약 19해 조합 | 수백 년 |
| 16자 | 천문학적 조합 | 사실상 불가능 |
TIP 비밀번호는 길이가 가장 중요하다. 특수문자를 하나 추가하는 것보다 전체 길이를 4자 늘리는 게 보안에 훨씬 효과적이다.
생성한 비밀번호를 전부 기억할 필요는 없다. 브라우저 내장 비밀번호 관리자나 별도의 비밀번호 관리 앱에 저장하면 자동 입력까지 된다. 중요한 건 사이트마다 다른 비밀번호를 쓰는 것이다.