KIMKYUTAE.COM · ©
패스워드 복잡도 설정의 중요성과 보안 정책의 변화
정보시스템의 계정 보안에서 가장 기본적인 설정 중 하나가 패스워드 복잡도이다.
보통 패스워드 복잡도라고 하면 영문 대문자, 소문자, 숫자, 특수문자를 조합하고 일정 길이 이상으로 설정하는 것을 떠올린다. 여기에 90일마다 패스워드를 변경하도록 하는 정책도 흔히 사용되어 왔다.
그런데 최근 보안 권고사항을 살펴보면 조금 다른 방향으로 변화하고 있다. 복잡한 문자 조합을 강제하기보다는 패스워드의 길이를 늘리고, 주기적인 변경도 요구하지 않는 추세이다.
그렇다면 기존의 복잡도 설정은 잘못된 것이었을까? 패스워드를 길게 설정하는 것만으로 충분할까?
패스워드 복잡도의 중요성
패스워드 복잡도 정책은 공격자가 사용자의 패스워드를 추측하거나 알아내기 어렵게 만들기 위한 보안 설정이다.
공격자는 패스워드를 알아내기 위해 여러 방법을 사용한다.
- 무차별 대입 공격(Brute Force): 가능한 문자 조합을 반복적으로 대입하는 방식
- 사전 공격(Dictionary Attack): 자주 사용하는 단어나 알려진 패스워드를 우선적으로 시도하는 방식
- 패스워드 스프레이 공격(Password Spraying): 여러 계정에 소수의 흔한 패스워드를 대입하는 방식
- 크리덴셜 스터핑(Credential Stuffing): 다른 서비스에서 유출된 계정과 패스워드 조합을 재사용하는 방식
이 가운데 무차별 대입 공격과 사전 공격은 패스워드의 강도에 직접적인 영향을 받는다.
예를 들어 12345678은 8자리지만 매우 쉽게 추측할 수 있다. 반면 무작위로 생성한 8자리 패스워드는 상대적으로 예측하기 어렵다.
패스워드 길이가 길어지고 가능한 문자 조합이 다양해질수록 공격자가 탐색해야 하는 경우의 수는 증가한다.
다만 길이가 길다고 무조건 안전한 것은 아니다. 알려진 문구나 반복적인 패턴으로 구성된 패스워드는 상당히 길더라도 사전 공격에 취약할 수 있다.
결국 중요한 것은 단순한 복잡도가 아니라 패스워드의 길이와 예측 불가능성이다.
패스워드 정책의 변화
패스워드 보안 정책은 오랜 기간 변화해 왔다.
과거에는 다양한 문자를 조합하도록 강제하는 방식이 일반적이었지만, 최근에는 사용자의 실제 패스워드 생성 습관과 공격 기법을 고려한 정책이 강조되고 있다.
| 시기 | 정책 방향 | 주요 특징 |
|---|---|---|
| 2000년대~2010년대 중반 | 문자 조합 중심 | 대소문자·숫자·특수문자 조합, 주기적 변경 |
| 2017년 | 사용성과 길이 중시 | NIST에서 최소 8자, 복잡도 강제와 정기 변경 지양 |
| 2025년 이후 | 길이·유출 여부 중심 | 단일 인증 최소 15자, 문자 조합 강제와 정기 변경 금지 |
위 표는 대표적인 보안 권고사항의 변화를 정리한 것이다. 모든 기업과 서비스가 같은 시기에 정책을 변경한 것은 아니다.
문자 조합 중심의 정책
과거에는 패스워드에 여러 종류의 문자를 사용하면 공격이 어려워진다는 점에 집중했다.
대표적으로 다음과 같은 정책이 사용되었다.
- 최소 8자리 이상
- 영문 대문자와 소문자 혼합
- 숫자와 특수문자 포함
- 90일 또는 일정 기간마다 변경
- 이전 패스워드 재사용 제한
이론적으로는 타당한 부분이 있다. 동일한 길이라면 사용 가능한 문자의 종류가 많을수록 무차별 대입 공격에서 탐색해야 하는 경우의 수가 증가하기 때문이다.
문제는 사용자의 행동이었다.
사람은 복잡한 문자열을 여러 개 기억하기 어렵다. 결국 Password1!과 같이 예측하기 쉬운 패턴을 사용하거나, 패스워드를 변경할 때 마지막 숫자만 바꾸는 경우가 생긴다.
복잡도 검사를 통과했다고 해서 실제로 강력한 패스워드가 되는 것은 아니라는 의미이다.
2017년, NIST의 정책 변화
2017년 발표된 NIST SP 800-63B는 기존의 패스워드 정책과 다른 방향을 제시했다.
사용자가 직접 설정하는 패스워드의 최소 길이를 8자로 규정하면서, 최대 64자 이상을 허용하도록 권고했다.
또한 문자 종류를 강제하는 복잡도 규칙과 임의의 주기적 패스워드 변경을 지양하도록 권고했다.
대신 흔하게 사용되거나 유출된 패스워드를 차단하고, 사용자가 길고 기억하기 쉬운 패스워드를 만들 수 있도록 하는 방향을 강조했다.
즉, 사용자를 불편하게 만드는 복잡한 규칙보다 실제 공격에 견딜 수 있는 패스워드를 사용하는 것이 중요하다는 접근이다.
2025년, 최소 길이 15자
2025년 7월 발표된 NIST SP 800-63B-4에서는 이러한 방향이 더욱 명확해졌다.
가장 눈에 띄는 변화는 패스워드의 최소 길이이다.
패스워드만으로 인증하는 경우에는 최소 15자를 요구한다.
다중요소 인증(MFA) 과정의 일부로 사용하는 패스워드는 최소 8자까지 허용할 수 있다.
그 외에도 다음과 같은 기준을 제시한다.
| 항목 | NIST SP 800-63B-4 기준 |
|---|---|
| 패스워드 단일 인증 | 최소 15자 |
| MFA와 함께 사용하는 패스워드 | 최소 8자 허용 가능 |
| 최대 길이 | 적어도 64자까지 허용 권고 |
| 문자 조합 강제 | 금지 |
| 주기적인 변경 강제 | 금지 |
| 유출·흔한 패스워드 | 설정 시 차단 필수 |
| 유출이 확인된 패스워드 | 변경 필수 |
여기서 주의할 점이 있다.
NIST의 15자 기준은 모든 종류의 비밀번호에 일괄적으로 적용되는 규칙이 아니다. 서비스에서 중앙 검증하는 사용자 패스워드를 대상으로 하며, 기기 내부에서 인증 수단을 잠금 해제하는 PIN 등에는 별도의 기준이 적용된다.
또한 NIST는 미국의 디지털 신원 인증 지침이다. 국내 모든 정보시스템에 동일한 기준이 법적으로 의무화되어 있다는 의미는 아니다.
길이가 중요한 이유
무차별 대입 공격은 가능한 패스워드 조합을 하나씩 시도하는 방식이다.
예를 들어 영문 소문자 26개만 사용한다고 가정하면 패스워드 길이에 따른 가능한 조합의 수는 다음과 같다.
| 길이 | 가능한 조합 |
|---|---|
| 8자 | 약 2,088억 개 |
| 10자 | 약 141조 개 |
| 12자 | 약 95,429조 개 |
| 15자 | 약 1.68 × 10²¹개 |
한 글자가 추가될 때마다 가능한 조합은 26배 증가한다.
단, 이 계산은 모든 문자를 독립적이고 무작위로 선택한다는 가정에 따른 것이다. 실제 사람이 생성하는 패스워드는 일정한 패턴을 가지는 경우가 많기 때문에 이 수치만으로 해독 시간을 예측할 수는 없다.
공격자가 이미 유출된 패스워드나 흔한 문구를 알고 있다면 가능한 모든 조합을 시도할 필요도 없다.
따라서 길이를 늘리는 것과 함께 예측하기 어려운 패스워드를 만드는 것이 중요하다.
패스프레이즈의 활용
최근 권장되는 방식 가운데 하나가 패스프레이즈(Passphrase)이다.
패스프레이즈는 여러 단어를 조합해 만드는 긴 패스워드이다.
영국 국가사이버보안센터(NCSC)는 서로 관련 없는 세 개의 무작위 단어를 조합하는 방법을 권장해 왔다.
예를 들어 다음과 같은 형태이다.
harbor-puzzle-window-forest
일반적인 복잡도 정책에서 사용하는 짧은 문자열과 달리 길이가 길면서도 상대적으로 기억하기 쉽다.
중요한 것은 단어를 무작위로 선택하는 것이다.
유명한 문장이나 노래 가사, 이름, 생일처럼 추측하기 쉬운 정보는 피해야 한다. 누구나 떠올릴 수 있는 단어 조합 역시 좋은 패스워드라고 보기 어렵다.
위 예시는 형태를 설명하기 위한 것으로 실제 패스워드로 사용해서는 안 된다.
패스워드 관리자를 사용하는 경우에는 사람이 기억할 필요가 없으므로 충분히 긴 무작위 문자열을 생성하는 방식이 더 적절할 수 있다.
주기적인 변경은 필요 없을까?
패스워드를 90일마다 변경하도록 요구하는 정책은 오랫동안 사용되었다.
패스워드가 유출되더라도 일정 기간이 지나면 사용할 수 없게 만든다는 취지이다.
그러나 실제 사용자는 패스워드 변경이 반복되면 기존 문자열의 일부만 수정하는 경우가 많다.
Company2025!를 Company2026!로 변경하는 것처럼 말이다.
이러한 변경 규칙은 공격자도 예측할 수 있다.
NIST SP 800-63B-4는 정기적인 패스워드 변경을 강제하지 않도록 규정한다. 대신 패스워드가 유출되었다는 증거가 있으면 변경을 요구해야 한다.
그렇다고 한 번 설정한 패스워드를 영원히 사용해도 된다는 뜻은 아니다.
유출 사실이 확인되었거나 계정이 침해되었다면 즉시 변경해야 한다. 다른 서비스에서 동일한 패스워드를 사용하고 있었다면 해당 계정도 함께 확인해야 한다.
기업 환경의 패스워드 정책
실제 운영 환경에서는 단순히 최소 길이만 변경한다고 보안 수준이 높아지는 것은 아니다.
패스워드 복잡도는 계정 보안을 구성하는 여러 통제 수단 중 하나이기 때문이다.
개인적으로 기업 환경의 패스워드 정책을 수립한다면 다음과 같은 방향이 적절하다고 생각한다.
1. 최소 길이 강화
일반 사용자 계정은 15자 이상을 기본 방향으로 검토한다. MFA를 사용하는 경우에도 패스워드 단독 로그인이나 복구 경로가 존재하는지 확인할 필요가 있다.
관리자 계정은 더 긴 무작위 패스워드 사용을 권장한다. 다만 관리자 계정의 보안은 길이보다 MFA와 접근통제의 적용 여부가 더 중요할 수 있다.
2. 문자 조합 강제 규칙 재검토
대문자, 숫자, 특수문자를 반드시 포함하도록 하는 규칙을 재검토한다.
무작위 문자열에서 다양한 문자 종류를 사용하는 것은 여전히 효과적이다. 문제는 사용자가 특정 조합을 반드시 사용하도록 강제하는 정책이 오히려 예측 가능한 패턴을 만들 수 있다는 점이다.
3. 유출 패스워드 차단
사용자가 새로운 패스워드를 설정할 때 알려진 유출 패스워드나 흔히 사용되는 패스워드와 비교하여 차단한다.
단순히 최소 길이와 문자 종류만 검사하는 것보다 실제로 추측하기 쉬운 패스워드를 걸러낼 수 있다.
4. 인증 시도 제한
온라인 무차별 대입 공격에 대응하기 위해 로그인 실패 횟수와 요청 빈도를 제한한다.
단순히 계정을 잠그는 방식은 공격자가 정상 사용자의 계정을 반복적으로 잠그는 문제를 만들 수 있으므로, 지연 시간 증가와 위험 기반 탐지 등을 함께 고려한다.
5. MFA 적용
중요 시스템과 관리자 계정에는 MFA를 적용한다.
가능하다면 피싱 저항성이 있는 FIDO2 보안키나 패스키 기반 인증을 우선 검토한다.
패스워드가 아무리 길고 복잡하더라도 피싱 사이트에 직접 입력하거나 악성코드에 탈취된다면 보호 효과가 제한적이기 때문이다.
6. 저장 방식과 인증 경로 점검
패스워드 저장 시에는 적절한 솔트(Salt)와 패스워드 해싱 기법을 사용해야 한다.
또한 SSO나 MFA가 적용되어 있더라도 별도의 관리자 페이지, 오래된 시스템 또는 비상 로그인 경로에서 패스워드 단독 인증이 허용되는지 확인할 필요가 있다.
서비스 계정과 자동화 계정의 비밀정보는 일반 사용자가 기억하는 패스워드와 구분하여 관리하는 것이 적절하다. 가능하다면 워크로드 아이덴티티나 단기 자격증명을 사용하고, 그렇지 못한 경우에는 비밀정보 관리 시스템을 활용할 수 있다.
패스워드 정책의 다음 단계
패스워드 보안 정책이 길이를 중심으로 변화하고 있지만, 이것이 최종적인 해결 방법은 아니다.
길고 무작위적인 패스워드라도 유출되거나 피싱 공격에 노출될 수 있다.
이러한 한계를 줄이기 위한 방향이 패스워드 없이 인증하는 패스키(Passkey)와 같은 기술이다.
패스키는 공개키 암호화 기술을 사용하며, 서비스마다 다른 인증 자격증명을 사용한다. 적절하게 구현된 패스키 인증은 일반적인 패스워드 인증보다 피싱 공격에 강하다.
다만 패스워드 기반 인증이 한 번에 사라지기는 어렵다. 기존 시스템과 업무용 애플리케이션, 레거시 장비 등에서는 여전히 패스워드 인증을 사용하고 있기 때문이다.
따라서 현재의 운영 환경에서는 패스워드 정책을 개선하면서 MFA와 패스키 기반 인증을 함께 확대하는 접근이 현실적일 것으로 보인다.
패스워드 복잡도 설정은 여전히 중요하다. 다만 보안 수준을 높이기 위해 사용자를 무조건 불편하게 만드는 것이 올바른 방향은 아니다.
기존의 복잡도 정책이 얼마나 많은 문자 종류를 사용하도록 강제했는지에 집중했다면, 최근 정책은 공격자가 얼마나 예측하기 어려운 패스워드를 사용하도록 할 것인지에 더 무게를 두고 있다.
결국 패스워드의 보안 수준은 복잡도 규칙의 개수가 아니라 실제 공격에 대한 저항성으로 판단해야 한다고 생각한다.






