Share via


증명 정책 버전 1.0

인스턴스 소유자는 Azure Attestation 정책을 사용하여 증명 흐름 중에 유효성을 검사해야 하는 항목을 정의할 수 있습니다. 이 문서에서는 증명 서비스와 정책 엔진의 작동을 소개합니다. 각 증명 유형에는 자체 증명 정책이 있습니다. 지원되는 문법 및 처리는 대체로 동일합니다.

정책 버전 1.0

서비스에서 지원하는 정책의 최소 버전은 버전 1.0입니다.

A diagram that shows Azure Attestation using policy version 1.0.

증명 서비스 흐름은 다음과 같습니다.

  • 플랫폼은 증명 서비스에 대한 증명 호출에서 증명 증거를 보냅니다.
  • 증명 서비스는 증명을 구문 분석하고 증명 평가에 사용되는 클레임 목록을 만듭니다. 이러한 클레임은 논리적으로 들어오는 클레임 집합으로 분류됩니다.
  • 업로드된 증명 정책은 증명 정책에서 작성된 규칙에 대한 증거를 평가하는 데 사용됩니다.

정책 버전 1.0에는 세 가지 세그먼트가 있습니다.

  • 버전: 버전은 뒤따르는 문법의 버전 번호입니다.
  • authorizationrules: 증명이 issuancerules로 진행되는지 확인하기 위해 먼저 확인되는 클레임 규칙의 컬렉션입니다. 이 섹션을 사용하여 발급 규칙을 적용할 필요가 없는 호출을 필터링합니다. 이 섹션에서 응답 토큰으로 클레임을 발급할 수 없습니다. 이러한 규칙은 증명 실패에 사용할 수 있습니다.
  • issuancerules: 정책에 정의된 대로 증명 결과에 정보를 추가하기 위해 평가되는 클레임 규칙의 컬렉션입니다. 클레임 규칙은 정의된 순서대로 적용됩니다. 또한 선택 사항입니다. 이러한 규칙을 사용하여 나가는 클레임 집합 및 응답 토큰에 추가할 수 있습니다. 이러한 규칙은 증명 실패에 사용할 수 없습니다.

다음 클레임은 들어오는 클레임의 일부로 정책 버전 1.0에서 지원됩니다.

TPM 증명

이러한 클레임을 사용하여 TPM(신뢰할 수 있는 플랫폼 모듈) 증명 정책에서 권한 부여 규칙을 정의합니다.

  • aikValidated: AIK(증명 ID 키) 인증서의 유효성이 검사되었는지 여부에 대한 정보를 포함하는 부울 값입니다.
  • aikPubHash: base64(SHA256) AIK 공개 키가 DER 형식인 문자열입니다.
  • tpmVersion: TPM 주 버전을 포함하는 정수 값입니다.
  • secureBootEnabled: 보안 부팅을 사용하도록 설정되는지 여부를 나타내는 부울 값입니다.
  • iommuEnabled:입력-출력 메모리 관리 단위를 사용할 수 있는지 여부를 나타내는 부울 값입니다.
  • bootDebuggingDisabled: 부팅 디버깅을 사용하지 않도록 설정되는지 여부를 나타내는 부울 값입니다.
  • notSafeMode: Windows가 안전 모드에서 실행되고 있지 않은지 여부를 나타내는 부울 값입니다.
  • notWinPE: Windows가 WinPE 모드에서 실행되고 있지 않은지 여부를 나타내는 부울 값입니다.
  • vbsEnabled: VBS(가상화 기반 보안)가 사용되는지 여부를 나타내는 부울 값입니다.
  • vbsReportPresent: VBS enclave 보고서를 사용할 수 있는지 여부를 나타내는 부울 값입니다.

VBS 증명

다음 클레임을 사용하여 VBS 증명 정책에서 권한 부여 규칙을 정의합니다.

  • enclaveAuthorIdenclave 작성자 ID의 Base64Url 인코딩된 값을 포함하는 문자열 값입니다. enclave에 대한 기본 모듈의 작성자 식별자입니다.
  • enclaveImageId: enclave 이미지 ID의 Base64Url 인코딩된 값을 포함하는 문자열 값입니다. enclave에 대한 기본 모듈의 이미지 식별자입니다.
  • enclaveOwnerId: enclave 소유자 ID의 Base64Url 인코딩된 값을 포함하는 문자열 값입니다. enclave 소유자의 식별자입니다.
  • enclaveFamilyId: enclave 패밀리 ID의 Base64Url 인코딩된 값을 포함하는 문자열 값입니다. enclave에 대한 기본 모듈의 패밀리 식별자입니다.
  • enclaveSvn: enclave에 대한 기본 모듈의 보안 버전 번호가 포함된 정수 값입니다.
  • enclavePlatformSvn: enclave를 호스팅하는 플랫폼의 보안 버전 번호가 포함된 정수 값입니다.
  • enclaveFlags: enclaveFlags 클레임은 enclave에 대한 런타임 정책을 설명하는 플래그가 포함된 정수 값입니다.

다양한 증명 유형에 대한 샘플 정책

TPM에 대한 샘플 정책:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};