認證程序可提高信心,確保 Confidential VM 執行個體是正當的,且運作狀態符合預期。這是重要工具,可驗證工作負載是否在受信任的執行環境 (TEE) 中執行。
以 CPU 為準的認證
認證報告是 VM 在 TEE 中執行的證據。這些報告是由 Confidential VM 執行個體產生,並視所用的機密運算技術而定,由軟體式 vTPM 或專用的硬體式受信任安全模組 (TSM) 簽署。認證報告包含與開機載入程式活動、硬體設定、韌體設定,以及其他開機時記錄的事件相關的測量結果,有助於驗證機密 VM 執行個體的狀態和身分。
可要求驗證報告的類型,取決於機密 VM 執行個體使用的機密運算技術。
簽署來源 | 類型 | 報表涵蓋範圍 | 機密運算技術 | ||
---|---|---|---|---|---|
SEV | SEV-SNP | Intel TDX | |||
Google 管理的 vTPM | 軟體式 vTPM | 系統啟動載入程式活動、核心完整性 | |||
AMD 安全處理器 | 以硬體為基礎的 TSM | 硬體和韌體環境 | |||
Intel TDX 模組 | 以硬體為基礎的 TSM | 硬體和韌體環境 |
要求認證報告
您可以使用下列工具,向 Google 管理的 vTPM、AMD 的安全處理器和 Intel 的 TDX 模組索取認證報告:
vTPM 認證事件記錄中的 GceNonHostInfo
事件會顯示目前使用的機密運算技術。如果使用 AMD SEV-SNP,Go-TPM 工具可以向 AMD Secure Processor 要求認證報告;如果使用 Intel TDX,則可以向 Intel TDX 模組要求認證報告。
如果只需要硬體認證報告,可以使用下列工具將加密挑戰傳送至 TSM:
如果是 AMD SEV-SNP,請使用「SEV Guest」。 版本晶片認可金鑰 (VCEK) 憑證會快取在 VM 上,而不是直接從 AMD 的金鑰發布系統 (KDS) 要求。
如果是 Intel TDX,請使用 TDX Guest。
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 遠端驗證」程式碼研究室。
以 GPU 為基礎的認證
GPU 驗證作業包括驗證 GPU 驅動程式、GPU 裝置,或兩者皆驗證。
GPU 驅動程式認證
為確保認證程序順利進行,請在建立 Confidential 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 驗證 SDK」和「NVIDIA 遠端驗證服務 (NRAS)」。