편집

다음을 통해 공유


Microsoft Azure Attestation에 대한 질문과 대답

이 문서에서는 Azure Attestation에 대한 가장 일반적인 질문에 대한 답변을 제공합니다.

이 문서에서 Azure 문제가 해결되지 않은 경우 Azure 지원 페이지에서 Azure 지원 요청을 제출할 수도 있습니다.

THIM(신뢰할 수 있는 하드웨어 ID 관리)과 enclave 증명에서의 해당 역할은 무엇인가요?

THIM(신뢰할 수 있는 하드웨어 ID 관리)은 Intel의 ACC(Azure 기밀 컴퓨팅) 노드에 대한 Azure 보안 기준을 정의하고 데이터를 가져옵니다. 또한 Azure Attestation은 TEE(신뢰할 수 있는 실행 환경)의 유효성을 검사할 때 캐시된 정보를 사용합니다.

THIM은 다음과 같은 이유로 권장됩니다.

  • 고가용성 제공
  • 외부에서 호스팅된 서비스와 인터넷 연결에 대한 종속성을 줄입니다.
  • Intel에서 최신 버전의 Intel 인증서, CRL, TCB(신뢰할 수 있는 컴퓨팅 기반) 정보를 주기적으로 가져오고, Enclave에서 ACC 노드의 ID를 인용합니다. 이 서비스는 TEE의 유효성을 검사하는 동안 Azure Attestation에서 참조할 Azure 보안 기준을 확인하고, Intel 인증서의 무효화 또는 해지로 인한 증명 오류를 크게 줄입니다.

Azure가 아닌 환경에서 Azure Attestation이 SGX(소프트웨어 가드 확장) 증명을 지원하나요?

아니요. Azure Attestation은 TEE의 유효성을 검사하기 위해 THIM(신뢰할 수 있는 하드웨어 ID 관리)에서 지정한 보안 기준에 따라 달라집니다. THIM은 현재 Azure 기밀 컴퓨팅 노드만 지원하도록 설계되었습니다.

SGX enclave 증명에 대해 Azure Attestation에서 수행하는 유효성 검사는 무엇인가요?

SGX 증명 프로세스 중에 Azure Attestation은 다음 유효성 검사를 수행합니다.

  • 서명된 Enclave 견적의 신뢰할 수 있는 루트가 Intel에 속하는지 확인합니다.
  • TEE 견적이 THIM(신뢰할 수 있는 하드웨어 ID 관리)에 정의된 Azure 보안 기준을 충족하는지 확인합니다.
  • 고객이 증명 공급자를 만들고 위의 유효성 검사 외에도 사용자 지정 정책을 구성한 경우 Azure Attestation은 증명 정책에 대해 TEE 견적을 평가합니다. 고객은 증명 정책을 사용하여 TEE에 대한 권한 부여 규칙을 정의하고 증명 토큰을 생성하기 위한 발급 규칙도 지정할 수 있습니다.

검증 도구가 Azure Attestation에서 지원하는 SGX 증명에 대한 담보를 어떻게 얻을 수 있나요?

일반적으로 Intel을 신뢰의 루트로 사용하는 증명 모델의 경우 증명 클라이언트는 Enclave API와 통신하여 Enclave 증거를 가져옵니다. Enclave API는 내부적으로 Intel PCK 캐싱 서비스를 호출하여 증명할 노드의 Intel 인증서를 가져옵니다. 인증서는 enclave 증거에 서명하는 데 사용되므로 원격으로 증명 가능한 담보를 생성합니다.

Azure Attestation에 대해 동일한 프로세스를 구현할 수 있습니다. 그러나 THIM(신뢰할 수 있는 하드웨어 ID 관리)이 제공하는 이점을 활용하려면 ACC 가상 머신을 설치한 후 Azure DCAP 라이브러리를 설치하는 것이 좋습니다. Intel과의 계약에 따라 Azure DCAP 라이브러리가 설치되면 enclave 증거 생성 요청이 Intel PCK 캐싱 서비스에서 THIM으로 리디렉션됩니다. Azure DCAP 라이브러리는 Windows 및 Linux 기반 환경에서 지원됩니다.

다른 SGX 증명 모델에서 Azure Attestation으로 전환하려면 어떻게 해야 하나요?

  • Azure 기밀 컴퓨팅 가상 머신을 설치한 후 Azure DCAP 라이브러리(Windows/ Linux)를 설치하여 THIM(신뢰할 수 있는 하드웨어 ID 관리)이 제공하는 이점을 활용합니다.
  • Enclave 증거를 검색하고 Azure Attestation에 요청을 보낼 수 있는 원격 증명 클라이언트를 작성해야 합니다. 참조는 코드 샘플을 참조하세요.
  • 증명 요청은 기본 공급자 또는 사용자 지정 증명 공급자의 REST API 엔드포인트로 보낼 수 있습니다.
  • 2018-09-01-preview API 버전에서 클라이언트는 SGX 증명 API 엔드포인트에 증거와 함께 Microsoft Entra 액세스 토큰을 보내야 합니다. Microsoft Entra 액세스 토큰은 2020-10-01 API 버전에서 SGX 증명을 수행하는 데 필요한 매개 변수가 아닙니다.

신뢰 당사자는 어떻게 증명 토큰의 무결성을 확인하고 Azure Attestation이 enclave 내에서 실행되고 있는지 확인할 수 있나요?

Azure Attestation에 의해 생성된 증명 토큰은 자체 서명된 인증서를 사용하여 서명됩니다. 서명 인증서는 OpenID 메타데이터 엔드포인트를 통해 노출됩니다. 신뢰 당사자는 이 엔드포인트에서 서명 인증서를 검색하고 증명 토큰의 서명 확인을 수행할 수 있습니다. 서명 인증서에는 Azure Attestation이 실행되는 TEE의 SGX 견적도 포함됩니다. 신뢰 당사자도 Azure Attestation이 유효한 SGX enclave 내에서 실행되고 있는지 확인하는 것을 선호하는 경우 서명 인증서에서 SGX 견적을 검색하고 로컬로 유효성을 검사할 수 있습니다. 자세한 내용은 코드 샘플을 참조하세요.

증명 토큰은 얼마 동안 유효하나요?

증명 토큰의 유효 시간은 8시간입니다. 현재 값을 사용자 지정하기 위한 프로비전이 없습니다.

OpenID 메타데이터 엔드포인트에서 서명 확인에 사용할 인증서를 확인하는 방법

OpenID 메타데이터 엔드포인트에 노출된 여러 인증서는 Azure Attestation에서 지원하는 여러 사용 사례(예: SGX 증명)에 해당합니다. RFC 7515에 지정된 표준에 따라 증명 토큰 헤더의 kid 매개 변수와 일치하는 kid(키 ID)가 있는 인증서가 서명 확인에 사용됩니다. 일치하는 kid가 없으면 OpenID 메타데이터 엔드포인트에서 노출된 모든 인증서를 시도해야 합니다.

신뢰 당사자가 검증된 TEE(신뢰할 수 있는 실행 환경)과 비밀을 공유할 수 있나요?

TEE 증거 생성 시 TEE 내에서 실행되는 코드는 증거에 임의의 정보를 포함할 수 있습니다. 예를 들어 TEE는 하나 이상의 비대칭 키 쌍을 만들고, 이러한 키 쌍의 공개 키 구성 요소를 JWKS JSON 문자열로 직렬화하고, TEE 증거에 JWKS JSON 문자열을 RunTimeData { quote, JWKS JSON 문자열 }로 포함할 수 있습니다. Azure Attestation은 RuntimeData의 SHA256 해시가 견적의 "보고서 데이터" 특성의 하위 32바이트와 일치하는지 확인합니다. TEE 증거를 평가한 후 Azure Attestation은 "x-ms-runtime" 클레임에서 "keys"라는 클레임으로 사용할 수 있는 JWKS를 사용하여 JWT를 생성합니다. RunTimeData는 신뢰 당사자가 보안 채널을 설정하고 TEE에 데이터를 안전하게 전송하는 데 추가로 사용할 수 있습니다.

Azure Attestation은 고객 데이터를 어디에 저장하나요?

Azure Attestation은 고객이 서비스 인스턴스를 배포하는 지역 내에서 BCDR을 위해 처리 및 복제하는 동안 미사용 고객 데이터를 저장합니다.