使用 AMD SEV-SNP 進行認證
認證是一種程序,可讓您的執行個體證明其狀態和身分。當您為執行個體開啟 AMD SEV-SNP 時,可以向基礎處理器請求 AMD SEV-SNP 認證報告。AMD SEV-SNP 認證報告包含初始訪客記憶體內容的密碼編譯雜湊 (稱為啟動測量) 和初始 vCPU 狀態。認證報告採用 VLEK 簽章進行簽署,可以鏈接回 AMD 信任根源。您可以使用認證報告中包含的啟動測量來驗證執行個體是否在正版 AMD 環境中執行,並驗證用於啟動執行個體的初始啟動程式碼。
若要使用 AMD SEV-SNP 執行認證,請完成下列步驟。
步驟 1:取得認證報告
在此步驟中,您會安裝必要的工具,然後向處理器請求 AMD SEV-SNP 認證報告以及處理器的 VLEK 簽署金鑰。
-
您必須使用
sev-guest
公用程式向 CPU 請求認證報告。若要從 sev-guest repository安裝 sev-guest
公用程式,請執行下列命令。$
git clone https://github.com/AMDESE/sev-guest.git$
cd sev-guest$
make sev-guest-get-report$
make sev-guest-parse-report -
使用
sev-guest
公用程式請求認證報告和用於簽署認證報告的 VLEK 憑證。$
sudo ./sev-guest-get-report guest_report.bin -x該命令會建立兩個檔案:
-
guest_report.bin
– 已簽署的認證報告。 -
a8074bc2-a25a-483e-aae6-39c045a0b8a1
– 用於簽署認證報告的 VLEK 憑證,它採用可辨別編碼規則 (DER) 格式。
-
步驟 2:驗證認證報告的簽章
使用 AMD 專為 AWS 簽發的憑證 (稱為 Versioned Loaded Endorsement Key (VLEK)) 簽署認證報告。在此步驟中,您將驗證 VLEK 憑證是由 AMD 簽發,且認證報告透過該 VLEK 憑證進行簽署。
-
您必須使用
sev-tool
公用程式來驗證認證報告是否由 VLEK 憑證簽署。此公用程式要求認證報告和 VLEK 憑證位於名為/certs
的資料夾中。執行下列命令,建立/certs
目錄。$
sudo mkdir certs -
將 DER 編碼的 VLEK 憑證 (
a8074bc2-a25a-483e-aae6-39c045a0b8a1
) 轉換為sev-guest
公用程式所需的 PEM 格式。$
sudo openssl x509 -inform der -in a8074bc2-a25a-483e-aae6-39c045a0b8a1 -out certs/vcek.pemVLEK 憑證會寫入
/certs
目錄中名為vcek.pem
的新檔案。 -
從 AMD 官方網站將 VLEK 信任根憑證下載至
/certs
目錄。$
sudo curl --proto '=https' --tlsv1.2 -sSf https://kdsintf.amd.com/vlek/v1/Milan/cert_chain -o certs/cert_chain.pem -
使用
openssl
來驗證 VLEK 憑證是否由 AMD 信任根憑證簽署。$
sudo openssl verify --CAfile certs/cert_chain.pem certs/vcek.pem預期的輸出結果。
certs/vcek.pem: OK
-
將認證報告複製到
/certs
目錄。$
sudo cp guest_report.bin certs/ -
必須使用
sev-tool
公用程式來驗證認證報告簽章。執行以下命令,安裝sev-tool
公用程式。$
cd ..$
git clone https://github.com/AMDESE/sev-tool.git$
cd sev-tool$
autoreconf -vif && ./configure && make -
使用
sev-tool
公用程式來驗證認證報告由 VLEK 憑證簽署。$
sudo ./src/sevtool --ofolder ../sev-guest/certs --validate_guest_report預期的輸出結果。
Guest report validated successfully!