Microsoft Azure Attestation

Microsoft Azure Attestation은 플랫폼의 신뢰성과 플랫폼 내부에서 실행되는 이진 파일의 무결성을 원격으로 확인하기 위한 통합 솔루션입니다. 이 서비스는 SGX(Intel® Software Guard Extensions) Enclave, VBS(가상화 기반 보안) Enclave, TPM(신뢰할 수 있는 플랫폼 모듈), Azure VM 및 Azure 기밀 VM에 대한 신뢰할 수 있는 시작과 같은 TEE(신뢰할 수 있는 실행 환경)의 상태를 증명할 수 있는 기능과 함께 TPM(신뢰할 수 있는 플랫폼 모듈)에서 지원하는 플랫폼 증명을 지원합니다.

증명은 소프트웨어 이진 파일이 신뢰할 수 있는 플랫폼에서 제대로 인스턴스화되었음을 보여 주는 프로세스입니다. 그러면 원격 신뢰 당사자가 이러한 의도된 소프트웨어만 신뢰할 수 있는 하드웨어에서 실행된다고 확신할 수 있습니다. Azure Attestation은 증명을 위한 통합 고객 지향 서비스 및 프레임워크입니다.

Azure Attestation을 사용하면 Azure 기밀 컴퓨팅 및 인텔리전트 에지 보호와 같은 최첨단 보안 패러다임을 사용할 수 있습니다. 고객은 컴퓨터의 위치, 해당 컴퓨터의 VM(가상 머신) 상태 및 Enclave가 해당 VM에서 실행되는 환경을 독립적으로 확인하는 기능을 요청했습니다. Azure Attestation은 이러한 요청과 많은 추가 고객 요청을 지원합니다.

Azure Attestation은 컴퓨팅 엔터티로부터 증거를 받고, 클레임 집합으로 전환하고, 구성 가능한 정책에 대해 유효성을 검사하고, 클레임 기반 애플리케이션(예: 신뢰 당사자 및 감사 기관)에 대한 암호화 증명을 생성합니다.

Azure Attestation은 AMD SEV-SNP 기반 CVM(기밀 VM)의 플랫폼 및 게스트 증명을 모두 지원합니다. Azure Attestation 기반 플랫폼 증명은 고객 작업이 필요 없는 CVM의 중요한 부팅 경로 중에 자동으로 수행됩니다. 게스트 증명에 대한 자세한 내용은 기밀 VM에 대한 게스트 증명의 일반 공급 발표를 참조하세요.

사용 사례

Azure Attestation은 여러 환경 및 고유한 사용 사례에 대한 포괄적인 증명 서비스를 제공합니다.

SGX enclave 증명

Intel SGX(Software® Guard Extensions )는 특정 Intel CPU 모델에서 지원되는 하드웨어 등급 격리를 의미합니다. SGX를 사용하면 SGX enclave라고 하는 소독된 구획에서 코드를 실행할 수 있습니다. 그런 다음, 하드웨어에서 액세스 및 메모리 권한을 관리하여 적절한 격리를 통해 공격 노출 영역을 최소화합니다.

클라이언트 애플리케이션은 보안에 민감한 작업을 위임하여 SGX Enclave를 활용하도록 설계할 수 있습니다. 그런 다음 이러한 애플리케이션은 Azure Attestation을 사용하여 enclave에 대한 신뢰와 중요한 데이터에 액세스하는 기능을 정기적으로 설정할 수 있습니다.

Intel® Xeon® 확장 가능 프로세서는 원격으로 SGX enclave를 증명하기 위한 ECDSA 기반 증명 솔루션만 지원합니다. ECDSA 기반 증명 모델을 활용하여 Azure Attestation은 Intel® Xeon® E3 프로세서 및 Intel® Xeon® 스케일러블 프로세서 기반 서버 플랫폼의 유효성 검사를 지원합니다.

참고 항목

Azure Attestation을 사용하여 Intel® Xeon® Scalable 프로세서 기반 서버 플랫폼의 증명을 수행하려면 사용자는 Azure DCAP 버전 1.10.0 이상을 설치해야 합니다.

Enclave 증명 열기

OE(Open Enclave )는 개발자가 TEE 기반 애플리케이션을 빌드할 수 있도록 단일 통합 노예 추상화를 만드는 것을 목표로 하는 라이브러리 컬렉션입니다. 플랫폼의 특수성을 최소화하는 범용 보안 앱 모델을 제공합니다. Microsoft는 이를 SGX와 같은 하드웨어 기반 Enclave 기술을 민주화하고 Azure에 대한 흡수를 늘리기 위한 필수적인 디딤돌로 간주합니다.

OE는 enclave 증거를 확인하기 위한 특정 요구 사항을 표준화합니다. 이는 OE를 Azure Attestation의 고도로 적합한 증명 소비자로 한정합니다.

TPM 증명

TPM(신뢰할 수 있는 플랫폼 모듈) 기반 증명은 플랫폼 상태에 대한 증거를 제공하는 데 중요합니다. TPM은 측정값(증거)에 암호화 유효성을 제공하는 신뢰의 루트 및 보안 공동 처리기 역할을 합니다. TPM이 있는 디바이스는 증명을 사용하여 부팅 무결성이 손상되지 않음을 증명하고 클레임을 사용하여 부팅 중에 기능 상태 활성화를 검색할 수 있습니다.

클라이언트 애플리케이션은 보안에 중요한 작업을 위임하여 TPM 증명을 활용하도록 설계할 수 있으며, 플랫폼의 보안이 확인된 후에만 수행됩니다. 그런 다음 이러한 애플리케이션은 Azure Attestation을 사용하여 플랫폼에 대한 신뢰와 중요한 데이터에 액세스하는 기능을 정기적으로 설정할 수 있습니다.

AMD SEV-SNP 증명

AZURE CVM(기밀 VM)은 SEV-SNP 기술을 사용하는 AMD 프로세서를 기반으로 합니다. CVM은 플랫폼 관리형 키 또는 고객 관리형 키를 사용하여 VM OS 디스크 암호화 옵션을 제공하고 디스크 암호화 키를 가상 머신의 TPM에 바인딩합니다. CVM이 부팅되면 게스트 VM 펌웨어 측정값이 포함된 SNP 보고서가 Azure Attestation으로 전송됩니다. 이 서비스는 측정값의 유효성을 검사하고 Managed-HSM 또는 Azure Key Vault에서 키를 해제하는 데 사용되는 증명 토큰을 발급합니다. 이러한 키는 게스트 VM의 vTPM 상태를 해독하고, OS 디스크의 잠금을 해제하고, CVM을 시작하는 데 사용됩니다. 증명 및 키 릴리스 프로세스는 각 CVM 부팅에서 자동으로 수행되며, 이 프로세스는 하드웨어의 성공적인 증명 시만 CVM이 부팅되도록 합니다.

신뢰할 수 있는 시작 증명

Azure 고객은 VM(가상 머신)에 대해 신뢰할 수 있는 시작을 사용하도록 설정하여 부트킷 및 루트킷 감염을 방지할 수 있습니다. VM이 보안 부팅이고 게스트 증명 확장이 설치된 vTPM을 사용하도록 설정하면 부팅 무결성을 모니터링하기 위해 vTPM 측정값이 정기적으로 Azure 증명에 제출됩니다. 증명 실패는 경고 및 권장 사항 통해 클라우드용 Microsoft Defender 통해 고객에게 표시되는 잠재적인 맬웨어를 나타냅니다.

TEE에서 실행되는 Azure Attestation

Azure Attestation은 다음 작업을 수행하므로 기밀 컴퓨팅 시나리오에 매우 중요합니다.

  • enclave 증거가 유효한지 확인합니다.
  • 고객 정의 정책에 대해 enclave 증거를 평가합니다.
  • 테넌트별 정책을 관리하고 저장합니다.
  • 신뢰 당사자가 enclave와 상호 작용하는 데 사용하는 토큰을 생성하고 서명합니다.

Microsoft가 TCB(신뢰할 수 있는 컴퓨팅 기반)에서 작동되지 않도록 하기 위해 견적 유효성 검사, 토큰 생성, 정책 평가 및 토큰 서명과 같은 Azure Attestation의 중요한 작업이 SGX enclave로 이동됩니다.

Azure Attestation을 사용하는 이유

Azure Attestation은 다음과 같은 이점을 제공하므로 TEE를 증명하는 데 기본적으로 선택됩니다.

  • TPM, SGX Enclave 및 VBS enclave와 같은 여러 환경을 증명하기 위한 통합 프레임워크입니다.
  • 사용자 지정 증명 공급자를 만들고 토큰 생성을 제한하는 정책 구성을 허용합니다.
  • AMD SEV-SNP를 기반으로 하는 SGX enclave 또는 기밀 가상 머신의 구현과 함께 사용하는 동안 해당 데이터를 보호합니다.
  • 고가용성 서비스

Azure Attestation을 사용하여 트러스트를 설정하는 방법

  1. 증명 토큰이 Azure Attestation 에서 생성되는지 확인합니다. Azure Attestation에서 생성된 증명 토큰은 자체 서명된 인증서를 사용하여 서명됩니다. 서명 인증서 URL은 OpenID 메타데이터 엔드포인트통해 노출됩니다. 신뢰 당사자는 서명 인증서를 검색하고 증명 토큰의 서명 확인을 수행할 수 있습니다. 자세한 내용은 코드 샘플을 참조하세요.
  2. Azure Attestation이 SGX Enclave 내에서 실행되고 있는지 확인합니다. 토큰 서명 인증서에는 Azure Attestation이 실행되는 TEE의 SGX 견적이 포함됩니다. 신뢰 당사자가 Azure Attestation이 유효한 SGX enclave 내에서 실행되는 경우 검사 선호하는 경우 서명 인증서에서 SGX 견적을 검색하고 로컬로 유효성을 검사할 수 있습니다. 자세한 내용은 코드 샘플을 참조하세요.
  3. 증명 토큰에 서명한 키를 사용하여 Azure Attestation SGX 견적의 바인딩 유효성을 검사합니다. 신뢰 당사자는 증명 토큰 에 서명한 공개 키의 해시가 Azure Attestation SGX 견적의 보고서 데이터 필드와 일치하는지 확인할 수 있습니다. 자세한 내용은 코드 샘플을 참조하세요.
  4. Azure 증명 코드 측정값이 Azure 게시된 값 과 일치하는지 확인합니다. 증명 토큰 서명 인증서에 포함된 SGX 견적에는 MRSIGNER와 같은 Azure Attestation의 코드 측정값이 포함됩니다. 신뢰 당사자가 SGX 견적이 Azure 내에서 실행되는 Azure Attestation에 속하는지 확인하려는 경우 증명 토큰 서명 인증서의 SGX 견적에서 MRSIGNER 값을 검색하고 Azure Attestation 팀에서 제공하는 값과 비교할 수 있습니다. 이 유효성 검사를 수행하려면 Azure 지원 페이지에서 요청을 제출합니다. MRSIGNER를 회전하려는 경우 Azure Attestation 팀이 사용자에게 연락합니다.

Azure Attestation의 Mrsigner는 코드 서명 인증서가 회전될 때 변경될 것으로 예상됩니다. Azure Attestation 팀은 모든 mrsigner 회전에 대해 아래 출시 일정을 따릅니다.

i. Azure Attestation 팀은 관련 코드를 변경하기 위한 2개월 유예 기간으로 예정된 MRSIGNER 값에 알림

ii. 2개월 유예 기간이 지나면 Azure Attestation에서 새 MRSIGNER 값 사용을 시작합니다.

iii. 3개월 후 알림 날짜, Azure Attestation은 이전 MRSIGNER 값 사용을 중지합니다.

BCDR(비즈니스 연속성 및 재해 복구) 지원

Azure Attestation용 BCDR(비즈니스 연속성 및 재해 복구 )을 사용하면 특정 지역의 중요한 가용성 문제 또는 재해 이벤트로 인한 서비스 중단을 완화할 수 있습니다.

두 지역에 배포된 클러스터는 정상적인 상황에서 독립적으로 작동합니다. 한 지역의 오류 또는 중단의 경우 다음이 발생합니다.

  • Azure Attestation BCDR은 고객이 복구를 위해 추가 단계를 수행할 필요가 없는 원활한 장애 조치(failover)를 제공합니다.
  • 해당 지역의 Azure Traffic Manager상태 프로브의 성능이 저하되었음을 감지하고 엔드포인트를 쌍을 이루는 지역으로 전환합니다.
  • 기존 연결은 작동하지 않으며 내부 서버 오류 또는 시간 제한 문제가 발생합니다.
  • 모든 컨트롤 플레인 작업이 차단됩니다. 고객은 주 지역에서 증명 공급자를 만들 수 없습니다.
  • 테스트 호출 및 정책 구성을 포함한 모든 데이터 평면 작업은 보조 지역에서 제공됩니다. 고객은 기본 지역에 해당하는 원래 URI를 사용하여 데이터 평면 작업을 계속할 수 있습니다.

다음 단계