TPM 키 증명

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

작성자: 저스틴 터너, Windows 그룹의 수석 지원 에스컬레이션 엔지니어

참고 항목

이 콘텐츠는 Microsoft 고객 지원 엔지니어에 의해 작성되었으며 Windows Server 2012 R2의 기능 및 솔루션에 대해 TechNet에서 일반적으로 제공하는 항목보다 더 자세한 기술적 설명을 찾고 있는 숙련된 관리자 및 시스템 설계자를 대상으로 합니다. 그러나 동일한 편집 과정을 수행하지 않았으므로 일부 언어는 일반적으로 TechNet에서 찾을 수 있는 것보다 완벽하지 않을 수 있습니다.

개요

지원 하는 동안 TPM으로 보호 된 키가 Windows 8부터 존재 했던에 대 한 없었습니다 암호화 인증서 요청자 프라이빗 키의 여는 모듈 TPM (Trusted Platform)을 보호 하 고 실제로 설명 하는 Ca에 대 한 메커니즘 없습니다. 이 업데이트에는 해당 증명을 수행 하 고 해당 증명 발급된 된 인증서에 반영 하는 CA 수 있도록 합니다.

참고 항목

이 문서에서는 판독기가 인증서 템플릿 개념을 알고 있다고 가정 (참조를 참조 하십시오. 인증서 템플릿). 가 잘 인증서 템플릿을 기반으로 인증서를 발급 하는 엔터프라이즈 Ca를 구성 하는 방법에 잘 알고 있다고 가정 합니다 (참조를 참조 하십시오. 검사 목록: 구성 Ca가 인증서 발급 및 관리).

용어

기간 정의
EK 인증 키입니다. TPM (제조 과정에 주입) 내에 포함 하는 비대칭 키입니다. EK 모든 TPM에 대 한 고유 하며이 지정할 수 있습니다. EK는 변경하거나 제거할 수 없습니다.
EKpub EK의 공개 키를 참조합니다.
EKPriv EK의 프라이빗 키를 참조합니다.
EKCert EK 인증서입니다. EKPub에 대한 TPM 제조업체에서 발급한 인증서입니다. 모든 Tpm EKCert 있으며
TPM 신뢰할 수 있는 플랫폼 모듈입니다. TPM은 하드웨어 기반 보안 관련 기능을 제공하도록 설계되었습니다. TPM 칩은 암호화 작업을 수행 하도록 설계 하는 보안 암호화 프로세서입니다. 변조를 확인 하는 여러 물리적 보안 메커니즘을 포함 하는 해당 칩 이며 악성 소프트웨어는 TPM의 보안 기능에 손상을 입힐 수 없습니다.

배경

Windows 8 부터는 신뢰할 수 있는 플랫폼 모듈 (TPM) 데 사용할 수는 인증서의 프라이빗 키 보호 합니다. Microsoft 플랫폼 암호화 공급자 키 스토리지 공급자(KSP)는 이 기능을 활성화합니다. 구현으로 두 가지 문제가 있었습니다.

  • 키가 실제로 TPM에 의해 보호된다는 보장은 없었습니다(누군가가 로컬 관리자 자격 증명을 사용하여 소프트웨어 KSP를 TPM KSP로 쉽게 스푸핑할 수 있습니다).

  • 엔터프라이즈에서 발급한 인증서를 보호할 수 있는 TPM 목록을 제한할 수 없습니다(PKI 관리주체가 환경에서 인증서를 가져오는 데 사용할 수 있는 디바이스 유형을 제어하려는 경우).

TPM 키 증명

TPM 키 증명은 인증서 요청의 RSA 키가 CA가 신뢰하는 "a" 또는 "the" TPM으로 보호된다는 것을 CA에 암호화적으로 증명하기 위해 인증서를 요청하는 엔터티의 기능입니다. TPM 신뢰 모델은 이 문서의 뒷부분에 있는 배포 개요 섹션에서 자세히 설명합니다.

TPM 키 증명 중요 한 이유는 무엇입니까?

TPM 증명 키가 있는 사용자 인증서는 TPM에서 제공하는 키의 비공개성, 망치 방지 및 격리를 통해 백업되는 더 높은 보안 보증을 제공합니다.

TPM 키 증명을 사용하면 이제 새 관리 패러다임이 가능합니다. 관리자는 사용자가 회사 리소스(예: VPN 또는 무선 액세스 지점)에 액세스하는 데 사용할 수 있는 디바이스 집합을 정의하고 다른 디바이스를 사용하여 액세스할 수 없음을 강력하게 보장할 수 있습니다. 이 새로운 액세스 제어 패러다임은 소프트웨어 기반 자격 증명보다 더 강력한 하드웨어 바인딩된 사용자 ID에 연결되어 있기 때문에 강력합니다.

TPM 키 증명 어떻게 작동 합니까?

일반적으로 TPM 키 증명은 다음과 같은 핵심 요소를 기반으로 합니다.

  1. 모든 TPM은 제조업체에서 구울 수 있는 EK(인증 키)라는 고유한 비대칭 키 와 함께 배송됩니다. 이 키의 공개 부분을 EKPub, 연결된 프라이빗 키를 EKPriv라고 합니다. 일부 TPM 칩에는 또한는 EKPub에 대 한 제조업체에서 발급 된 EK 인증서가 있으며 이 인증서를 EKCert라고 합니다.

  2. CA는 EKPub 또는 EKCert를 통해 TPM에 대한 신뢰를 설정합니다.

  3. 사용자는 인증서 요청 되는 RSA 키 암호화와 관련 되어 있다고는 EKPub는 EKpriv을 소유 하는 CA에 게 증명 합니다.

  4. CA는 OID 나타내는 키를 TPM으로 보호 증명 된 이제는 특별 한 발급 정책을 사용 하 여 인증서를 발급 합니다.

배포 개요

이 배포에서는 Windows Server 2012 R2 엔터프라이즈 CA가 설정된 것으로 가정합니다. 또한 클라이언트(Windows 8.1)는 인증서 템플릿을 사용하여 해당 엔터프라이즈 CA에 등록하도록 구성됩니다.

TPM 키 증명을 배포 하는 방법은 세 가지 단계가 있습니다.

  1. TPM 트러스트 모델 계획: 사용 하 여 TPM 트러스트 모델을 결정 하는 첫 번째 단계입니다. 이 위해 지원 되는 3 가지가 있습니다.

    • 사용자 자격 증명을 기반으로 하는 신뢰: 엔터프라이즈 CA 인증서 요청의 일부로 사용자가 제공한 EKPub를 트러스트 하 고 유효성 검사는 수행 하지는 사용자의 도메인 자격 증명 이외의 합니다.

    • EKCert를 기반으로 신뢰: 엔터프라이즈 CA는 관리자가 관리 되는 목록에 대 한 인증서 요청의 일부로 제공 되는 EKCert 체인의 유효성을 검사 허용 EK 인증서 체인합니다. 허용 가능한 체인은 제조업체별로 정의되며 발급 CA에 있는 두 개의 사용자 지정 인증서 저장소(중간 저장소와 루트 CA 인증서용 저장소)를 통해 표현됩니다. 이 신뢰 모드 즉 모든 특정된 제조업체의 Tpm은 신뢰 합니다. 이 모드에서는 환경에서 사용 중인 Tpm이 포함 되도록 EKCerts 참고 합니다.

    • EKPub를 기반으로 신뢰: 엔터프라이즈 CA는 관리자가 관리 되는 목록에 표시 된 인증서 요청의 일부로으로 제공 된 EKPub EKPubs 수 있는지 확인 합니다. 이 목록은이 디렉터리에 있는 각 파일의 이름이 허용된 EKPub의 sha-2 해시 인 파일의 디렉터리로 표현 됩니다. 이 옵션은 가장 높은 보증 수준을 제공하지만 각 디바이스가 개별적으로 식별되므로 더 많은 관리 작업이 필요합니다. 이 신뢰 모델에서는 허용된 EKPubs 목록에 TPM의 EKPub가 추가된 디바이스만 TPM 증명 인증서에 등록할 수 있습니다.

    사용되는 방법에 따라 CA는 발급된 인증서에 다른 발급 정책 OID를 적용합니다. 발급 정책 OID에 대한 자세한 내용은 이 문서의 인증서 템플릿 구성 섹션에서 발급 정책 OID 테이블을 참조하세요.

    TPM 신뢰 모델의 조합을 선택할 수 있습니다. 이 경우 CA는 증명 방법을 수락하고 발급 정책 OID는 성공한 모든 증명 메서드를 반영합니다.

  2. 인증서 템플릿 구성: 인증서 템플릿 구성은 이 문서의 배포 세부 정보 섹션에 설명되어 있습니다. 이 문서에서는 이 인증서 템플릿을 엔터프라이즈 CA에 할당하는 방법 또는 사용자 그룹에 등록 액세스 권한을 부여하는 방법을 다루지 않습니다. 자세한 내용은 참조 검사 목록: 구성 Ca가 인증서 발급 및 관리합니다.

  3. TPM 트러스트 모델에 대한 CA 구성

    1. 사용자 자격 증명을 기반으로 신뢰: 특정 구성이 필요하지 않습니다.

    2. EKCert 기반 신뢰: 관리자는 TPM 제조업체에서 EKCert 체인 인증서를 가져와서 TPM 키 증명을 수행하는 CA에서 관리자가 만든 두 개의 새 인증서 저장소로 가져와야 합니다. 자세한 내용은 이 문서의 CA 구성 섹션을 참조하세요.

    3. EKPub를 기반으로 신뢰: 관리자가 TPM 증명 된 인증서가 필요 하 EKPubs 허용된 목록에 추가할 각 디바이스에 대 한 EKPub를 얻어야 합니다. 자세한 내용은 이 문서의 CA 구성 섹션을 참조하세요.

    참고 항목

    • 이 기능은 Windows 8.1/Windows Server 2012 r 2 필요로 합니다.
    • TPM 키 증명 타사 스마트 카드 Ksp에 대 한 지원 되지 않습니다. Microsoft 플랫폼 암호화 공급자 KSP은 사용 해야 합니다.
    • RSA 키에 대 한 TPM 키 증명 에서만 작동합니다.
    • TPM 키 증명 독립 실행형 CA에 대 한 지원 되지 않습니다.
    • TPM 키 증명을 지원 하지 않습니다 비영구적 인증서 처리합니다.

배포 세부 정보

인증서 템플릿 구성

TPM 키 증명에 대 한 인증서 템플릿을 구성 하려면 다음 구성 단계를 수행 합니다.

  1. 호환성

    호환성 설정 섹션:

    • 확인 Windows Server 2012 R2 에 대 한 선택은 인증 기관합니다.

    • 확인 Windows 8.1 / Windows Server 2012 R2 에 대 한 선택은 인증서 받는 사람합니다.

    Screenshot that highlights the Certificate recipient list.

  2. 암호화

    공급자 범주에 대해 키 스토리지 공급자가 선택되어 있고 알고리즘 이름에 대해 RSA가 선택되어 있는지 확인합니다. 요청이 다음 공급자 중 하나를 사용해야 하며 공급자 아래에서 Microsoft 플랫폼 암호화 공급자 옵션이 선택되어 있는지 확인합니다.

    Screenshot that highlights the Provider Category and Algorithm name lists.

  3. 키 증명

    다음은 Windows Server 2012 r 2에 대 한 새 탭입니다.

    Screenshot that shows the Key Attestation tab.

    가능한 세 가지 옵션 중에서 증명 모드를 선택합니다.

    Screenshot that shows the attestation modes.

    • None: 키 증명 해야 사용 되지 않음을 의미 합니다.

    • 클라이언트가 가능한 경우 필수: TPM 키 증명을 지원하지 않는 디바이스의 사용자가 해당 인증서에 계속 등록할 수 있도록 허용합니다. 증명을 수행할 수 있는 사용자는 OID 특수 발급 정책으로 구분 됩니다. 일부 디바이스는 키 증명을 지원하지 않는 오래된 TPM 또는 TPM이 전혀 없는 디바이스로 인해 증명을 수행하지 못할 수 있습니다.

    • 필수: 클라이언트 는 TPM 키 증명을 수행해야 합니다 . 그렇지 않으면 인증서 요청이 실패합니다.

    TPM 트러스트 모델을 선택 합니다. 다음과 같은 세 가지 옵션이 있습니다.

    Screenshot that shows the TPM trust models.

    • 사용자 자격 증명: 는 인증 사용자가 해당 도메인 자격 증명을 지정 하 여 유효한 TPM에 대 한 신뢰성을 보증 하도록 허용 합니다.

    • 보증 인증서: The EKCert 디바이스 관리자에서 관리 되는 TPM 중간 CA 인증서 관리자에서 관리 하는 루트 CA 인증서를 통해 유효성을 검사 해야 합니다. 이 옵션을 선택하는 경우 이 문서의 CA 구성 섹션에 설명된 대로 발급 CA에 EKCA 및 EKRoot 인증서 저장소를 설정해야 합니다.

    • 인증 키: 디바이스의 EKPub가 PKI 관리자 관리 목록에 표시되어야 합니다. 이 옵션은 가장 높은 보증 수준을 제공 하는 하지만 많은 노력이 필요합니다. 이 옵션을 선택하는 경우 이 문서의 CA 구성 섹션에 설명된 대로 발급 CA에 EKPub 목록을 설정해야 합니다.

    마지막으로, 발급된 된 인증서에 표시 하는 발급 정책을 결정 합니다. 기본적으로 각 적용 유형에는 다음 표에 설명된 대로 해당 적용 유형을 전달하는 경우 인증서에 삽입되는 연결된 OID(개체 식별자)가 있습니다. 적용 방법의 조합을 선택할 수 있습니다. 이 경우 CA는 증명 방법을 수락하고 발급 정책 OID는 성공한 모든 증명 방법을 반영합니다.

    발급 정책 OID

    OID 키 증명 유형 설명 보증 수준
    1.3.6.1.4.1.311.21.30 EK "EK Verified": EK의 목록은 관리자 관리 높음
    1.3.6.1.4.1.311.21.31 보증 인증서 "EK 인증서 확인 됨": EK 인증서 체인의 유효성을 검사 하는 경우 중간
    1.3.6.1.4.1.311.21.32 사용자 자격 증명 "EK 신뢰할 수 있는 사용 시": EK 사용자 입증에 대 한 낮음

    Oid 경우 발급된 된 인증서에 삽입 됩니다 발급 정책 포함 됩니다 (기본 구성)를 선택 합니다.

    TPM Key attestation

    인증서에 OID를 사용할 수 있는 한 가지 잠재적 사용은 VPN 또는 무선 네트워킹에 대한 액세스를 특정 디바이스로 제한하는 것입니다. 예를 들어 OID 1.3.6.1.4.1.311.21.30이 인증서에 있는 경우 액세스 정책에서 연결(또는 다른 VLAN에 대한 액세스)을 허용할 수 있습니다. 이 옵션을 사용 하면 해당 TPM EK EKPUB 목록에는 디바이스에 대 한 액세스를 제한할 수 있습니다.

CA 구성

  1. 발급 CA에서 EKCA 및 EKROOT 인증서 저장소 설정

    선택한 경우 보증 인증서 템플릿 설정에 대해 다음 구성 단계를 수행 합니다.

    1. TPM 키 증명을 수행 하는 인증 기관 (CA) 서버에 두 개의 새 인증서 저장소를 만들려면 Windows PowerShell을 사용 합니다.

    2. 엔터프라이즈 환경에서 허용하려는 제조업체에서 중간 및 루트 CA 인증서를 가져옵니다. 이러한 인증서는 적절하게 이전에 만든 인증서 저장소(EKCA 및 EKROOT)로 가져와야 합니다.

    다음 Windows PowerShell 스크립트는 두이 단계를 수행합니다. 다음 예제에서는 Fabrikam TPM 제조업체는 루트 인증서를 제공 했습니다 FabrikamRoot.cer 및 발급 CA 인증서 Fabrikamca.cer합니다.

    PS C:>\cd cert:
    PS Cert:\>cd .\\LocalMachine
    PS Cert:\LocalMachine> new-item EKROOT
    PS Cert:\ LocalMachine> new-item EKCA
    PS Cert:\EKCA\copy FabrikamCa.cer .\EKCA
    PS Cert:\EKROOT\copy FabrikamRoot.cer .\EKROOT
    
  2. EK 증명 유형을 사용하는 경우 EKPUB 목록 설정

    템플릿 설정에서 인증 키를 선택한 경우 다음 구성 단계는 각각 허용되는 EK의 SHA-2 해시에 대해 명명된 0바이트 파일을 포함하는 발급 CA에서 폴더를 만들고 구성하는 것입니다. 이 폴더는 TPM 키 증명 인증서를 가져올 수 있는 디바이스의 "허용 목록"으로 사용됩니다. Attested는 인증서가 필요한 각 디바이스에 대 한 EKPUB를 수동으로 추가 해야 하기 때문에 기업 TPM 키 증명 된 인증서를 얻을 수 있는 권한이 있는 디바이스를 보장 하는 것으로 제공 합니다. 이 모드에 대 한 CA를 구성 하려면 두 단계가 필요 합니다.

    1. EndorsementKeyListDirectories 레지스트리 항목 만들기: Certutil 명령줄 도구를 사용하여 신뢰할 수 있는 EKpubs가 다음 표에 설명된 대로 정의된 폴더 위치를 구성합니다.

      연산 명령어 구문
      폴더 위치를 추가 합니다. certutil.exe -setreg CA\EndorsementKeyListDirectories +"<folder>"
      폴더 위치를 제거 합니다. certutil.exe -setreg CA\EndorsementKeyListDirectories -"<folder>"

      certutil 명령의 EndorsementKeyListDirectories는 다음 표에 설명된 대로 레지스트리 설정입니다.

      값 이름 Type 데이터
      EndorsementKeyListDirectories REG_MULTI_SZ <EKPUB 허용 목록에 대한 LOCAL 또는 UNC 경로>

      예시:

      \\blueCA.contoso.com\ekpub

      \\bluecluster1.contoso.com\ekpub

      D:\ekpub

      HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA 삭제된 이름>

      EndorsementKeyListDirectories 에는 CA가 읽기 권한이 있는 폴더를 가리키는 UNC 또는 로컬 파일 시스템 경로 목록이 포함됩니다. 각 폴더에는 0개 이상의 허용 목록 항목이 포함될 수 있습니다. 여기서 각 항목은 파일 확장명 없이 신뢰할 수 있는 EKpub의 SHA-2 해시인 이름을 가진 파일입니다. 이 레지스트리 키 구성을 만들거나 편집하려면 기존 CA 레지스트리 구성 설정과 마찬가지로 CA를 다시 시작해야 합니다. 그러나 구성 설정에 대한 편집은 즉시 적용되며 CA를 다시 시작할 필요가 없습니다.

      Important

      변조 목록에서 폴더를 보호 하 고 관리자 권한이 있는 있도록 권한을 구성 하 여 무단된 액세스에 대 한 읽기 및 쓰기 액세스 합니다. CA의 컴퓨터 계정에는 읽기 권한만 필요합니다.

    2. EKPUB 목록을 채우는: 각 디바이스에서 Windows PowerShell을 사용 하 여 TPM EK의 공개 키 해시를 가져오려면 다음 Windows PowerShell cmdlet을 사용 하 고 다음 보내고이 공용 CA에 대 한 해시를 키 EKPubList 폴더에 저장 합니다.

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      PS C:>$b=new-item $a.PublicKeyHash -ItemType file
      

문제 해결

키 증명 필드에서 사용할 수 없는 인증서 템플릿

템플릿 설정이 증명 요구 사항을 충족하지 않는 경우 키 증명 필드를 사용할 수 없습니다. 일반적인 원인은 다음과 같습니다.

  1. 호환성 설정이 올바르게 구성되지 않았습니다. 다음과 같이 구성되었는지 확인합니다.

    1. 인증 기관: Windows Server 2012 R2

    2. 받는 사람 인증서: Windows 8.1 또는 Windows Server 2012 R2

  2. 암호화 설정이 올바르게 구성되지 않았습니다. 다음과 같이 구성되었는지 확인합니다.

    1. 공급자 범주: 키 스토리지 공급자

    2. 알고리즘 이름: RSA

    3. 공급자: Microsoft 플랫폼 암호화 공급자

  3. 요청 처리 설정이 올바르게 구성되지 않았습니다. 다음과 같이 구성되었는지 확인합니다.

    1. 프라이빗 키를 내보낼 수 있음 옵션을 선택 하지 않아야 합니다.

    2. 주체의 암호화 프라이빗 키를 보관할 옵션을 선택 하지 않아야 합니다.

TPM에 대 한 디바이스 증명 확인

Windows PowerShell cmdlet을 사용 하 여 확인 CAEndorsementKeyInfo, Ca가 증명에 대해 신뢰할 수 있는 특정 TPM 디바이스 인지 확인 합니다. 두 가지 옵션이 있습니다: EKCert, 및는 EKPub 확인 하기 위한 기타 확인 하기 위한 하나입니다. Cmdlet은 실행 로컬로 또는 원격 Ca는 CA에서 Windows PowerShell 원격을 사용 하 여.

  1. EKPub에 신뢰를 확인 하기 위한 다음 두 단계를 수행 합니다.

    1. 클라이언트 컴퓨터에서의 EKPub 추출: The EKPub를 통해 클라이언트 컴퓨터에서 추출할 수 Get TpmEndorsementKeyInfo합니다. 상승된 된 명령 프롬프트에서 다음을 실행 합니다.

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      
    2. CA 컴퓨터에는 EKCert에 트러스트 확인: 예를 들어 (전자 메일)를 통해 서버에 압축 푼된 문자열 (EKPub는 sha-2 해시)을 복사 하 고 확인 CAEndorsementKeyInfo cmdlet에 전달 합니다. 이 매개 변수 이름은 64 자 이어야 하는 참고 합니다.

      Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
      
  2. EKCert에 신뢰를 확인 하기 위한 다음 두 단계를 수행 합니다.

    1. 클라이언트 컴퓨터에서의 EKCert 추출: The EKCert를 통해 클라이언트 컴퓨터에서 추출할 수 Get TpmEndorsementKeyInfo합니다. 상승된 된 명령 프롬프트에서 다음을 실행 합니다.

      PS C:>\$a=Get-TpmEndorsementKeyInfo
      PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cer
      
    2. CA 컴퓨터에서 EKCert에 대한 신뢰 확인: 추출된 EKCert(EkCert.cer)를 CA에 복사합니다(예: 이메일 또는 xcopy를 통해). 예를 들어, CA 서버에 인증서 파일의 "c:\diagnose" 폴더를 복사 하는 경우 확인을 완료 하려면 다음을 실행 합니다.

      PS C:>new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "c:\diagnose\myEKcert.cer" | Confirm-CAEndorsementKeyInfo
      

참고 항목

신뢰할 수 있는 플랫폼 모듈 기술 개요외부 리소스: 신뢰할 수 있는 플랫폼 모듈