對加密管理員使用規定人數身分驗證 - AWS CloudHSM

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對加密管理員使用規定人數身分驗證

HSM 上的加密管理員 (CO) 可以針對 HSM 上的以下操作設定規定人數身分驗證:

  • 建立 HSM 使用者

  • 刪除 HSM 使用者

  • 變更另一個 HSM 使用者的密碼

在將 HSM 設定為使用規定人數身分驗證之後,CO 無法自行執行 HSM 使用者管理操作。以下範例示範當 CO 嘗試在 HSM 上建立新使用者時的輸出。命令失敗,出現 RET_MXN_AUTH_FAILED 錯誤,這表示規定人數身分驗證失敗。

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes createUser failed: RET_MXN_AUTH_FAILED creating user on server 0(10.0.2.14) failed Retry/Ignore/Abort?(R/I/A):A

若要執行 HSM 使用者管理操作,CO 必須完成下列工作:

如果您尚未將 HSM 設定為使用 CO 的規定人數身分驗證,請立即設定。如需詳細資訊,請參閱 首次設定

取得規定人數字符

首先,CO 必須使用 cloudhsm_mgmt_util 命令列工具,以請求規定人數權杖

取得規定人數權杖
  1. 使用下列命令來啟動 cloudhsm_mgmt_util 命令列工具。

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  2. 使用 loginHSM 命令以 CO 身分登入 HSM。如需詳細資訊,請參閱 使用 CloudHSM 管理公用程式 (CMU) 管理 HSM 使用者

  3. 使用 getToken 命令來取得規定人數權杖。如需詳細資訊,請參閱下列範例或使用 help getToken 命令。

範例 – 取得規定人數字符

此範例會取得使用者名稱 officer1 之 CO 的規定人數字符,並將字符儲存至名為 officer1.token 的檔案。若要使用範例命令,請將這些值取代為您自己的值:

  • officer1:取得權杖的 CO 名稱。此使用者必須是登入到 HSM 的相同 CO 並正在執行此命令。

  • officer1.token:用於存放規定人數權杖的檔案名稱。

在以下命令中,3 會識別您可以對其使用要取得字符的服務。在此情況下,此字符可用於 HSM 使用者管理操作 (服務 3)。如需詳細資訊,請參閱 設定 HSM 上的規定人數最小值

aws-cloudhsm>getToken 3 officer1 officer1.token getToken success on server 0(10.0.2.14) Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 getToken success on server 1(10.0.1.4) Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1

取得核准 CO 的簽章

具有規定人數字符的 CO 必須取得其他 CO 核准的字符。為了提供核准,其他 CO 會使用其簽署金鑰來以密碼編譯形式簽署字符。他們會在 HSM 外部執行此操作。

簽署權杖的方式有很多。下列範例示範使用 OpenSSL 的做法。若要使用不同的簽署工具,請確定工具使用 CO 的私有金鑰 (簽署金鑰) 來簽署字符的 SHA-256 摘要。

範例 – 取得核准 CO 的簽章

在這個範例中,具有字符 (officer1) 的 CO 需要至少兩個核准。以下範例命令示範兩個 CO 如何使用 OpenSSL 來以密碼編譯方式簽署字符。

在第一個命令中,officer1 會簽署自己的字符。若要使用下列範例命令,請將這些值取代為您自己的值:

  • officer1.keyofficer2.key:包含 CO 簽署金鑰的檔案名稱。

  • officer1.token.sig1officer1.token.sig2:用於存放簽章的檔案名稱。務必將每個簽章儲存在不同的檔案中。

  • officer1.token:包含 CO 要簽署的權杖的檔案名稱。

$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.token Enter pass phrase for officer1.key:

在以下命令中,officer2 會簽署相同的字符。

$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.token Enter pass phrase for officer2.key:

在 HSM 上核准簽署的權杖

CO 在向其他 CO 取得最低數量的核准 (簽章) 後,必須在 HSM 上核准簽署的字符。

在 HSM 上核准簽署的字符
  1. 建立字符核准檔案。如需詳細資訊,請參閱下列範例。

  2. 使用下列命令來啟動 cloudhsm_mgmt_util 命令列工具。

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  3. 使用 loginHSM 命令以 CO 身分登入 HSM。如需詳細資訊,請參閱 使用 CloudHSM 管理公用程式 (CMU) 管理 HSM 使用者

  4. 使用 approveToken 命令來核准已簽署的字符,以便傳遞字符核准檔案。如需詳細資訊,請參閱下列範例。

範例 – 在 HSM 上建立權杖核准檔案和核准簽署的權杖

字符核准檔案是一個文字檔案,採用 HSM 要求的特定格式。該檔案包含有關該字符、其核准者和核准者簽章的資訊。以下範例示範的是範例字符核准檔案。

# For "Multi Token File Path", type the path to the file that contains # the token. You can type the same value for "Token File Path", but # that's not required. The "Token File Path" line is required in any # case, regardless of whether you type a value. Multi Token File Path = officer1.token; Token File Path = ; # Total number of approvals Number of Approvals = 2; # Approver 1 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer1; Approval File = officer1.token.sig1; # Approver 2 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer2; Approval File = officer1.token.sig2;

建立字符核准檔案之後,CO 會使用 cloudhsm_mgmt_util 命令列工具來登入 HSM。接著 CO 會使用 approveToken 命令來核准字符,如下列範例所示。將 approval.txt 取代為字符核准檔案的名稱。

aws-cloudhsm>approveToken approval.txt approveToken success on server 0(10.0.2.14) approveToken success on server 1(10.0.1.4)

此命令成功時,HSM 即已核准規定人數字符。若要檢查字符的狀態,請使用 listTokens 命令,如下列範例所示。命令的輸出顯示字符擁有所需的核准數。

字符有效時間指出字符會維持在 HSM 上的保證時間。即使已超過字符有效時間 (零秒),您仍可以繼續使用該字符。

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 ===================== Server 1(10.0.1.4) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 listTokens success

針對使用者管理操作使用權杖

在 CO 具有所需核准數的字符之後,如先前區段中所示,CO 可以執行以下其中一個 HSM 使用者管理操作:

  • 使用 createUser 命令建立 HSM 使用者

  • 使用 deleteUser 命令來刪除 HSM 使用者

  • 使用 changePswd 命令來變更不同 HSM 使用者的密碼

如需使用這些命令的詳細資訊,請參閱管理 HSM 使用者

CO 僅可以使用該字符來進行一個操作。當該操作成功,該字符即不再有效。為了執行其他 HSM 使用者管理操作,CO 必須取得新的規定人數字符、向核准者取得新簽章,並在 HSM 上核准該新字符。

注意

MofN 權杖僅在您目前的登入工作階段開啟時才有效。如果您登出 cloudhsm_mgmt_util 或網路連線中斷連線,則該權杖會失效。同樣地,授權的權杖只能在 cloudhsm_mgmt_util 中使用,而不能用於其他應用程式中進行身分驗證。

在下列範例命令中,CO 會在 HSM 上建立新使用者。

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes

先前命令成功之後,後續的 listUsers 命令會顯示新使用者。

aws-cloudhsm>listUsers Users on server 0(10.0.2.14): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO Users on server 1(10.0.1.4): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO

如果 CO 嘗試執行其他 HSM 使用者管理操作,會因為規定人數身分驗證錯誤而失敗,如以下範例所示。

aws-cloudhsm>deleteUser CU user1 Deleting user user1(CU) on 2 nodes deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 0(10.0.2.14) Retry/rollBack/Ignore?(R/B/I):I deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 1(10.0.1.4) Retry/rollBack/Ignore?(R/B/I):I

listTokens 命令顯示 CO 沒有已核准的憑證,如下列範例所示。為了執行其他 HSM 使用者管理操作,CO 必須取得新的規定人數字符、向核准者取得新的簽章,並在 HSM 上核准該新字符。

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== Num of tokens = 0 ===================== Server 1(10.0.1.4) ===================== Num of tokens = 0 listTokens success