다음을 통해 공유


기밀 VM 게스트 증명 디자인 세부 정보

이 문서에서는 Azure 기밀 VM 게스트 증명 디자인에 대한 자세한 개요를 제공합니다.

vTPM 기반 디자인

Azure 기밀 VM(가상 머신)은 게스트 증명을 위해 vTPM 기반 디자인을 활용합니다. 이 방법은 게스트 운영 체제(Linux 및 Windows) 및 하드웨어 플랫폼(AMD SEV-SNP 및 Intel TDX)에서 일관된 인터페이스를 보장합니다.

증명 흐름

게스트 증명 프로세스에는 증거 생성 및 증거 확인이라는 두 가지 주요 단계가 포함됩니다. 사용자는 Azure 기밀 VM에 vTPM 증거를 생성한 다음, 검증을 위해 신뢰할 수 있는 당사자(예: MAA(Microsoft Azure Attestation))에게 증거를 보내도록 요청합니다.

Azure Key Vault Premium 또는 Azure Key Vault 관리형 HSM과 같은 신뢰 당사자는 확인 결과에 따라 Azure 기밀 VM의 신뢰성을 평가할 수 있습니다. VM이 신뢰할 수 있는 것으로 간주되는 경우 신뢰 당사자는 보안 키 릴리스와 같은 메커니즘을 사용하여 VM에 비밀을 안전하게 프로비전할 수 있습니다.

vTPM 증명 정보

vTPM 증거는 섹션의 나머지 부분에 설명된 대로 견적을 확인하는 데 사용되는 TPM 견적 및 보증으로 구성됩니다.

  • TPM 견적

    • TPM 2.0 사양에 정의된 명령의 TPM2_Quote 출력인 표준 TPM 따옴표입니다.
    • 게스트 OS의 측정값(예: 부팅 프로세스)을 캡처하는 PCR(플랫폼 구성 레지스터) 목록을 포함합니다.
    • PCR 사용은 Linux 및 Windows 표준(각각 사용 정의 포함)을 준수합니다.
    • vTPM AK(증명 프라이빗 키)로 서명됨; 즉, AK는 명령에서 서명 키 TPM2_Quote 로 지정됩니다.
  • TPM 이벤트 로그

    • TPM 견적에서 PCR 값을 재현하는 데 사용할 수 있는 시스템에 저장된 이벤트 로그입니다.
    • 자세한 내용은 TPM 사양을 참조하세요.
  • vTPM AK 인증서

    • Azure에서 발급(Azure CA에서 서명).
    • 하드웨어에서 지원됩니다(vTPM 증명 공개 키, AK 퍼블릭은 하드웨어 보고서에 캡처됨).
  • 하드웨어 보고서

    • 하드웨어에서 생성 및 서명합니다.
    • 다음 정보 캡처
      • AK public
      • vTPM이 실행되는 Microsoft에서 빌드한 게스트 파라바이저의 측정값
      • 하드웨어 정보
        • 자세한 내용은 AMD SEV-SNP 및 Intel TDX 사양을 참조하세요.
  • 하드웨어 공급업체 인증서 체인

    • 하드웨어 공급업체(AMD 및 Intel)가 하드웨어 보고서의 서명을 인증하기 위해 발급합니다.
      • AMD SEV-SNP: 버전이 지정된 VCEK(칩 인증 키) 인증서
      • Intel TDX: PCK(인증서 키) 인증서 프로비전

vTPM 증명 정보에서 다루는 항목은 무엇인가요?

구성 요소 적용 대상
게스트 OS TPM 견적(PCR)
UEFI 하드웨어 보고서
게스트 파라바이저(vTPM 포함) 하드웨어 보고서

vTPM 증거는 어떻게 확인되는가?

검증 도구(MAA(Microsoft Azure Attestation))는 다음 그림과 같이 신뢰할 수 있는 체인을 기반으로 vTPM 증거를 확인했습니다. 성공적인 확인은 증명된 Azure 기밀 VM이 신뢰할 수 있고 하드웨어에 의해 보호됨을 의미합니다.

vTPM 기반 증거 신뢰 체인의 그림

개발자 참조

이 섹션에서는 Azure 기밀 VM에서 사용하는 vTPM 기반 게스트 증명 디자인에 대한 참조를 제공합니다.

Azure-Reserved TPM NV 인덱스

속성 NV 인덱스 크기(바이트) 설명
증명 보고서 0x01400001 2600 하드웨어 보고서가 포함된 Azure 정의 형식입니다.
보고서 데이터 0x01400002 64 런타임 데이터에 포함할 보고서 데이터입니다.
vTPM AK 인증서 0x01C101D0 4096 vTPM AK에서 서명한 TPM 견적을 확인하는 데 사용되는 인증서입니다.
vTPM AK 0x81000003 키 유형에 따라 TPM 견적에 서명하는 데 사용되는 키입니다.

샘플 TPM 명령에 대한 Azure 기밀 VM 증명 지침 및 FAQ를 참조하세요.

증명 보고서 형식

증명 보고서

속성 오프셋(바이트) 크기(바이트) 설명
헤더 0 32 보고서 헤더(하드웨어 보고서에서 보증되지 않음)입니다.
보고서 페이로드 32 1,184 하드웨어 보고서입니다.
런타임 데이터 1,612 가변 길이 런타임 데이터에는 하드웨어 보고서에서 보증하는 클레임이 포함됩니다.
속성 오프셋(바이트) 크기(바이트) 설명
서명 0 4 포함된 서명입니다. 예상: 0x414c4348(HCLA).
버전 4 4 형식 버전입니다. 예상: 2.
보고서 크기 8 4 보고서 페이로드의 크기입니다. 예상: 1184(AMD SEV-SNP), 1024(Intel TDX).
요청 유형 12 4 증명 보고서의 Azure 관련 사용량입니다. 예상: 2.
상태 16 4 예약되었습니다.
예약됨 20 12 예약되었습니다.

보고서 페이로드

하드웨어(AMD SEV-SNP 또는 Intel TDX)에서 생성된 보고서입니다. 보고서의 report_data 필드는 런타임 데이터에서 런타임 클레임의 해시를 캡처합니다. 자세한 내용은 하드웨어 공급업체의 사양을 참조하세요.

런타임 데이터

속성 오프셋(바이트) 크기(바이트) 설명 측정됨
데이터 크기 0 4 런타임 클레임의 크기입니다. 아니요
버전 4 4 형식 버전입니다. 예상: 1. 아니요
보고서 유형 8 4 하드웨어 보고서의 유형입니다. 예상: 2(AMD SEV-SNP), 4(Intel TDX) 아니요
해시 형식 12 4 런타임 데이터를 해시하는 데 사용되는 알고리즘입니다. 해시 값은 하드웨어 보고서의 report_data 필드에 캡처됩니다. 예상: 1(SHA-256), 2(SHA-384), 3(SHA-512) 아니요
런타임 클레임 16 가변 길이 JSON 형식의 런타임 클레임입니다.

런타임 클레임

JSON 필드 설명
JWK 형식의 키 배열입니다. 예상 kid: HCLAkPub (vTPM AK public), HCLEkPub (vTPM EK public).
vm_configuration 선택적 Azure 기밀 VM 구성.
user_data NV 인덱스에서 읽 0x01400002 은 64바이트 데이터(HEX 문자열)(보고서 데이터)입니다.

예시

{
  "keys": [
    {
      "kid": "HCLAkPub",
      "key_ops": [
        "sign"
      ],
      "kty": "RSA",
      "e": "AQAB",
      "n": "rAipdAAArL6V1FNnSQ-39i3VH-a8PuOeVRo2VpecspDWbJNmgHJ4-VGGFEx4sdVbvDC6fyo_VM2ebE-_AKxTmrNVEr-KIZveJMD_vlOqvMvjtllsWwA-vsRfpqiduvQdFcdCvyHzfxBRHYqdmxgKq-3QI-XBbZv9cCMMMPHkNp4mWkyahjQxXVJVwB1egCrJGKSk1bRXlP1dXNG_Pe4-W5O-YEGRKdLIA31G0Yh8VBnrEUCAMjDAuh6fncMkwdMVskI5Ta-kJgGw4GepIj6_smIyYhxg3o8Ik4qPntxj1TrV0bVW2IiNMLHoM67y1ErOir7bv00xqgqouFodI-vM3Q"
    },
    {
      "kid": "HCLEkPub",
      "key_ops": [
        "encrypt"
      ],
      "kty": "RSA",
      "e": "AQAB",
      "n": "m3AfPAAA-_HY3M_-x4bQbr0p2nkvAgig1mENl-BColvqq0aKKAqIHr-DFQ9-iB2z7EzhYVon5R7Nc1jzqBsmxahE8uaQfD-sp8bWOtbvy4V9nAqLY4HOwfxlJ99cEOOpxNXfCNesYOk8T0ntG05w7oBRjFw0LMVKS-1S3j5-oMnNnpJoo7rX5hNM8JVpxEuVa1IOf1NmvRey6wjwSHbjUay_IMUTAq1wzpx8wo_hjeY4JMd0Ka1ewLjJDaTQSpSxZI36ujyR6EGho0FBXSKN-9W9DAXkO8-RKuLUrmTXA6ETJRYApMuYGiUDCk1Y5zQTQsyWS6pLjnf2mg2tEntZZw"
    }
  ],
  "vm-configuration": {
    "root-cert-thumbprint": "",
    "console-enabled": true,
    "secure-boot": true,
    "tpm-enabled": true,
    "tpm-persisted": true,
    "vmUniqueId": "68dc0ac0-2ed9-4b2a-a03e-4953e416d939"
  },
  "user-data": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}

다음 단계