Intel TDX 컨피덴셜 VM 인스턴스가 실행 중인지 확인하려면 Google Cloud, provenance를 설정해야 합니다. 출처를 설정하려면 다음 검사를 실행합니다.
따옴표 확인 및 챌린지 결합: 삽입된 Intel 루트 인증서를 사용하여 Intel TDX 따옴표의 신뢰성을 확인하고, 필요에 따라 따옴표의 예상되는 챌린지에 대해 새로고침을 확인합니다.
REPORT_DATA필드.호스트 출처 확인: 플랫폼 프로비저닝 ID (PPID) 를 따옴표의 삽입된 PCK 인증서에서 추출합니다. PPID를 사용하여 Cloud Storage 버킷에서 호스트 레지스트리 JSON 문서를 가져와 출처를 확인합니다.
인스턴스 출처 확인: 컨피덴셜 VM 인스턴스의 프로젝트 번호, 영역, 인스턴스 ID (PZID)를 사용하여 SHA-384 다이제스트를 계산한 후 다이제스트가
MR_OWNER필드 값과 일치하는지 확인합니다.
원격으로 출처 확인
Intel TDX 머신의 출처를 확인하려면
gceprovenance
도구를 사용하는 것이 좋습니다. 이 도구는 필요한 값을 추출하고 출처 문서를 가져오는 작업을 자동화합니다.
gceprovenance를 사용하여 원격으로 출처를 확인하려면 다음 안내를 따르세요.
go-tdx-guestGitHub 저장소를 원격 검증 도구에 클론합니다.git clone https://github.com/google/go-tdx-guest.git게스트 운영체제에 따라
go-tdx-guest에서 도구를 빌드하기 위해 일부 Go 종속 항목을 설치해야 할 수 있습니다. 이 작업은 운영체제에 따라 다릅니다. 예를 들어 다음 명령어는 Ubuntu에 필요한 종속 항목을 설치합니다.sudo apt update sudo apt install golang-go build-essentialgceprovenance도구를 빌드합니다.go build -C go-tdx-guest/tools/gceprovenance .Intel TDX 컨피덴셜 VM 인스턴스가 따옴표에 결합해야 하는 64바이트 챌린지를 생성합니다.
head -c 64 /dev/urandom > challenge.bin확인하려는 Intel TDX 컨피덴셜 VM 인스턴스에 챌린지 파일을 보냅니다.
Intel TDX 컨피덴셜 VM 인스턴스에서 챌린지 파일을
/sys/kernel/config/tsm/report/의 Linux ConfigFS에 입력(inblob)으로 전달합니다.sudo mkdir -p /sys/kernel/config/tsm/report/report0 sudo sh -c 'cat challenge.bin > /sys/kernel/config/tsm/report/report0/inblob'그러면 시스템에서 챌린지를 따옴표의
REPORT_DATA필드에 씁니다.결과
outblob파일에서 원시 따옴표 바이트를 가져오고report0디렉터리를 정리합니다.sudo cat /sys/kernel/config/tsm/report/report0/outblob > quote.bin sudo rmdir /sys/kernel/config/tsm/report/report0로컬 메타데이터 서버를 쿼리하여 컨피덴셜 VM 인스턴스의 인스턴스 ID, 프로젝트 번호, 영역을 가져옵니다.
PROJECT_NUMBER=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google") INSTANCE_ID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/instance/id" -H "Metadata-Flavor: Google") ZONE_PATH=$(curl -s "http://metadata.google.internal/computeMetadata/v1/instance/zone" -H "Metadata-Flavor: Google") ZONE=$(basename "$ZONE_PATH")따옴표 바이너리 (
quote.bin), 프로젝트 번호, 인스턴스 ID, 영역을 원격 검증 도구에 보냅니다.원격 검증 도구에서 챌린지를 128자 16진수 문자열로 변환한 후
gceprovenance에 전달합니다. 그러면 도구에서 따옴표의 서명 및 출처 결합을 확인합니다.CHALLENGE_HEX=$(hexdump -v -e '/1 "%02x"' challenge.bin) ./go-tdx-guest/tools/gceprovenance/gceprovenance verify \ -quote PATH_TO_QUOTE \ -instance projects/PROJECT_NUMBER/zones/ZONE/instances/INSTANCE_ID \ -challenge $CHALLENGE_HEX다음을 제공합니다.
PATH_TO_QUOTE: 제공된 따옴표 파일의 경로입니다.PROJECT_NUMBER: 제공된 프로젝트 번호입니다.ZONE: 제공된 영역입니다.INSTANCE_ID: 제공된 컨피덴셜 VM 인스턴스 ID입니다.
go-tdx-guest성공적인 응답은 다음과 같습니다.
GCE TDX provenance verification: OK Instance Zone: ZONE Project: PROJECT_NUMBER Instance ID: INSTANCE_ID Checks Quote verification: OK REPORT_DATA challenge: OK Host registry document: found PZID binding: OK PPID: PPID Quote: tdx_quote.bin Host registry: host_registry.json
다른 gceprovenance 명령어는
GitHub 저장소를 참고하세요.