컨피덴셜 VM 증명

증명은 컨피덴셜 VM 인스턴스가 적법하고 예상 상태로 작동한다는 확신을 높이는 프로세스입니다. 워크로드가 신뢰할 수 있는 실행 환경(TEE)에서 실행 중인지 확인하는 데 중요한 도구입니다.

CPU 기반 증명

증명 보고서는 VM이 TEE에서 실행되고 있음을 보여주는 증거입니다. 이러한 키는 컨피덴셜 VM 인스턴스에서 생성되며, 사용되는 컨피덴셜 컴퓨팅 기술에 따라 소프트웨어 기반 vTPM 또는 전용 하드웨어 기반 신뢰할 수 있는 보안 모듈 (TSM)로 서명됩니다. 증명 보고서에는 컨피덴셜 VM 인스턴스의 상태와 ID를 확인하는 데 도움이 되는 부트로더 활동, 하드웨어 구성, 펌웨어 구성, 기타 부팅 시간 로그 이벤트와 관련된 측정값이 포함됩니다.

요청할 수 있는 증명 보고서 유형은 컨피덴셜 VM 인스턴스에서 사용하는 컨피덴셜 컴퓨팅 기술에 따라 다릅니다.

서명 소스 유형 보고서 범위 컨피덴셜 컴퓨팅 기술
SEV SEV-SNP Intel TDX
Google 관리 vTPM 소프트웨어 기반 vTPM 부트로더 활동, 커널 무결성
AMD Secure Processor 하드웨어 기반 TSM 하드웨어 및 펌웨어 환경
Intel TDX 모듈 하드웨어 기반 TSM 하드웨어 및 펌웨어 환경

증명 보고서 요청

다음 도구를 사용하여 Google 관리 vTPM, AMD의 보안 프로세서, Intel의 TDX 모듈에서 증명 보고서를 요청할 수 있습니다.

vTPM 증명 이벤트 로그의 GceNonHostInfo 이벤트는 사용 중인 컨피덴셜 컴퓨팅 기술을 보여줍니다. Go-TPM 도구는 AMD SEV-SNP가 사용되는 경우 AMD 보안 프로세서에서, Intel TDX가 사용되는 경우 Intel TDX 모듈에서 증명 보고서를 요청할 수 있습니다.

하드웨어 증명 보고서의 경우에만 다음 도구를 사용하여 TSM에 암호화 챌린지를 보낼 수 있습니다.

  • AMD SEV-SNP의 경우 SEV 게스트를 사용합니다. 버전 칩 보증 키 (VCEK) 인증서는 AMD의 키 배포 시스템 (KDS)에서 직접 요청하는 대신 VM에 캐시됩니다.

  • Intel TDX의 경우 TDX 게스트를 사용합니다.

Ubuntu의 Intel TDX

커널 1016 이상을 실행하는 Ubuntu 이미지의 경우 tdx_guest 모듈이 linux-modules-extra 패키지에 있습니다.

linux-modules-extra 패키지를 설치하려면 다음 명령어를 실행합니다.

sudo apt-get install linux-modules-extra-gcp

linux-modules-extra-gcp를 설치하는 중에 문제가 발생하면 다음 명령어를 실행하여 커널을 업데이트할 수 있습니다.

sudo apt-get upgrade

변경사항을 적용하려면 재부팅하거나 모듈을 수동으로 로드해야 합니다. 모듈을 수동으로 로드하려면 다음 명령어를 실행합니다.

sudo modprobe tdx_guest

Google Cloud Attestation으로 증명 보고서 확인

신뢰 모델에서 허용하는 경우 증명 검사기를 직접 작성하고 실행하는 대신 Google Cloud 증명을 사용할 수 있습니다. 이를 위해서는 Go-TPM 도구를 사용하여 컨피덴셜 VM 인스턴스의 vTPM에서 증명 견적을 가져와 Google Cloud Attestation으로 전송하여 확인해야 합니다. 인용문이 인증을 통과하면 Google Cloud 증명이 VM 정보가 포함된 토큰을 반환합니다. 이 토큰을 자체 정책과 비교하여 VM을 신뢰할 수 있는지 확인할 수 있습니다.

Google Cloud 증명은 AMD SEV 컨피덴셜 VM 인스턴스에서만 사용할 수 있습니다.

Google Cloud 증명 사용에 관한 엔드 투 엔드 예시는 기밀 가상 머신에서 vTPM 원격 증명 Codelab을 참고하세요.

GPU 기반 증명

GPU 증명에는 GPU 드라이버, GPU 기기 또는 둘 다를 확인하는 작업이 포함됩니다.

GPU 드라이버 증명

강력한 증명을 보장하려면 컨피덴셜 VM 인스턴스를 만들 때 보안 부팅을 사용 설정하세요.

보안 부팅을 사용하면 배포 서명된 GPU 드라이버만 로드할 수 있습니다. 이 확인은 GPU 드라이버가 NVIDIA에서 공식적으로 출시하고 제공하는지 확인하는 데 필수적입니다. 공식 드라이버는 GPU 기기와 안전한 보안 프로토콜 및 데이터 모델 (SPDM) 세션을 설정하고 NVIDIA GPU 기기 증명에 대한 신뢰할 수 있는 루트 역할을 하므로 중요합니다.

NVIDIA GPU 기기 증명

GPU 드라이버 증명 외에도 NVIDIA GPU 기기를 추가로 증명할 수 있습니다. NVIDIA GPU 기기 증명은 GPU에서 실행되는 동영상 BIOS(VBIOS)를 확인합니다. 이를 통해 NVIDIA 소프트웨어 버전을 식별하고 잠재적인 취약점의 존재를 평가할 수 있습니다.

NVIDIA GPU 기기 증명을 실행하려면 먼저 NVIDIA의 nvtrust 라이브러리를 설치한 다음 로컬 또는 원격 증명에 사용합니다.

API_LINK="https://api.github.com/repos/NVIDIA/nvtrust/tags"
LATEST_VER="$(curl -s "${API_LINK}" | jq -r '..name')"
DOWNLOAD_LINK="https://github.com/NVIDIA/nvtrust/archive/refs/tags/${LATEST_VER}.tar.gz"
echo "Downloading nvtrust version ${LATEST_VER}"
curl -L "${DOWNLOAD_LINK}" -o nvtrust.tar.gz
mkdir github_nvtrust
tar xvf nvtrust.tar.gz -C github_nvtrust
cd github_nvtrust/nvtrust-${LATEST_VER:1}
python3 -m venv./prodtest
source./prodtest/bin/activate

로컬 GPU 기기 증명

로컬 GPU 기기 증명은 VM 인스턴스에서 직접 증명 프로세스를 실행하고 결과를 로컬에서 확인하여 GPU의 무결성을 검증할 수 있도록 지원합니다.

로컬 GPU 기기 증명을 실행하려면 로컬 검사기 도구를 설치합니다. 자세한 내용은 인증자를 참고하세요.

원격 GPU 기기 증명

원격 GPU 기기 증명은 NVIDIA 원격 증명 서비스 (NRAS)를 사용하여 GPU의 무결성을 확인합니다. 이 프로세스를 통해 NVIDIA가 서명한 증명 토큰이 생성됩니다. 이 토큰은 서드 파티에 제공하여 GPU의 진위성과 무결성을 입증할 수 있으며, 민감한 정보 또는 리소스에 액세스하는 데 종종 필요합니다.

자세한 내용은 NVIDIA 증명 SDKNVIDIA 원격 증명 서비스 (NRAS)를 참고하세요.