스튜디오 엘

Windows PIN은 4자리인데 긴 로컬 암호보다 안전하다는 이유: TPM의 역할

Authors

윈도우(Windows) 계정 암호를 만들 때는 길이 제한이 상당히 널널해서 10자리 이상으로 만드는 것도 가능합니다. 그런데 로그인 시 PIN 사용 설정을 하면 숫자 네 자리만 입력해도 로그인이 됩니다. 개인 식별 번호(PIN)가 암호보다 안전하다는 설명까지 붙으니 앞뒤가 맞지 않는 것처럼 보입니다.

숫자 네 자리의 조합은 10,000개입니다. 문자·숫자를 섞은 10자리 이상의 암호보다 경우의 수가 압도적으로 적습니다. 차이점은 공격자가 그 10,000개를 어디에서, 얼마나 빠르게 시도할 수 있는가입니다. 이 차이를 만드는 장치가 신뢰할 수 있는 플랫폼 모듈(TPM)입니다.

긴 암호와 짧은 PIN은 공격 조건이 다릅니다

로컬 계정 암호는 해당 PC의 계정에 로그인할 때 쓰는 암호입니다. 온라인 계정 암호처럼 반드시 인터넷 서버에 보내는 것은 아닙니다. 따라서 "암호는 인터넷으로 전송되지만 PIN은 그렇지 않다"라는 설명만으로는 로컬 암호보다 PIN이 안전한 이유를 설명할 수는 없습니다.

로컬 암호의 약점은 암호 검증에 쓰이는 자료를 공격자가 확보했을 때 드러납니다. 윈도우는 로컬 계정 정보를 보안 계정 관리자(SAM) 데이터베이스에 보관합니다. 공격자가 충분한 권한이나 보호되지 않은 디스크 접근을 통해 암호 해시를 추출하면, 원래 PC의 로그인 화면을 거치지 않고 다른 장비에서 후보 암호를 계산해 대조할 수 있습니다. 이를 오프라인 추측 공격이라고 합니다. 이때는 로그인 화면의 재시도 제한보다 암호의 길이와 예측하기 어려운 정도가 중요해집니다. 마이크로소프트(Microsoft)의 자격 증명 저장 구조

TPM으로 보호되는 PIN은 이와 다른 경로를 사용합니다. 윈도우는 일반 로컬 암호를 TPM에 결합하지 않지만, 윈도우 헬로(Windows Hello)의 PIN은 TPM으로 보호되는 인증 자료의 사용을 허가하는 데 쓰입니다. 숫자가 짧아진 대신 해당 장치의 보호 장치까지 통과해야 하는 조건이 붙는 것입니다. 마이크로소프트의 윈도우 헬로 FAQ

TPM은 키를 보관하면서 재시도도 제한합니다

TPM은 암호화 키를 만들고 보호하는 보안 기능입니다. 별도 칩일 수도 있고, CPU의 하드웨어 보호 영역을 이용하는 구현일 수도 있습니다. 중요한 것은 일반 프로그램과 분리된 영역에서 키와 그 사용 조건을 관리한다는 점입니다. 많은 분들이 Windows 새 버전을 설치할 때 막혔던 TPM 지원 여부가 바로 이 기능이죠.

여기서 TPM은 단순한 비밀 저장함이 아닙니다. 올바른 PIN에 해당하는 승인 값이 제공되어야 보호된 키를 사용할 수 있게 하고, 실패가 반복되면 추가 시도를 제한합니다. 이 기능을 반복 추측 방지(Anti-hammering)라고 합니다. 이렇게 하면 암호 데이터만 복사해서 오프라인 환경에서 수백 대의 고성능 PC에서 재시도를 하는 것을 차단할 수 있습니다.

따라서 "GPU로 네 자리 숫자를 전부 대입하면 금방 끝난다"라는 계산에는 전제가 빠져 있습니다. 그런 계산이 성립하려면 공격자가 TPM의 제한 밖에서 정답 여부를 계속 판별할 수 있어야 합니다. 정상적인 TPM 보호가 유지되는 경우에는 그 판별 경로 자체가 제한됩니다.

잠금이 몇 번 만에 걸리고 언제 풀리는지는 TPM 버전, 윈도우의 보호 계층과 설정에 따라 다릅니다. 로그인 화면에 나타나는 추가 확인 문구와 TPM 내부의 실패 횟수 제한도 다릅니다. 재부팅을 한다고 해서 다시 계속 시도할 수도 없습니다. 마이크로소프트의 TPM 반복 추측 방지 설명

서버에 보내는 것은 PIN이 아니라 키로 만든 증명

마이크로소프트 계정이나 기업용 윈도우 헬로(Windows Hello for Business)의 키 기반 인증에서는 보호 방식이 한 단계 더 달라집니다. 사용자가 기억하는 PIN과 실제 인증에 쓰이는 암호화 키를 분리합니다.

쉽게 설명하면 다음과 같습니다.

  1. 장치에 인증용 공개키와 개인키를 준비하고, 서버에는 공개키를 등록합니다.
  2. 사용자가 PIN을 입력하면 장치 안에서 보호된 개인키를 사용할 수 있게 됩니다.
  3. 장치는 그 키로 인증 요청에 서명하고, 서버는 등록된 공개키로 서명을 검증합니다.

PIN 자체를 서버에 보내지 않는 거죠. TPM을 사용하는 구성에서는 개인키를 다른 PC로 내보내 재사용할 수 없도록 보호합니다. 실제 내부에는 키를 보호하는 여러 계층이 있지만, 사용자 입장에서는 PIN은 장치 안의 사용 허가이고, 인증은 별도의 키가 수행한다고 이해하면 됩니다. 마이크로소프트의 윈도우 헬로 동작 구조

TPM을 사용하는 키 기반 인증의 개념도. PIN은 PC 안에서 키 사용을 허가하고, 서버에는 개인키로 만든 서명을 전달합니다.
TPM을 사용하는 키 기반 인증의 개념도. PIN은 PC 안에서 키 사용을 허가하고, 서버에는 개인키로 만든 서명을 전달합니다.

이러한 구조에서는 PIN만 알아낸 사람이 자기 컴퓨터에서 그 번호를 입력해 계정에 로그인할 수 없습니다. 서비스의 등록된 공개키가 유출되어도 그 공개키를 개인키처럼 사용해 서명을 만들 수는 없습니다. 온라인 암호를 가짜 로그인 화면에 입력하거나 여러 사이트에서 재사용할 때와는 피해가 퍼지는 경로가 다릅니다.

물론 일반 로컬 계정은 동일하지 않습니다. 로컬 계정에도 헬로를 설정할 수 있지만, 마이크로소프트에 의하면 로컬 계정의 헬로 구성은 비대칭키, 즉 공개키·개인키 쌍에 기반한 인증이 아닙니다. 로그인 화면에 PIN 항목이 있다는 이유만으로 모든 계정이 기업용 헬로와 같은 방식으로 인증하는 건 아니라는 거죠. 마이크로소프트의 계정 종류별 차이

로그인 PIN이 디스크까지 암호화를 대신하진 않습니다

TPM이 PIN 추측을 막아도, 하드디스크 드라이브나 SSD의 중요 문서가 암호화되어 있지 않으면 공격자는 로그인 대신 저장장치를 직접 읽는 쪽을 택할 수 있습니다. 로그인을 보호하는 일과 저장된 파일을 보호하는 일은 별개입니다.

분실한 노트북의 디스크를 다른 컴퓨터에 연결해 읽는 공격에 대응하는 것은 비트로커(BitLocker)나 장치 암호화입니다. TPM은 여기에도 쓰일 수 있지만, 헬로를 설정했다고 디스크 암호화까지 자동으로 되는 건 아닙니다. 부팅 전에 묻는 비트로커 PIN과 윈도우 로그인 화면의 헬로 PIN도 서로 다른 기능입니다. 물론 이 경우 디스크 읽기/쓰기 성능이 다소 떨어질 수는 있습니다. 마이크로소프트의 비트로커 개요

누군가 어깨너머로 PIN을 본 뒤 노트북까지 가져갔다면, 그 사람은 무작위 추측을 할 필요가 없습니다. 이를 숄더서핑이라고 하는데요, 이미 로그인된 세션에서 실행되는 악성 프로그램도 TPM이 있다는 이유만으로 무력화되지는 않습니다. TPM은 키를 보호하는 경계이지, 사용 중인 PC에서 발생하는 모든 행위를 승인하거나 차단하는 장치는 아닙니다.

물론 꼭 네자리일 필요는 없습니다

기억하기 어렵지 않다면 6자리 이상으로 늘려 추측 범위를 넓히는 것은 합리적인 선택입니다. 생일이나 다른 서비스의 비밀번호 일부처럼 연관성을 쉽게 찾을 수 있는 번호는 당연히 피하는 편이 낫구요.

그보다 먼저 확인할 것은 현재 헬로가 실제로 TPM 보호를 사용하는지입니다. 기업용 헬로는 정책에 따라 TPM이 없거나 사용할 수 없을 때 소프트웨어 방식으로도 준비될 수 있습니다. 하드웨어 보호를 전제로 설명한 장점이 모든 설치에 자동으로 보장되는 것은 아닙니다. 조직에서 이를 보장하려면 하드웨어 보안 장치 사용 정책까지 확인해야 합니다. 마이크로소프트의 하드웨어 보안 장치 정책

기존 암호 로그인이나 계정 복구가 계속 허용되어 있다면 그 경로의 보호도 여전히 필요합니다. PIN을 설정했다는 이유로 남아있는 암호를 약하게 할 필요는 없죠.

결국 로컬 암호와 비교할 때 먼저 볼 것은 TPM이 제공하는 보호와 추측 제한입니다. 마이크로소프트 계정이나 조직 계정의 키 기반 인증이라면, 여기에 암호를 서버에 보내지 않는 이점까지 더해집니다. TPM을 사용하는 헬로와 켜져 있는 디스크 암호화, 관리되는 계정 복구 수단을 함께 확인하는 편이 PIN 자릿수만 늘리는 것보다 중요합니다.

업무용 장비의 계정과 데이터 보호를 함께 점검하려면, 사용 중인 장비와 확인이 필요한 내용을 정리해 유지보수 상담을 요청하실 수 있습니다.