'대문자 1개 이상, 특수문자 포함, 8자리 이상'. 가입할 때마다 이 조건을 맞추느라 결국 같은 비밀번호 뒤에 느낌표만 붙이게 된다. Password1!, Password2!... 이런 패턴은 사전 공격(dictionary attack)에서 가장 먼저 시도되는 방식이다.
이런 비밀번호는 위험하다
자주 쓰이는 위험 패턴을 정리하면 이렇다. 해당되는 게 있다면 바꾸는 걸 권한다.
- 연속 숫자/문자 : 123456, abcdef, qwerty 같은 키보드 순서 나열
- 개인 정보 기반 : 생년월일, 전화번호 뒷자리, 이름의 영문 표기
- 단어 + 숫자 조합 : love1234, happy2026처럼 단어 뒤에 숫자만 붙인 패턴
- 사이트 이름 포함 : naver123, google! 같은 유추 가능한 구성
- 모든 사이트에 같은 비밀번호 : 하나가 유출되면 전부 뚫린다
주의 비밀번호 유출 사고가 발생하면 해커는 해당 이메일+비밀번호 조합을 다른 사이트에 자동으로 대입한다. 이를 '크리덴셜 스터핑'이라고 하며, 같은 비밀번호를 돌려 쓰면 피해가 연쇄적으로 발생한다.
안전한 비밀번호의 조건
보안 전문 기관에서 공통으로 권고하는 기준은 이렇다.
- 12자리 이상 : 8자리 비밀번호는 GPU 기반 공격으로 수 시간 내에 뚫릴 수 있다. 12자리만 돼도 해독 시간이 수백 년 단위로 늘어난다
- 대문자 + 소문자 + 숫자 + 특수문자 조합 : 네 가지 문자 유형을 섞으면 경우의 수가 기하급수적으로 늘어난다
- 사전에 있는 단어 미포함 : 영어 단어, 한글 로마자 표기 등은 사전 공격에 취약하다
- 사이트마다 다른 비밀번호 : 하나가 뚫려도 나머지는 안전하다
직접 짜내지 말고 생성기를 쓰자
조건을 다 맞추면서 기억까지 할 수 있는 비밀번호를 매번 직접 만들기는 현실적으로 어렵다. 매번 직접 짜내는 것보다 비밀번호 생성기를 한 번 돌리는 게 빠르고 안전하다. 길이와 포함할 문자 유형만 선택하면 조건에 맞는 비밀번호가 바로 나온다.
브라우저의 암호화 API를 이용해 난수를 생성하기 때문에 패턴 예측이 불가능하고, 생성된 비밀번호가 서버에 저장되지 않으니 외부 유출 위험도 없다.
비밀번호 관리 팁
생성기로 만든 비밀번호는 외우기 어렵다. 그래서 관리 전략이 필요하다.
- 비밀번호 관리자 사용 : 크롬, 사파리 등 브라우저 내장 비밀번호 관리자나 1Password 같은 전용 앱에 저장해두면 자동 입력된다
- 마스터 비밀번호만 기억 : 관리자 앱의 마스터 비밀번호 하나만 외우면 나머지는 앱이 대신 관리한다
- 2단계 인증 병행 : 비밀번호만으로는 부족하다. 문자 인증이나 OTP 앱을 함께 설정하면 보안이 한 단계 올라간다
비밀번호를 기억하기 쉽게 만들수록 해킹도 쉬워진다. 복잡한 비밀번호를 외우려고 애쓰기보다, 생성기로 만들고 관리자로 저장하는 쪽이 현실적이다.