길이와 문자 종류로 해독 시간 추정하기
비밀번호의 강도는 엔트로피로 측정됩니다 — 최악의 경우 무차별 대입 공격자가 필요로 하는 시도 횟수입니다 — 이는 길이와 사용하는 문자 유형의 수에 따라 달라집니다. 비밀번호의 구성(비밀번호 자체가 아님)을 입력하여 해독 시간을 추정하세요.
계산식
문자 집합 크기: 소문자 26개, 대문자 26개, 숫자 10개, 일반 기호 32개.
계산 예시
소문자만(26자) 사용하는 8자 비밀번호, 초당 100억 회 시도 속도의 경우:
- 엔트로피:
- 평균 해독 시간:
고려해야 할 주요 요소
- 이 추정치는 유출된 비밀번호 해시에 대한 오프라인 무차별 대입 공격을 가정하며, 이는 실제 로그인 화면에 대한 온라인 추측 시도보다 훨씬 빠릅니다. 대부분의 실제 서비스는 반복된 로그인 실패 시도를 속도 제한하거나 잠금 처리하므로, 온라인 공격자는 여기서 사용된 초당 시도 횟수보다 훨씬 느려집니다 — 오프라인 무차별 대입(데이터 유출로 비밀번호 해시가 노출된 이후)이 이런 종류의 추정치가 실제로 가장 관련 있는 시나리오입니다.
- 흔하거나 사전에 있거나 이전에 유출된 적 있는 비밀번호는 원래 엔트로피가 시사하는 것보다 훨씬 빠르게 해독될 수 있습니다. 이 계산기는 전체 문자 집합에 대한 진정한 균일 무작위 무차별 대입 탐색을 가정합니다 — 실제 공격자는 대개 흔한 비밀번호, 사전 단어, 알려진 유출 비밀번호를 먼저 시도하므로, “수학적으로는 높은 엔트로피”를 가진 비밀번호라도 실제로 치환이 적용된 흔한 단어라면 거의 즉시 해독될 수 있습니다.
- 추측 속도는 비밀번호를 보호하는 해싱 알고리즘에 따라 엄청나게 달라집니다. 느리고 전용으로 설계된 알고리즘(bcrypt나 Argon2 등)으로 해시된 비밀번호는 빠르고 범용적인 알고리즘으로 해시된 비밀번호보다 무차별 대입에 훨씬 더 오랜 시간이 걸릴 수 있습니다 — 이는 비밀번호 자체의 강도와는 별개로, 전적으로 해당 정보를 저장하는 서비스가 보안을 어떻게 구현했는지에 달려 있습니다.
- 비밀번호의 실제 안전성은 해독 시간 계산만으로 결정되지 않습니다. 여러 계정에 비밀번호를 재사용하거나, 피싱 시도에 속거나, 악성코드에 의해 탈취당하는 것은 모두 이 무차별 대입 모델을 완전히 우회합니다 — 순수한 엔트로피를 넘어선 더 넓은 그림은 비밀번호 생성기 계산기 자체의 “고려해야 할 주요 요소”를 참고하세요.
흔한 실수
- “확인”하기 위해 실제 진짜 비밀번호를 입력하는 것. 이 계산기는 실제 비밀번호 텍스트를 의도적으로 절대 요청하지 않으며, 길이와 문자 종류만 묻습니다 — 저장하지 않는다고 주장하는 도구라 하더라도 온라인 도구에 실제 비밀번호를 입력하는 것은 불필요한 위험이므로 완전히 피하는 것이 가장 좋습니다.
- 높은 해독 시간 추정치가 나오면 비밀번호를 재사용해도 실제로 안전하다고 가정하는 것. 이 계산기는 무차별 대입 추측에 대한 저항력만 측정합니다 — 여러 사이트에서 재사용되는 길고 엔트로피가 높은 비밀번호라도, 해독 시간 추정치가 아무리 몇 세기라도 걸린다고 나오더라도, 그 사이트 중 한 곳이라도 유출되는 순간 완전히 노출됩니다.
- 실제 사전 단어로 이루어진 패스프레이즈를 계산된 엔트로피와 동등하게 취급하는 것. 여기서의 계산은 전체 문자 집합에 대한 균일 무작위 탐색을 가정합니다 — 인식 가능한 단어, 이름, 패턴으로 만들어진 비밀번호는 실제 공격자가 가능성 있는 추측을 먼저 시도하기 때문에, 원래 길이와 문자 다양성이 시사하는 것보다 훨씬 빠르게 해독될 수 있습니다.
- 비현실적인 추측 속도를 선택하고 결과를 정확한 것으로 취급하는 것. 추측 속도는 공격자의 하드웨어와 비밀번호를 보호하는 해싱 알고리즘에 따라 자릿수 단위로 달라집니다 — 해독 시간 추정치는 정확한 카운트다운이 아니라 대략적인 자릿수로 취급하세요.
알아두면 유용한 정보
- 기존 비밀번호를 평가하는 것이 아니라 실제로 새 비밀번호를 생성해야 하시나요? 비밀번호 생성기는 암호학적으로 안전한 무작위성을 사용하여 선택한 문자 종류 조합으로 무작위 비밀번호를 만들어 줍니다.