새 사이트에 가입할 때마다 비밀번호를 뭘로 할지 고민이다. "영문 대소문자 + 숫자 + 특수문자, 8자 이상"이라는 조건을 충족시키면서도 기억할 수 있는 조합을 매번 만들어내는 건 쉽지 않다.
쉽게 뚫리는 비밀번호의 공통점
보안 업체들이 매년 발표하는 "가장 많이 쓰이는 비밀번호" 목록을 보면 패턴이 비슷하다.
123456,password,qwerty같은 단순 나열- 생년월일(19901225), 전화번호 뒷자리
- 이름 + 숫자 조합(minji123)
- 키보드 배열 순서(zxcvbn, 1q2w3e4r)
이런 비밀번호는 사전 공격(dictionary attack)으로 수 초 안에 뚫린다. 해커가 자주 쓰이는 수백만 개의 패턴을 자동으로 대입하기 때문이다.
강한 비밀번호의 3가지 조건
- 12자 이상: 8자짜리 비밀번호는 초당 수십억 회 시도하는 무차별 대입(brute force)에 몇 시간이면 깨진다. 12자 이상이면 해독 시간이 수백 년 단위로 늘어난다.
- 4종 문자 혼합: 대문자, 소문자, 숫자, 특수문자를 전부 섞는다. 한 종류만 써도 비밀번호 후보군이 기하급수적으로 줄어든다.
- 무작위 배열: 단어나 패턴이 없어야 한다. 사람이 머리로 짜낸 "랜덤"은 실제로는 예측 가능한 경우가 많다.
직접 만들기 vs 생성기 사용
| 방법 | 장점 | 단점 |
|---|---|---|
| 직접 조합 | 외우기 쉬운 패턴 가능 | 무의식적으로 패턴이 생김, 사이트마다 변형하기 번거로움 |
| 랜덤 생성기 | 완전한 무작위, 강도 보장 | 외울 수 없어서 별도 관리 필요 |
사이트가 3~4개뿐이라면 직접 만들어 외워도 된다. 하지만 10개 넘는 계정을 관리한다면 랜덤 비밀번호 생성기로 사이트마다 다른 비밀번호를 뽑아 쓰는 게 현실적이다. 길이(8~64자)와 포함할 문자 종류를 설정하면 암호학적 난수 기반으로 비밀번호가 즉시 만들어지고, 강도를 4단계로 바로 확인할 수 있다.
비밀번호 관리 요령
- 사이트마다 다른 비밀번호
- 하나가 유출되면 나머지 계정도 연쇄로 뚫린다(크리덴셜 스터핑). 귀찮아도 사이트별로 다르게 설정하는 게 핵심이다.
- 비밀번호 관리자 활용
- 브라우저 내장 비밀번호 관리자나 전용 앱(1Password, Bitwarden 등)에 저장하면 외울 필요가 없다. 마스터 비밀번호 하나만 강하게 설정해두면 된다.
- 주기적 변경은 필수가 아니다
- NIST(미국 국립표준기술연구소)는 2017년부터 정기적 비밀번호 변경을 권장하지 않는다. 유출이 의심될 때만 바꾸면 된다.
참고 2단계 인증(2FA)을 함께 쓰면 비밀번호가 유출되더라도 추가 방어선이 생긴다. 가능한 모든 사이트에서 2FA를 켜두는 게 좋다.
비밀번호는 한 번 잘 만들어두면 신경 쓸 일이 거의 없다. 문제는 대충 만들어놓고 여러 곳에 돌려쓰는 습관인데, 그게 가장 위험하다.