TPM 기본 사항

이 문서에서는 신뢰할 수 있는 플랫폼 모듈(TPM 1.2 및 TPM 2.0) 구성 요소에 대한 설명을 제공하고 사전 공격을 완화하는 데 사용되는 방법을 설명합니다.

TPM은 주로 암호화 키와 관련된 기본 보안 관련 기능을 제공하도록 설계된 마이크로칩입니다. TPM은 컴퓨터의 마더보드에 설치되며 하드웨어 버스를 사용하여 시스템의 나머지 부분과 통신합니다.

TPM을 통합하는 디바이스는 암호화 키를 만들고 암호화하여 TPM에서만 키를 해독할 수 있습니다. 키 "래핑" 또는 "바인딩"이라고도 하는 이 프로세스는 키가 공개되지 않도록 보호하는 데 도움이 될 수 있습니다. 각 TPM에는 TPM 자체 내에 저장되는 스토리지 루트 키라는 기본 래핑 키가 있습니다. TPM에서 만든 스토리지 루트 키 또는 인증 키의 프라이빗 부분은 다른 구성 요소, 소프트웨어, 프로세스 또는 사용자에게 노출되지 않습니다.

TPM에서 만드는 암호화 키를 마이그레이션할 수 있는지 여부를 지정할 수 있습니다. 마이그레이션할 수 있도록 지정하면 키의 공용 및 프라이빗 부분이 다른 구성 요소, 소프트웨어, 프로세스 또는 사용자에게 노출될 수 있습니다. 암호화 키를 마이그레이션할 수 없다고 지정하면 키의 프라이빗 부분이 TPM 외부에 노출되지 않습니다.

TPM을 통합하는 디바이스는 특정 플랫폼 측정값에 래핑되고 연결된 키를 만들 수도 있습니다. 이러한 유형의 키는 해당 플랫폼 측정값이 키를 만들 때와 동일한 값을 갖는 경우에만 래핑 해제할 수 있습니다. 이 프로세스를 TPM에 대한 키 봉인이라고 합니다. 키 암호 해독을 해제라고 합니다. TPM은 TPM 외부에서 생성된 데이터를 봉인하고 봉인 해제할 수도 있습니다. BitLocker 드라이브 암호화와 같은 봉인된 키 및 소프트웨어를 사용하면 특정 하드웨어 또는 소프트웨어 조건이 충족될 때까지 데이터를 잠글 수 있습니다.

TPM을 사용하면 키 쌍의 프라이빗 부분이 운영 체제에서 제어되는 메모리와 별도로 유지됩니다. 키를 TPM에 봉인할 수 있으며, 키를 봉인 해제하고 사용하기 위해 해제하기 전에 시스템 상태(시스템의 신뢰성을 정의하는 보증)에 대한 특정 보증을 수행할 수 있습니다. TPM은 자체 내부 펌웨어 및 논리 회로를 사용하여 지침을 처리합니다. 따라서 운영 체제에 의존하지 않으며 운영 체제 또는 애플리케이션 소프트웨어에 존재할 수 있는 취약성에 노출되지 않습니다.

버전에서 사용할 수 있는 기능은 TCG(신뢰할 수 있는 컴퓨팅 그룹)에 의해 사양으로 정의됩니다. 자세한 내용은 신뢰할 수 있는 컴퓨팅 그룹 웹 사이트의 신뢰할 수 있는 플랫폼 모듈 페이지를 참조하세요.

다음 섹션에서는 TPM을 지원하는 기술에 대한 개요를 제공합니다.

증명을 지원하는 측정된 부팅

측정된 부팅 기능은 모든 부팅 구성 요소의 신뢰할 수 있는(스푸핑 및 변조에 저항하는) 로그가 있는 맬웨어 방지 소프트웨어를 제공합니다. 맬웨어 방지 소프트웨어는 로그를 사용하여 신뢰할 수 있거나 맬웨어에 감염되기 전에 실행된 구성 요소를 확인할 수 있습니다. 또한 평가를 위해 측정된 부팅 로그를 원격 서버로 보낼 수도 있습니다. 원격 서버는 클라이언트의 소프트웨어와 상호 작용하거나 대역 외 메커니즘을 통해 적절하게 수정 작업을 시작할 수 있습니다.

TPM 기반 가상 스마트 카드

Warning

비즈니스용 Windows Hello 및 FIDO2 보안 키는 Windows용 최신 2단계 인증 방법입니다. 가상 스마트 카드를 사용하는 고객은 비즈니스용 Windows Hello 또는 FIDO2로 이동하는 것이 좋습니다. 새 Windows 설치의 경우 비즈니스용 Windows Hello 또는 FIDO2 보안 키를 사용하는 것이 좋습니다.

가상 스마트 카드는 기존 스마트 카드의 기능을 에뮬레이트합니다. 가상 스마트 카드는 별도의 물리적 스마트 카드 판독기를 사용하는 대신 TPM 칩을 사용합니다. 이렇게 하면 기업에서 스마트 카드의 관리 및 배포 비용이 크게 줄어듭니다. 최종 사용자에게 가상 스마트 카드는 항상 디바이스에서 사용할 수 있습니다. 사용자가 둘 이상의 디바이스를 사용해야 하는 경우 각 디바이스에 대해 가상 스마트 카드를 사용자에게 발급해야 합니다. 여러 사용자 간에 공유되는 컴퓨터는 각 사용자에 대해 하나씩 여러 가상 스마트 카드를 호스트할 수 있습니다.

TPM 기반 인증서 스토리지

TPM은 인증서 및 RSA 키를 보호합니다. TPM KSP(키 스토리지 공급자)는 프라이빗 키를 강력하게 보호하는 방법으로 TPM을 쉽고 편리하게 사용할 수 있습니다. TPM KSP는 organization 인증서에 등록할 때 키를 생성합니다. 또한 TPM은 외부 원본에서 가져온 인증서를 보호합니다. TPM 기반 인증서는 표준 인증서입니다. 인증서는 키가 생성되는 TPM을 그대로 둘 수 없습니다. TPM은 암호화 API: 차세대(CNG)를 통해 암호화 작업에도 사용할 수 있습니다.

TPM Cmdlet

Windows PowerShell 사용하여 TPM을 관리할 수 있습니다. 자세한 내용은 Windows PowerShell TPM Cmdlet을 참조하세요.

물리적 프레즌스 인터페이스

TPM 1.2의 경우 TPM에 대한 TCG 사양에는 TPM을 켜거나, 끄거나, 지우기 위해 물리적 존재(일반적으로 키를 누르는 경우)가 필요합니다. 이러한 작업은 일반적으로 개별 OEM에서 제공하지 않는 한 스크립트 또는 기타 자동화 도구로 자동화할 수 없습니다.

TPM 1.2 상태 및 초기화

TPM 1.2에는 여러 가능한 상태가 있습니다. Windows는 TPM을 자동으로 초기화하여 사용하도록 설정, 활성화 및 소유된 상태로 가져옵니다.

인증 키

신뢰할 수 있는 애플리케이션은 TPM에 RSA 키 쌍인 인증 키가 포함된 경우에만 TPM을 사용할 수 있습니다. 키 쌍의 프라이빗 절반은 TPM 내부에 보관되며 TPM 외부에서 공개되거나 액세스할 수 없습니다.

키 증명

TPM 키 증명을 사용하면 인증 기관에서 프라이빗 키가 TPM으로 보호되고 TPM이 인증 기관에서 신뢰하는 것인지 확인할 수 있습니다. 유효한 인증 키는 사용자 ID를 디바이스에 바인딩하는 데 사용됩니다. TPM 증명 키가 있는 사용자 인증서는 TPM에서 제공하는 키의 비확장성, 망치 방지 및 격리를 통해 더 높은 보안 보증을 제공합니다.

망치 방지

TPM이 명령을 처리할 때 보호된 환경에서 이 작업을 수행합니다. 예를 들어 불연속 칩의 전용 마이크로 컨트롤러 또는 기본 CPU의 특수 하드웨어 보호 모드입니다. TPM은 TPM 외부에서 공개되지 않는 암호화 키를 만드는 데 사용됩니다. 올바른 권한 부여 값이 제공된 후 TPM에서 사용됩니다.

TPM에는 무차별 암호 대입 공격 또는 키 사용에 대한 권한 부여 값을 확인하려는 더 복잡한 사전 공격을 방지하기 위해 설계된 망치 방지 보호 기능이 있습니다. 기본 방법은 TPM이 키 및 잠금을 더 이상 사용하지 못하도록 하기 전에 제한된 수의 권한 부여 실패만 허용하는 것입니다. 개별 키에 대한 오류 수를 제공하는 것은 기술적으로 실용적이지 않으므로 너무 많은 권한 부여 오류가 발생할 때 TPM이 전역 잠금을 갖습니다.

많은 엔터티가 TPM을 사용할 수 있기 때문에 단일 권한 부여 성공이 TPM의 망치 방지 보호를 다시 설정할 수 없습니다. 이렇게 하면 공격자가 알려진 권한 부여 값이 있는 키를 만든 다음 이를 사용하여 TPM의 보호를 재설정할 수 없습니다. TPM은 TPM이 불필요하게 잠금 상태로 들어가지 않도록 일정 기간 후에 권한 부여 실패를 잊어버리도록 설계되었습니다. TPM 소유자 암호를 사용하여 TPM의 잠금 논리를 다시 설정할 수 있습니다.

TPM 2.0 망치 방지

TPM 2.0에는 잘 정의된 망치 방지 동작이 있습니다. 이는 제조업체에서 망치 방지 보호를 구현한 TPM 1.2와는 대조적이며 업계 전반에 걸쳐 논리가 광범위하게 변경되었습니다.

TPM 2.0이 있는 시스템의 경우 32개의 권한 부여 실패 후 잠그고 10분마다 하나의 권한 부여 오류를 잊도록 Windows에서 TPM을 구성합니다. 즉, 사용자가 잘못된 권한 부여 값이 있는 키를 32번 빠르게 사용하려고 시도할 수 있습니다. 32번의 각 시도에 대해 TPM은 권한 부여 값이 올바른지 여부를 기록합니다. 이로 인해 32번의 시도가 실패한 후 TPM이 잠긴 상태가 됩니다.

다음 10분 동안 권한 부여 값이 있는 키를 사용하려고 시도해도 성공 또는 실패가 반환되지 않습니다. 대신 응답은 TPM이 잠겨 있음을 나타냅니다. 10분이 지나면 한 번의 권한 부여 실패가 잊혀지고 TPM에서 기억한 권한 부여 실패 수가 31개로 줄어듭니다. TPM은 잠긴 상태를 벗어나 정상 작업으로 돌아갑니다. 올바른 권한 부여 값을 사용하면 다음 10분 동안 권한 부여 오류가 발생하지 않는 경우 키를 정상적으로 사용할 수 있습니다. 권한 부여 실패 없이 320분의 기간이 경과하면 TPM은 권한 부여 실패를 기억하지 못하며 32번의 실패한 시도가 다시 발생할 수 있습니다.

Windows에서는 시스템이 완전히 꺼져 있거나 시스템이 최대 절전 모드인 경우 인증 실패를 잊어버리기 위해 TPM 2.0 시스템이 필요하지 않습니다. Windows를 사용하려면 시스템이 정상적으로 실행 중이거나, 절전 모드로 실행 중이거나, 꺼진 상태 이외의 저전력 상태에서 권한 부여 실패를 잊어야 합니다. TPM 2.0이 있는 Windows 시스템이 잠겨 있으면 시스템이 10분 동안 켜져 있으면 TPM은 잠금 모드를 유지합니다.

TPM 2.0에 대한 망치 방지 보호는 TPM에 다시 설정 잠금 명령을 보내고 TPM 소유자 암호를 제공하여 즉시 완전히 재설정할 수 있습니다. 기본적으로 Windows는 TPM 2.0을 자동으로 프로비전하고 시스템 관리자가 사용할 TPM 소유자 암호를 저장합니다.

일부 구현에서는 TPM 소유자 권한 부여 값이 로컬 시스템이 아닌 Active Directory에 중앙에 저장됩니다. 관리자는 를 실행하고 tpm.msc TPM 잠금 시간을 다시 설정하도록 선택할 수 있습니다. TPM 소유자 암호가 로컬로 저장되면 잠금 시간을 다시 설정하는 데 사용됩니다. TPM 소유자 암호를 로컬 시스템에서 사용할 수 없는 경우 관리자가 제공해야 합니다. 관리자가 잘못된 TPM 소유자 암호로 TPM 잠금 상태를 다시 설정하려고 하면 TPM에서 24시간 동안 잠금 상태를 다시 설정하려는 다른 시도를 허용하지 않습니다.

TPM 2.0을 사용하면 일부 키를 연결된 권한 부여 값 없이 만들 수 있습니다. 이러한 키는 TPM이 잠겨 있을 때 사용할 수 있습니다. 예를 들어 기본 TPM 전용 구성이 있는 BitLocker는 TPM이 잠겨 있는 경우에도 TPM의 키를 사용하여 Windows를 시작할 수 있습니다.

기본값 뒤에 있는 근거

원래 BitLocker는 PIN에 대해 4자에서 20자까지 허용되었습니다. Windows Hello 로그인에 대한 자체 PIN이 있으며 4~127자일 수 있습니다. BitLocker와 Windows Hello 모두 TPM을 사용하여 PIN 무차별 암호 대입 공격을 방지합니다.

Windows 10 버전 1607 이하에서는 사전 공격 방지 매개 변수를 사용했습니다. 사전 공격 방지 매개 변수는 보안 요구 사항과 유용성의 균형을 맞추는 방법을 제공합니다. 예를 들어 BitLocker를 TPM + PIN 구성과 함께 사용하는 경우 시간에 따라 PIN 추측 수가 제한됩니다. 이 예제의 TPM 2.0은 32개의 PIN 추측만 즉시 허용하도록 구성한 다음 2시간마다 하나만 더 추측하도록 구성할 수 있습니다. 이는 연간 최대 4415개의 추측을 합한 수치입니다. PIN이 4자리인 경우 2년 동안 가능한 모든 9999 PIN 조합을 시도할 수 있습니다.

Windows 10 버전 1703부터 BitLocker PIN의 최소 길이가 6자로 증가하여 Windows Hello 포함하여 TPM 2.0을 사용하는 다른 Windows 기능에 더 잘 맞춥니다. PIN 길이를 늘리려면 공격자에게 더 많은 추측이 필요합니다. 따라서 합법적인 사용자가 비슷한 수준의 보호를 유지하면서 실패한 시도를 더 빨리 다시 시도할 수 있도록 각 추측 간의 잠금 기간이 단축되었습니다. 잠금 임계값 및 복구 시간에 대한 레거시 매개 변수를 사용해야 하는 경우 GPO가 사용하도록 설정되어 있는지 확인하고 TPM 2.0에 대한 레거시 사전 공격 방지 매개 변수 설정을 사용하도록 시스템을 구성합니다.

TPM 기반 스마트 카드

가상 스마트 카드 Windows TPM 기반 스마트 카드 시스템에 로그인할 수 있도록 구성할 수 있습니다. 실제 스마트 카드와 달리 로그인 프로세스는 권한 부여 값이 있는 TPM 기반 키를 사용합니다. 다음 목록에서는 가상 스마트 카드의 장점을 보여 줍니다.

  • 실제 스마트 카드는 물리적 스마트 카드 PIN에 대해서만 잠금을 적용할 수 있으며 올바른 PIN을 입력한 후 잠금을 다시 설정할 수 있습니다. 가상 스마트 카드 사용하면 인증에 성공한 후 TPM의 망치 방지 보호가 다시 설정되지 않습니다. TPM이 잠금에 들어가기 전에 허용되는 권한 부여 실패 횟수에는 많은 요소가 포함됩니다.
  • 하드웨어 제조업체 및 소프트웨어 개발자는 TPM의 보안 기능을 사용하여 요구 사항을 충족할 수 있습니다.
  • 잠금 임계값으로 32개의 실패를 선택하는 의도는 사용자가 TPM을 잠그지 않도록 하는 것입니다(새 암호를 입력하는 방법을 배우거나 컴퓨터를 자주 잠그고 잠금 해제하는 경우에도). 사용자가 TPM을 잠그는 경우 10분을 기다리거나 다른 자격 증명을 사용하여 로그인해야 합니다(예: 사용자 이름 및 암호).