유틸리티

안전한 비밀번호 만들기, 해킹 안 되는 조합 규칙과 생성법

새 사이트에 가입할 때마다 비밀번호를 뭘로 할지 고민이다. "영문 대소문자 + 숫자 + 특수문자, 8자 이상"이라는 조건을 충족시키면서도 기억할 수 있는 조합을 매번 만들어내는 건 쉽지 않다.

쉽게 뚫리는 비밀번호의 공통점

보안 업체들이 매년 발표하는 "가장 많이 쓰이는 비밀번호" 목록을 보면 패턴이 비슷하다.

  • 123456, password, qwerty 같은 단순 나열
  • 생년월일(19901225), 전화번호 뒷자리
  • 이름 + 숫자 조합(minji123)
  • 키보드 배열 순서(zxcvbn, 1q2w3e4r)

이런 비밀번호는 사전 공격(dictionary attack)으로 수 초 안에 뚫린다. 해커가 자주 쓰이는 수백만 개의 패턴을 자동으로 대입하기 때문이다.

강한 비밀번호의 3가지 조건

  1. 12자 이상: 8자짜리 비밀번호는 초당 수십억 회 시도하는 무차별 대입(brute force)에 몇 시간이면 깨진다. 12자 이상이면 해독 시간이 수백 년 단위로 늘어난다.
  2. 4종 문자 혼합: 대문자, 소문자, 숫자, 특수문자를 전부 섞는다. 한 종류만 써도 비밀번호 후보군이 기하급수적으로 줄어든다.
  3. 무작위 배열: 단어나 패턴이 없어야 한다. 사람이 머리로 짜낸 "랜덤"은 실제로는 예측 가능한 경우가 많다.

직접 만들기 vs 생성기 사용

방법장점단점
직접 조합외우기 쉬운 패턴 가능무의식적으로 패턴이 생김, 사이트마다 변형하기 번거로움
랜덤 생성기완전한 무작위, 강도 보장외울 수 없어서 별도 관리 필요

사이트가 3~4개뿐이라면 직접 만들어 외워도 된다. 하지만 10개 넘는 계정을 관리한다면 랜덤 비밀번호 생성기로 사이트마다 다른 비밀번호를 뽑아 쓰는 게 현실적이다. 길이(8~64자)와 포함할 문자 종류를 설정하면 암호학적 난수 기반으로 비밀번호가 즉시 만들어지고, 강도를 4단계로 바로 확인할 수 있다.

비밀번호 관리 요령

사이트마다 다른 비밀번호
하나가 유출되면 나머지 계정도 연쇄로 뚫린다(크리덴셜 스터핑). 귀찮아도 사이트별로 다르게 설정하는 게 핵심이다.
비밀번호 관리자 활용
브라우저 내장 비밀번호 관리자나 전용 앱(1Password, Bitwarden 등)에 저장하면 외울 필요가 없다. 마스터 비밀번호 하나만 강하게 설정해두면 된다.
주기적 변경은 필수가 아니다
NIST(미국 국립표준기술연구소)는 2017년부터 정기적 비밀번호 변경을 권장하지 않는다. 유출이 의심될 때만 바꾸면 된다.
참고 2단계 인증(2FA)을 함께 쓰면 비밀번호가 유출되더라도 추가 방어선이 생긴다. 가능한 모든 사이트에서 2FA를 켜두는 게 좋다.

비밀번호는 한 번 잘 만들어두면 신경 쓸 일이 거의 없다. 문제는 대충 만들어놓고 여러 곳에 돌려쓰는 습관인데, 그게 가장 위험하다.