KMU を使用して AWS CloudHSM RSA キーペアを生成する
AWS CloudHSM key_mgmt_util ツールの genRSAKeyPair コマンドを使用して、RSA
key_mgmt_util コマンドを実行する前に、key_mgmt_util を起動し、Crypto User (CU) として HSM に ログインする 必要があります。
ヒント
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、getAttribute を使用します。特定のユーザーのキーを見つけるには、getKeyInfo を使用します。属性値に基づいてキーを検索するには、findKey を使用します。
構文
genRSAKeyPair -h genRSAKeyPair -m
<modulus length>
-e<public exponent>
-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]
例
以下の例では、genRSAKeyPair を使用して非対称キーペアを HSM に作成する方法を示します。
例 : RSA キーペアを作成して検査する
このコマンドでは、モジュラス 2048 ビットで指数が 65537 の RSA キーペアを作成します。出力は、パブリックキーのハンドルが 2100177
、プライベートキーのハンドルが 2100426
であることを示しています。
Command:
genRSAKeyPair -m 2048 -e 65537 -l rsa_test
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 2100177 private key handle: 2100426 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS Node id 1 status: 0x00000000 : HSM Return: SUCCESS
次のコマンドでは、getAttribute を使用して、先ほど作成したパブリックキーの属性を取得します。出力の書き込み先は attr_2100177
ファイルです。この属性ファイルの内容を取得する cat コマンドが続けて実行されます。キー属性の解釈については、KMU の AWS CloudHSM キー属性リファレンス を参照してください。
結果の 16 進値は、RSA タイプ (OBJ_ATTR_CLASS
0x02
) のパブリックキー (OBJ_ATTR_KEY_TYPE 0x00
) であることを示しています。この公開キーを使用して暗号化 (OBJ_ATTR_ENCRYPT 0x01
) はできますが、復号 (OBJ_ATTR_DECRYPT 0x00
) を行うことはできません。結果には、キーの長さ (512、0x200
)、モジュラス、モジュラスの長さ (2048、0x800
)、およびパブリック指数 (65537、0x10001
) も含まれています。
Command:
getAttribute -o 2100177 -a 512 -out attr_2100177
Attribute size: 801, count: 26 Written to: attr_2100177 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
$
cat attr_2100177
OBJ_ATTR_CLASS 0x02 OBJ_ATTR_KEY_TYPE 0x00 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x01 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x01 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x00 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL rsa_test OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x00000200 OBJ_ATTR_KCV 0xc51c18 OBJ_ATTR_MODULUS 0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c 1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d 6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0 97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857 d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873 970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec b3e4203294a96fae06f8f0db7982cb5d7f OBJ_ATTR_MODULUS_BITS 0x00000800 OBJ_ATTR_PUBLIC_EXPONENT 0x010001 OBJ_ATTR_TRUSTED 0x00 OBJ_ATTR_WRAP_WITH_TRUSTED 0x00 OBJ_ATTR_DESTROYABLE 0x01 OBJ_ATTR_DERIVE 0x00 OBJ_ATTR_ALWAYS_SENSITIVE 0x00 OBJ_ATTR_NEVER_EXTRACTABLE 0x00
例 : 共有 RSA キーペアを生成する
次のコマンドでは、RSA キーペアを生成し、HSM の別の CU であるユーザー 4 とプライベートキーを共有します。コマンドでは、m_value
パラメータを使用して少なくとも 2 つの承認を要求した上で、ペアのプライベートキーを暗号化オペレーションで使用できるようにします。m_value
パラメータを使用する場合、コマンドで -u
も使用する必要があります。これにより、m_value
がユーザーの合計数 (-u
の数値 + 所有者) を超えないようにします。
Command:
genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 27 private key handle: 28 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
パラメータ
- -h
-
コマンドに関するヘルプを表示します。
必須: はい
- -m
-
モジュラスの長さをビット単位で指定します。最小値は 2048 です。
必須: はい
- -e
-
パブリック指数を指定します。値は、65537 以上の奇数にする必要があります
必須: はい
- -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
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。
デフォルト: 認証チェックなし。
必須:いいえ