KMU を使用して AWS CloudHSM ECC キーペアを生成する
AWS CloudHSM key_mgmt_util ツールの genECCKeyPair
コマンドを使用して、ハードウェア セキュリティ モジュール (HSM) で楕円曲線暗号genECCKeyPair
コマンドを実行するときは、楕円曲線識別子とキーペアのラベルを指定する必要があります。また、他の CU ユーザーとプライベートキーを共有したり、抽出可能なキー、クォーラム制御キー、およびセッション終了時に失効するキーを作成したりできます。コマンドが成功すると、HSM がパブリックおよびプライベートの ECC キーに割り当てるキーハンドルが返されます。このキーハンドルでキーを識別することで、他のコマンドでキーを使用できます。
key_mgmt_util コマンドを実行する前に、key_mgmt_util を起動し Crypto User (CU) として HSM に ログインする 必要があります。
ヒント
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、getAttribute を使用します。特定のユーザーのキーを見つけるには、getKeyInfo を使用します。属性値に基づいてキーを検索するには、findKey を使用します。
構文
genECCKeyPair -h genECCKeyPair -i <EC curve id> -l <label> [-id <key ID>] [-min_srv <minimum number of servers>] [-m_value <0..8>] [-nex] [-sess] [-timeout <number of seconds> ] [-u <user-ids>] [-attest]
例
以下の例では、genECCKeyPair を使用して ECC キーペアを HSM に作成する方法を示します。
例 : ECC キーペアを作成して検査する
次のコマンドでは、NID_secp384r1 楕円曲線と ecc14
ラベルを使用して ECC キーペアを作成します。出力は、プライベートキーのキーハンドルが 262177
、パブリックキーのキーハンドルが 262179
であることを示しています。ラベルは、パブリックキーとプライベートキーの両方に適用されます。
Command:
genECCKeyPair -i 14 -l ecc14
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 262179 private key handle: 262177 Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
キーを生成した後、その属性を調べることができます。次のコマンドでは、getAttribute を使用して新しい ECC プライベートキーのすべての属性 (定数 512
で表される) を attr_262177
ファイルに書き込みます。
Command:
getAttribute -o 262177 -a 512 -out attr_262177
got all attributes of size 529 attr cnt 19 Attributes dumped into attr_262177 Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
次に、cat
コマンドを使用して、attr_262177
属性ファイルの内容を表示します。出力は、キーが楕円曲線プライベートキーであり、このキーは署名には使用できるが、暗号化、復号、ラップ、ラップ解除には使用できないことを示しています。キーは永続的で、エクスポート可能です。
$
cat attr_262177
OBJ_ATTR_CLASS 0x03 OBJ_ATTR_KEY_TYPE 0x03 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x00 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x01 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL ecc2 OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x0000008a OBJ_ATTR_KCV 0xbbb32a OBJ_ATTR_MODULUS 044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5 OBJ_ATTR_MODULUS_BITS 0x0000019f
例 無効な EEC 曲線の使用
次のコマンドでは、NID_X9_62_prime192v1 曲線を使用して ECC キーペアの作成を試行します。この楕円曲線は FIPS モードの HSM に対して無効であるため、コマンドは失敗します。クラスターのサーバーが使用不可であることがメッセージで報告されますが、通常、これはクラスターのサーバーに問題があることを示すものではありません。
Command:
genECCKeyPair -i 1 -l ecc1
Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies Cluster Error Status Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable
パラメータ
- -h
-
コマンドに関するヘルプを表示します。
必須: はい
- -i
-
楕円曲線の識別子を指定します。識別子を入力します。
有効な値:
-
2: NID_X9_62_prime256v1
-
14: NID_secp384r1
-
16: NID_secp256k1
必須: はい
-
- -I
-
キーペアのユーザー定義ラベルを指定します。文字列を入力します。同じラベルがペアの両方のキーに適用されます。
label
の最大長は 127 文字です。キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。
必須: はい
- -id
-
キーペアのユーザー定義識別子 (ID) を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。指定した ID は、ペアの両方のキーに適用されます。
デフォルト: ID 値なし。
必須:いいえ
- -min_srv
-
-timeout
パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。AWS CloudHSM は、どのキーもクラスターのすべての HSM に自動的に同期します。プロセスを高速化するため、
min_srv
の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。デフォルト: 1
必須:いいえ
- -m_value
-
ペアの秘密キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。
0
から8
までの値を入力します。このパラメータにより、プライベートキーのクォーラム認証要件が確立されます。デフォルト値、
0
で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーがトークンに署名して、プライベートキーを使用する暗号化オペレーション、およびプライベートキーを共有または共有解除するオペレーションを承認する必要があります。キーの
m_value
を見つけるには、getKeyInfo を使用します。このパラメーターは、コマンドの
-u
パラメーターがm_value
要件を満たすのに十分なユーザーとキーペアを共有している場合にのみ有効です。デフォルト: 0
必須:いいえ
- -nex
-
プライベートキーを抽出できなくなります。生成されたプライベートキーを HSM からエクスポートする ことはできません。公開キーは常に抽出可能です。
デフォルト: キーペアの公開キーとプライベートキーの両方が抽出可能です。
必須:いいえ
- -sess
-
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。
セッションキーを永続(トークン)キーに変更するには、setAttribute を使用します。
デフォルト: キーは永続的です。
必須:いいえ
- -timeout
-
キーが
min_srv
パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。このパラメータは、
min_srv
パラメータがコマンドでも使用されている場合にのみ有効です。デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。
必須:いいえ
- -u
-
ペアのプライベートキーを指定されたユーザーと共有します。このパラメータは、他の HSM Crypto User (CU) に暗号化オペレーションでプライベートキーを使用する許可を与えます。公開キーは、共有なしですべてのユーザーが使用可能です。
( -
u 5,6
などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、listUsers を使用します。既存のキーを共有および共有解除するには、cloudhsm_mgmt_util で shareKey を使用します。デフォルト: 現在のユーザーのみがプライベートキーを使用できます。
必須:いいえ
- -attest
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。
デフォルト: 認証チェックなし。
必須:いいえ