안전한 비밀번호 만들기 가이드

개인정보 유출 사고의 대부분은 취약한 비밀번호에서 시작됩니다. 해커가 비밀번호를 뚫는 방법을 이해하고, 과학적으로 안전한 비밀번호를 만드는 방법과 관리 전략을 알아봅니다.

1. 비밀번호가 뚫리는 방법

해커들이 비밀번호를 알아내는 주요 방법을 이해하면, 어떤 비밀번호가 왜 취약한지 명확해집니다.

  • 브루트포스(Brute Force) 공격: 가능한 모든 문자 조합을 순서대로 시도합니다. 4자리 숫자 PIN은 10,000가지뿐이므로 즉시 뚫리고, 8자리 소문자도 현대 GPU로 수 시간이면 해독됩니다. 길이가 1자 늘어날 때마다 경우의 수가 기하급수적으로 증가하므로 길이가 가장 중요한 방어입니다.
  • 사전 공격(Dictionary Attack): "password", "123456", "qwerty" 등 흔히 사용되는 비밀번호 목록으로 시도합니다. 매년 공개되는 유출 비밀번호 통계에서 "123456"이 부동의 1위를 차지하고 있으며, 한국에서는 "a1234567", "qwer1234" 등이 자주 등장합니다.
  • 크리덴셜 스터핑(Credential Stuffing): A 사이트에서 유출된 이메일-비밀번호 조합으로 B, C, D 사이트에 자동으로 로그인을 시도합니다. 같은 비밀번호를 여러 사이트에 재사용하면 한 곳의 유출이 전체 계정 탈취로 이어집니다. 이 방법으로 뚫리는 비율이 0.1~2%에 달합니다.

2. 안전한 비밀번호의 조건 (NIST SP 800-63B)

미국 국립표준기술연구소(NIST)의 최신 디지털 인증 가이드라인은 기존의 "복잡한 비밀번호" 정책에서 벗어나 더 실용적인 권장사항을 제시합니다.

  • 최소 8자, 권장 15자 이상: 길이가 보안의 핵심입니다. 가능하다면 20자 이상이 이상적입니다.
  • 패스프레이즈(Passphrase) 활용: "correct-horse-battery-staple"처럼 무관한 단어 4~5개를 조합하면 기억하기 쉬우면서도 매우 안전합니다.
  • 유출된 비밀번호 확인: Have I Been Pwned 같은 서비스에서 내 비밀번호가 유출 목록에 포함되어 있는지 확인하세요.
  • 서비스별 고유한 비밀번호: 절대 같은 비밀번호를 재사용하지 마세요. 한 곳의 유출이 전체 계정 위험으로 이어집니다.

비밀번호 길이별 브루트포스 해킹 소요 시간 (2024년 GPU 기준)

  • 8자리 (소문자): 약 5시간
  • 8자리 (대소문자+숫자+특수문자): 약 7년
  • 12자리 (소문자): 약 6,000년
  • 12자리 (대소문자+숫자+특수문자): 약 3억 4천만 년
  • 16자리 (소문자): 약 10억 년 이상

3. 2단계 인증(2FA/MFA)의 중요성

아무리 강력한 비밀번호도 피싱이나 키로거에 의해 유출될 수 있습니다. 2단계 인증(Two-Factor Authentication)은 비밀번호 외에 추가 인증 수단을 요구하여 비밀번호가 유출되더라도 계정을 보호합니다. 구글에 따르면 2FA를 활성화하면 자동화 봇 공격의 100%, 대량 피싱의 99%, 표적 공격의 66%를 차단할 수 있습니다.

  • OTP 앱 (권장): Google Authenticator, Microsoft Authenticator, Authy 등. 30초마다 새로운 6자리 코드를 생성합니다. SIM 스와핑에 취약한 SMS보다 안전합니다.
  • 하드웨어 보안 키 (최강): YubiKey, Google Titan 등 물리적 기기. 피싱에도 강하며 FIDO2/WebAuthn 표준을 지원합니다. 기업 환경에서 특히 권장됩니다.
  • SMS 인증 (최소): 가장 접근성이 좋지만 SIM 스와핑, SS7 취약점 등에 노출될 수 있습니다. 다른 방법이 불가능할 때 사용하세요.

4. 비밀번호 관리 전략과 흔한 실수

수십 개의 서비스에 각각 고유하고 긴 비밀번호를 사용하려면 비밀번호 관리자(Password Manager)가 필수입니다. 비밀번호 관리자는 AES-256 암호화로 모든 비밀번호를 안전하게 저장하고, 마스터 비밀번호 하나만 기억하면 됩니다.

  • 비밀번호 관리자 선택 기준: 종단간 암호화(E2E) 지원, 독립 보안 감사 이력, 크로스 플랫폼 지원, 자동 채우기 기능, 비밀번호 생성기 내장, 유출 알림 기능.
  • 대표적인 관리자: 1Password(유료, 직관적 UI), Bitwarden(오픈소스, 무료/유료), KeePass(오프라인, 완전 무료).

마지막으로 가장 흔한 비밀번호 실수를 점검해 보세요.

  • 개인정보 사용: 생년월일(19901225), 전화번호, 이름 이니셜 등은 SNS에서 쉽게 수집 가능합니다.
  • 키보드 패턴: qwerty, 1q2w3e4r, zxcvbn 등은 사전 공격 목록에 이미 포함되어 있습니다.
  • 연속 숫자/문자: 123456, abcdef, 111111 등은 가장 먼저 시도되는 조합입니다.
  • 단순 치환: p@ssw0rd처럼 a를 @, o를 0으로 바꾸는 것은 해커에게 이미 알려진 패턴이므로 의미 있는 보안 향상이 되지 않습니다.

자주 묻는 질문

비밀번호를 주기적으로 변경해야 하나요?
최신 NIST 가이드라인(SP 800-63B)은 정기적인 비밀번호 변경을 권장하지 않습니다. 주기적 변경은 오히려 사용자가 예측 가능한 패턴(Password1, Password2 등)을 사용하게 만들어 보안을 약화시킬 수 있습니다. 대신 유출이 확인되었을 때만 즉시 변경하고, 평소에는 충분히 길고 고유한 비밀번호를 유지하는 것이 더 안전합니다.
특수문자를 반드시 포함해야 안전한가요?
특수문자 자체보다 길이가 더 중요합니다. 8자리에 특수문자를 넣는 것보다 16자리 소문자 조합이 해킹에 훨씬 강합니다. NIST도 복잡성 요구(대소문자+숫자+특수문자)보다 최소 길이(8자 이상, 권장 15자 이상)를 강조합니다. 다만 여러 문자 종류를 섞으면 같은 길이에서 경우의 수가 늘어나므로 길이와 복잡성을 모두 갖추는 것이 가장 좋습니다.
비밀번호 관리자(Password Manager)는 안전한가요?
평판 있는 비밀번호 관리자(1Password, Bitwarden, KeePass 등)는 AES-256 등 강력한 암호화로 보호되어 매우 안전합니다. 수십 개의 서비스에 동일 비밀번호를 재사용하는 것보다 관리자를 써서 각각 고유한 비밀번호를 사용하는 것이 압도적으로 안전합니다. 마스터 비밀번호만 충분히 강력하게 설정하고, 2단계 인증을 추가로 활성화하세요.
2단계 인증(2FA)은 어떻게 설정하나요?
대부분의 서비스에서 보안 설정 메뉴에서 2단계 인증을 활성화할 수 있습니다. 방법은 SMS 인증코드, OTP 앱(Google Authenticator, Microsoft Authenticator), 하드웨어 키(YubiKey) 등이 있습니다. 보안 강도는 하드웨어 키 > OTP 앱 > SMS 순이며, SMS는 SIM 스와핑 공격에 취약하므로 가능하면 OTP 앱 이상을 사용하세요.

바로 사용해 보기