브루트포스 공격과 비밀번호 조합 수
브루트포스(Brute Force) 공격은 가능한 모든 비밀번호 조합을 하나씩 시도하는 방법입니다. 공격에 걸리는 시간은 가능한 조합의 수에 비례합니다. 사용 가능한 문자 종류를 C, 비밀번호 길이를 L이라 하면 조합 수는 C^L입니다.
숫자만(0~9): C=10. 소문자만(a~z): C=26. 소문자+숫자: C=36. 대소문자+숫자: C=62. 대소문자+숫자+특수문자: C=95. 비밀번호가 8자리일 때 조합 수: 숫자만 = 1억(10^8), 소문자만 ≈ 2,089억, 대소문자+숫자 ≈ 218조, 특수문자 포함 ≈ 6,634조. 문자 종류를 늘리면 조합 수가 폭발적으로 증가합니다.
비밀번호별 해킹 소요 시간
최신 GPU(2026년 기준 RTX 5090)의 해시 크래킹 속도는 MD5 기준 약 1,000억 회/초, bcrypt 기준 약 50만 회/초입니다. 실제 서비스는 bcrypt, Argon2 같은 느린 해시를 사용하므로 속도가 크게 제한됩니다.
MD5 기준(최악의 경우): 숫자 6자리 = 0.001초, 숫자 8자리 = 1초, 소문자 8자리 = 약 35분, 대소문자+숫자 8자리 = 약 36분, 대소문자+숫자+특수문자 8자리 = 약 18시간. bcrypt 기준(일반적): 숫자 8자리 = 약 3분, 소문자 8자리 = 약 13년, 대소문자+숫자 8자리 = 약 1.4만 년. 비밀번호의 길이와 복잡성이 보안에 얼마나 중요한지 수치로 확인할 수 있습니다.
길이가 복잡성보다 중요한 이유
비밀번호에서 가장 중요한 것은 길이입니다. 조합 수가 C^L이므로 L(길이)이 1 늘어날 때마다 조합 수가 C배로 증가합니다. 예를 들어 대소문자+숫자(C=62)인 경우: 8자리 = 218조, 10자리 = 839경, 12자리 = 3.2해. 길이를 4자리 늘리면 조합 수가 약 1,500만 배가 됩니다.
따라서 "P@ssw0rd!"(9자리, 복잡하지만 짧음)보다 "correcthorsebatterystaple"(25자리, 단순하지만 긴 패스프레이즈)이 훨씬 안전합니다. 후자는 소문자만 사용해도 26^25 ≈ 2.4 × 10^35의 조합으로, 현존하는 어떤 컴퓨터로도 풀 수 없습니다. NIST(미국 국립표준기술원)도 2017년부터 복잡성 규칙보다 길이를 강조하고 있습니다.
안전한 비밀번호 만들기
실용적인 비밀번호 관리법입니다. 첫째, 비밀번호 관리자(Password Manager)를 사용하세요. 각 사이트마다 고유하고 긴 랜덤 비밀번호를 생성하고, 마스터 비밀번호 하나만 기억하면 됩니다. 1Password, Bitwarden 등이 대표적입니다.
둘째, 패스프레이즈 방식을 사용하세요. 기억하기 쉬운 4~5개 단어를 조합합니다. "바나나먹는코끼리달려간다"처럼 의미 없는 문장이 이상적입니다. 셋째, 2단계 인증(2FA)을 반드시 활성화하세요. 비밀번호가 유출되더라도 2차 인증 없이는 접근할 수 없어, 보안이 획기적으로 강화됩니다. 넷째, 서비스마다 다른 비밀번호를 사용하세요. 하나가 유출되어도 다른 계정에 영향이 없습니다.