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

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

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

下列主題說明設定硬體安全模組 (HSM) 必須完成的步驟,以便加密管理員 (CO) 可以使用規定人數身分驗證。第一次針對 CO 設定規定人數身分驗證時,您只需要執行一次下列步驟。完成這些步驟之後,請參閱 對加密管理員使用規定人數身分驗證

必要條件

若要了解此範例,您應熟悉 cloudhsm_mgmt_util (CMU) 命令列工具。在此範例中, AWS CloudHSM 叢集有兩個 HSM,每個 HSM 具有相同的 CO,如下列listUsers命令輸出所示。如需有關建立使用者的詳細資訊,請參閱管理 HSM 使用者

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

建立和註冊用於簽署的金鑰

若要使用規定人數身分驗證,每個管理員都必須執行下列所有步驟:

建立 RSA 金鑰對

建立和保護金鑰對有許多不同的方式。下列範例示範使用 OpenSSL 的做法。

範例 – 使用 OpenSSL 建立私有金鑰

以下範例示範如何使用 OpenSSL 來建立受到密碼短語保護的 2048 位元 RSA 金鑰。若要使用這個範例,請將 officer1.key 以您要存放金鑰的檔案名稱來加以取代。

$ openssl genrsa -out officer1.key -aes256 2048 Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for officer1.key: Verifying - Enter pass phrase for officer1.key:

接下來,使用您剛建立的私有金鑰來產生公有金鑰。

範例 – 使用 OpenSSL 建立一個公有金鑰

下列範例會示範如何使用 OpenSSL 根據您剛建立的私有金鑰建立公有金鑰。

$ openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub Enter pass phrase for officer1.key: writing RSA key

建立並簽署註冊權杖

您可以建立一個權杖並使用在上一步中剛產生的私有金鑰簽署該權杖。

範例 – 建立權杖

註冊權杖只是一個最大不超過 245 位元組的任何隨機資料的檔案。您可以使用私有金鑰簽署權杖,以證明您可以訪問私有金鑰。下列命令使用 echo 將字串重新導向到一個檔案。

$ echo "token to be signed" > officer1.token

簽署權杖並將其儲存至簽章檔案。您需要已簽署的權杖、未簽署的權杖和公有金鑰,才能在 HSM 中將 CO 註冊為 MofN 使用者。

範例 – 簽署權杖

使用 OpenSSL 和私有金鑰來簽署註冊權杖並建立簽章檔案。

$ openssl dgst -sha256 \ -sign officer1.key \ -out officer1.token.sig officer1.token

用 HSM 註冊公有金鑰

建立金鑰之後,CO 必須向 HSM 註冊金鑰的公有部分 (公有金鑰)。

向 HSM 註冊公有金鑰
  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. 使用 registerQuorumPubKey 命令來註冊公有金鑰。如需詳細資訊,請參閱下列範例或使用 help registerQuorumPubKey 命令。

範例 – 向 HSM 註冊公有金鑰

下列範例顯示如何在 cloudhsm_mgmt_util 命令列工具中使用 registerQuorumPubKey 命令,以向 HSM 註冊 CO 的公有金鑰。若要使用此命令,CO 必須登入 HSM。以您自己的值取代這些值:

aws-cloudhsm> registerQuorumPubKey CO <officer1> <officer1.token> <officer1.token.sig> <officer1.pub> *************************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 registerQuorumPubKey success on server 0(10.0.2.14)
<officer1.token>

包含未簽署註冊權杖的檔案路徑。可包含最大 245 個位元組的任何隨機資料。

必要:是

<officer1.token.sig>

包含註冊權杖的 SHA256_PKCS 機制簽名雜湊的檔案路徑。

必要:是

<officer1.pub>

包含非對稱 RSA-2048 金鑰對的公有金鑰的檔案路徑。使用私有金鑰簽署註冊權杖。

必要:是

在所有 CO 註冊其公有金鑰之後,來自 listUsers 命令的輸出會在 MofnPubKey 欄中顯示此資訊,如下列範例所示。

aws-cloudhsm>listUsers Users on server 0(10.0.2.14): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO 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 Users on server 1(10.0.1.4): Number of users found:7 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PRECO 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

設定 HSM 上的規定人數最小值

若要對 CO 使用規定人數身分驗證,CO 必須登入 HSM,然後設定規定人數最小值,也稱為 m 值。這是執行 HSM 使用者管理操作所需的 CO 核准數下限。HSM 上的任何 CO (包括尚未註冊用於簽署的金鑰的 CO) 可以設定規定人數最小值。您隨時可以變更規定人數最小值。如需更多資訊,請參閱 變更最小值

設定 HSM 上的規定人數最小值
  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. 使用 setMValue 命令來設定規定人數最小值。如需詳細資訊,請參閱下列範例或使用 help setMValue 命令。

範例 – 設定 HSM 上的規定人數最小值

此範例使用值為 2 的規定人數最小值。您可以選擇二 (2) 到八 (8) 之間的任何值,最多可到 HSM 上的 CO 總數。在這個範例中,HSM 有 6 個 CO,因此最大的可能值為 6。

若要使用以下範例命令,請將最終數字 ( 2 ) 以您偏好的規定人數最小值加以取代。

aws-cloudhsm>setMValue 3 2 *************************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 Setting M Value(2) for 3 on 2 nodes

在上述範例中,第一個數字 (3) 表示您要設定之規定人數最小值的 HSM 服務

HSM 服務識別符及其名稱、說明和服務中包含的命令如下表所列。

服務識別符 服務名稱 服務描述 HSM 命令
3 USER_MGMT HSM 使用者管理
  • createUser

  • deleteUser

  • changePswd (僅在變更不同 HSM 使用者的密碼時適用)

4 MISC_CO 其他 CO 服務
  • setMValue

若要取得服務的規定人數最小值,請使用 getMValue 命令,如下列範例所示。

aws-cloudhsm>getMValue 3 MValue of service 3[USER_MGMT] on server 0 : [2] MValue of service 3[USER_MGMT] on server 1 : [2]

來自上述 getMValue 命令的輸出顯示 HSM 使用者管理操作 (服務 3) 的規定人數最小值現在是 2。

完成這些步驟之後,請參閱 對加密管理員使用規定人數身分驗證