獲取 NitroTPM 驗證文件
驗證文件是 NitroTPM 驗證程序的關鍵元件。該文件包含一系列密碼編譯衡量項,可用於確認執行個體身分,以及證明其僅執行可信軟體。您可搭配 AWS KMS 使用驗證文件,這可針對 NitroTPM 驗證提供內建支援,或者建置您自己的密碼編譯驗證機制。
使用 nitro-tpm-attest 公用程式,您可在執行時期針對 Amazon EC2 執行個體,擷取簽署的 NitroTPM 驗證文件。
範例 Amazon Linux 2023 映像說明可在 /usr/bin/ 目錄的建置映像中,自動安裝公用程式。這樣一來,確保公用程式會預先安裝在使用 AMI 啟動的執行個體上。您無須手動安裝公用程式。如需更多詳細資訊,請參閱 建置範例 Amazon Linux 2023 映像說明。
安裝 nitro-tpm-attest 公用程式
若使用 Amazon Linux 2023,則您可如下所示透過 Amazon Linux 儲存庫安裝 nitro-tpm-attest 公用程式。
sudo yum install aws-nitro-tpm-tools
使用 nitro-tpm-attest 公用程式
公用程式提供單一命令 nitro-tpm-attest,以便擷取驗證文件。命令可傳回以 Concise Binary Object Representation (CBOR) 編碼,以及使用 CBOR 物件簽署及加密 (COSE) 簽署的驗證文件。
當您執行命令時,可以指定下列選用參數:
-
public-key– AWS KMS 或外部服務用於在回應資料傳回之前進行加密的公有金鑰。該金鑰可確保僅擁有私有金鑰的預期收件者才可對資料解密。舉例來說,若透過 AWS KMS 進行驗證,服務可透過驗證文件中的公有金鑰對純文字資料進行加密,以及在回應的CiphertextForRecipient欄位傳回產生的密文。僅支援 RSA 金鑰。 -
user-data– 使用者資料可用於傳遞任何額外簽署的資料至外部服務。可使用此使用者資料,完成請求執行個體與外部服務間達成的協定。不用於透過 AWS KMS 進行驗證。 -
nonce– 可使用 nonce 在執行個體與外部服務間設定質詢-回應驗證,以便協助阻止模擬攻擊。使用 nonce 可讓外部服務確認其是否與即時執行個體,而非與重複使用舊驗證文件的冒充者互動。不用於透過 AWS KMS 進行驗證。
如需擷取驗證文件
請使用下列命令和選用參數:
/usr/bin/nitro-tpm-attest \ --public-keyrsa_public_key\ --user-datauser_data\ --noncenonce
若要了解展示如何生成 RSA 金鑰對,以及如何透過公有金鑰來請求驗證的完整範例,請參閱 nitro-tpm-attest GitHub 儲存庫