Windows 10은 일반 비밀번호, Windows Hello, PIN 등 다양한 로그인 방식을 제공합니다. 그중에서도 Windows 8에서 처음 도입된 PIN 로그인은 사용자 계정에 빠르고 간편하게 접근할 수 있게 해주는 대표적인 기능입니다. PIN 인증은 시스템을 켜거나 잠금을 해제할 때마다 실제 비밀번호(보통 Microsoft 계정 비밀번호)를 입력할 필요가 없어 편리할 뿐 아니라 보안 면에서도 유리합니다. PIN이 유출되더라도 같은 Microsoft 계정으로 로그인하는 다른 기기까지 위험해지지 않기 때문입니다.
다만 숫자로만 구성된 단순한 PIN으로 시스템을 보호하는 것은 다소 불안하게 느껴질 수 있습니다. 다행히 Windows에서는 최소 길이, 특수 문자, 영문자 포함 여부 등 복잡성 요구 사항을 PIN에 추가해 보안 효과를 크게 높일 수 있습니다. 이번 글에서는 Windows 10에서 PIN 복잡성을 활성화하는 두 가지 방법을 자세히 살펴보겠습니다.
그룹 정책 편집기로 PIN 복잡성 활성화하기
Windows 10 Pro 또는 Enterprise 버전을 사용 중이라면 그룹 정책 편집기(Group Policy Editor)를 통해 가장 손쉽게 PIN 복잡성을 설정할 수 있습니다. 먼저 Win + R 키를 누르고 gpedit.msc를 입력한 뒤 Enter 키를 누릅니다.

그룹 정책 편집기가 열리면 아래 경로로 이동합니다.
컴퓨터 구성 → 관리 템플릿 → Windows 구성 요소 → 비즈니스용 Windows Hello → PIN 복잡성

해당 위치로 이동하면 오른쪽 패널에 여러 정책이 표시됩니다. 각 정책을 개별적으로 활성화하여 원하는 수준의 PIN 복잡성을 구성할 수 있습니다. 각 정책의 의미는 다음과 같습니다.
- 숫자 필요(Require Digits): PIN에 반드시 숫자를 포함하도록 강제합니다.
- 소문자 필요(Require Lowercase Letters): PIN에 최소 한 개의 소문자를 포함하도록 강제합니다.
- 최소 PIN 길이(Minimum PIN Length): 관리자가 지정한 최소 길이 이상의 PIN을 설정하도록 강제합니다.
- 최대 PIN 길이(Maximum PIN Length): PIN의 최대 길이를 제한합니다. 기본 최대 길이는 127자입니다.
- 만료(Expiration): PIN의 유효 기간(일수)을 설정하며, 만료되면 사용자가 새 PIN을 생성하도록 강제합니다.
- 기록(History): 이전에 사용했던 PIN을 재사용하지 못하도록 강제합니다.
- 특수 문자 필요(Require Special Characters): PIN에 최소 한 개의 특수 문자를 포함하도록 강제합니다. 특수 문자에는 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ 등이 해당됩니다.
- 대문자 필요(Require Uppercase Letters): 이름 그대로 PIN에 최소 한 개의 대문자를 포함하도록 강제합니다.

정책을 적용하는 방법은 간단합니다. 해당 정책을 두 번 클릭한 후 "사용"(Enabled) 옵션을 선택하면 됩니다.
예를 들어 최소 길이 규칙을 적용하려면 "최소 PIN 길이" 정책을 두 번 클릭하고, "사용" 라디오 버튼을 선택한 뒤 옵션 항목에서 원하는 최소 길이를 입력하고 확인 버튼을 눌러 변경 사항을 저장합니다.

앞서 언급했듯이 모든 정책은 개별적으로 활성화할 수 있으므로, 자신의 환경에 맞는 정책만 골라 적용하면 됩니다. 예를 들어 필자는 최소 길이, 만료, 특수 문자 정책 세 가지를 활성화했습니다.

PIN 복잡성 설정을 마쳤다면 시스템을 재시작하거나, 명령 프롬프트를 관리자 권한으로 실행한 뒤 아래 명령어를 입력하여 변경 사항을 즉시 적용할 수 있습니다.
gpupdate.exe /force
변경 사항이 적용되면 규칙이 강제 적용되며, 이후 사용자가 PIN을 설정하려고 할 때 Windows가 모든 규칙을 안내하고 설정된 조건을 충족하지 않으면 PIN 생성을 허용하지 않습니다.

레지스트리 편집기로 PIN 복잡성 활성화하기
Windows 10 Home 버전을 사용하는 경우 그룹 정책 편집기에 접근할 수 없습니다. 이럴 때는 레지스트리 편집기(Registry Editor)를 이용해 동일한 설정을 적용할 수 있습니다.
먼저 Win + R 키를 누르고 regedit를 입력한 후 Enter 키를 눌러 레지스트리 편집기를 실행합니다.

레지스트리 편집기가 열리면 아래 경로로 이동합니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\PassportForWork\PINComplexity
참고: "PINComplexity" 키가 없다면 직접 생성해야 합니다. "PassportForWork" 키를 마우스 오른쪽 버튼으로 클릭한 후 새로 만들기 → 키를 선택하면 됩니다.

그룹 정책 편집기를 사용할 때와 마찬가지로, 각 정책마다 별도의 DWORD 값을 생성해야 합니다. 예를 들어 특수 문자 정책을 적용하려면 오른쪽 패널의 빈 공간을 마우스 오른쪽 버튼으로 클릭한 후 새로 만들기 → DWORD(32비트) 값을 선택합니다.

생성한 값의 이름을 "SpecialCharacters"로 지정합니다.

이름을 지정한 후 해당 값을 두 번 클릭하고, 값 데이터(V)에 "1"을 입력한 뒤 확인 버튼을 눌러 변경 사항을 저장합니다.

아래는 PIN 복잡성 정책별로 사용해야 하는 DWORD 값 이름 목록입니다.
- 숫자 필요: Digits
- 소문자 필요: LowercaseLetters
- 최소 PIN 길이: MinimumPINLength
- 최대 PIN 길이: MaximumPINLength
- 만료: Expiration
- 기록: History
- 특수 문자 필요: SpecialCharacters
- 대문자 필요: UppercaseLetters
Expiration, History, MinimumPINLength, MaximumPINLength 값을 사용할 때 한 가지 주의할 점이 있습니다. 이 값들은 값 데이터를 16진수로 입력해야 합니다. 일반 숫자를 16진수로 변환할 때는 무료 변환 도구나 Windows 계산기의 "프로그래머" 모드를 활용하면 편리합니다.
위에 언급한 네 가지 값을 제외한 나머지 값은 값 데이터를 "1"로 설정하면 정책이 활성화되고, "0"으로 설정하면 비활성화됩니다.

또한 실제로 적용하려는 PIN 복잡성 정책에 해당하는 DWORD 값만 생성하면 됩니다. 예를 들어 PIN에 대문자 포함을 강제하고 싶지 않다면 "UppercaseLetters" DWORD 값을 만들 필요가 없습니다.
위 방법들을 활용해 Windows 10에서 PIN 복잡성을 설정해 보셨다면, 사용 경험과 의견을 댓글로 공유해 주세요.