JCE専用KMSキーストア
専用KMS JCEプロバイダのキーストアについて学習します。
このトピックで説明するKeyStore Javaクラスは、キー・データの格納に使用され、これらをHSMクラスタに格納されているキー・データと関連付けます。また、証明書をメモリーに格納する機能も提供します。
専用KMS KeyStore
DedicatedKMSKeyStoreは、KeyStoreSpi Javaクラスを拡張します。次のようにDedicatedKmsKeyStoreオブジェクトを作成します。
`KeyStore ks = KeyStore.getInstance(DedicatedKmsProvider.DEDICATED_KMS_KEYSTORE_TYPE);`
このKeyStoreには、次の機能があります。
| 機能 | 説明 |
|---|---|
| 別名 | ローカル・メモリーベース・ストアで見つかったすべての別名を返します。 |
| containsAlias | getKeyと同様に、この関数はまずローカル・メモリーベースのストアを検索し、次にHSMで指定した別名の一致を検索します。 |
| deleteEntry | 指定された別名をローカル・メモリーベース・ストアから削除します。鍵はHSM上で存続します。HSM内のキーを削除するには、DedicatedKmsKeyクラスの関数destroyを使用するか、キー管理ユーティリティのdeleteKeyコマンドを使用します。 |
| getCertificate | 指定された別名の証明書を取得します。 |
| getCertificateAlias | 指定された証明書が、ローカル・メモリーベースのストアに格納されている証明書と一致するかどうかを確認します。 |
| getCertificateChain | 指定された別名の証明書のチェーンを取得します。 |
| getCreationDate | 指定されたキーがローカル・メモリーベースのストアに追加された日付を返します。 |
| getKey | 指定された別名に関連付けられたキーをキーストアから取得します。この関数は、最初にローカルメモリーベースのストアから鍵を取得しようとします。キーが見つからない場合、専用KMSはハードウェア・セキュリティ・モジュール(HSM)で、サポートされているキー・タイプを検索します。HSMでは一意キー・ラベルが強制されないため、複数のキーが見つかった場合は、ランダムな非公開キーが返されます。 |
| isCertificateEntry | 指定された別名が証明書エントリに関連付けられているかどうかを示します。 |
| isKeyEntry | 指定された別名がキー・エントリに関連付けられているかどうかを示します。getKeyと同様に、この関数はまずローカル・メモリーベースのストアを検索し、次にHSMで指定したキー・エントリの一致を検索します。 |
| ロード | 指定された入力ストリームからキーストアをロードします。 |
| setCertificateEntry | 指定された証明書を別名に割り当て、その証明書をローカルメモリーベースのストアに格納します。 |
| setKeyEntry (キー・オブジェクトあり) | 指定されたキーを別名に割り当て、そのキーをローカル・メモリーベースのストアおよびHSMに格納します。 |
| setKeyEntry (byte[]キーあり) | このAPIはサポートされていません。 |
| サイズ | ローカル・メモリーベース・ストアのエントリ数を取得します。 |
| ストア | キーストアを指定された出力ストリームに格納します。 |
専用KMS拡張KeyStore
DedicatedKmsExtendedKeystoreは、DedicatedKmsExtendedKeyStoreSpi Javaクラスを拡張します。次のようにDedicatedKmsExtendedKeyStoreオブジェクトを作成します。
`DedicatedKmsExtendedKeystore keyStore = DedicatedKmsExtendedKeystore.getInstance(DedicatedKmsProvider.DEDICATED_KMS_KEYSTORE_TYPE);`
このKeyStoreには、次の機能があります。
| 機能 | 説明 |
|---|---|
| findKey | 指定された別名、キー・タイプ(RSA、EC、AES、DES3など)およびキー・オブジェクト・タイプ(PUBLIC_KEY、PRIVATE_KEY、SECRET_KEYなど)に一致するランダム・キーをハードウェア・セキュリティ・モジュール(HSM)で検索します。 |
| findKeys | 指定された別名、キー・タイプ(exmaple、RSA、EC、AESまたはDES3の場合)およびキー・オブジェクト・タイプ(PUBLIC_KEY、PRIVATE_KEY、SECRET_KEYなど)に一致するハードウェア・セキュリティ・モジュール(HSM)内のすべてのキーを検索します。 |