회원가입을 하려는데 "영문 대소문자, 숫자, 특수문자를 포함하여 12자 이상"이라는 조건이 뜬다. 조건에 맞는 비밀번호를 머리로 짜내다 보면 결국 이전에 쓰던 패턴에 숫자 하나만 바꾸게 된다. 이런 비밀번호는 해커에게 별로 어렵지 않다.
쉽게 뚫리는 비밀번호의 공통점
- ✗ 이름 + 생년월일 조합 (예: kim1990!)
- ✗ 키보드 패턴 (qwerty123, 1q2w3e4r)
- ✗ 같은 비밀번호를 여러 사이트에 돌려 사용
- ✗ 사전에 있는 단어 + 숫자 (password1, hello123)
비밀번호 유출 사고의 상당수는 사전 공격(dictionary attack)이나 크리덴셜 스터핑으로 일어난다. 한 곳에서 유출된 비밀번호로 다른 사이트에 로그인을 시도하는 방식이라, 같은 비밀번호를 돌려쓰면 피해가 연쇄적으로 퍼진다.
안전한 비밀번호의 조건
- ✓ 최소 12자 이상 (16자 이상이면 더 안전)
- ✓ 대문자 + 소문자 + 숫자 + 특수문자 조합
- ✓ 사이트마다 서로 다른 비밀번호 사용
- ✓ 추측 가능한 단어나 패턴 없음
직접 만들기 어려운 이유
조건을 전부 충족하면서 외울 수 있는 비밀번호를 만드는 건 쉽지 않다. 사이트마다 다르게 써야 하면 더 그렇다. 결국 포스트잇에 적어두거나 메모장에 저장하는데, 이것도 보안상 좋지 않다.
이럴 때 비밀번호 생성기를 쓰면 조건에 맞는 랜덤 비밀번호가 바로 만들어진다. 길이와 포함할 문자 유형을 선택하면 암호학적으로 안전한 난수 기반으로 생성되고, 생성된 비밀번호는 서버로 전송되지 않으니까 유출 걱정도 없다.
TIP 생성된 비밀번호를 브라우저의 비밀번호 관리자나 1Password, Bitwarden 같은 전용 앱에 저장해두면 외울 필요 없이 자동 입력된다. 마스터 비밀번호 하나만 기억하면 된다.
비밀번호 강도, 어느 정도면 안전한가
8자리 숫자로만 된 비밀번호는 1초 안에 깨진다. 12자리 영문+숫자 조합이면 수백 년, 16자리에 특수문자까지 포함하면 사실상 해독이 불가능한 수준이 된다. 길이를 늘리는 것이 복잡한 문자를 섞는 것보다 보안 효과가 더 크다.
비밀번호를 뭘로 할지 고민하는 시간에 생성기를 한 번 돌리면 끝이다. 중요한 건 만드는 것보다 사이트별로 다르게 쓰고, 안전한 곳에 보관하는 것이다.