キーストレージプロバイダー (KSP) を AWS CloudHSM クライアント SDK 3 からクライアント SDK 5 に移行する - AWS CloudHSM

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

キーストレージプロバイダー (KSP) を AWS CloudHSM クライアント SDK 3 からクライアント SDK 5 に移行する

このトピックでは、キーストレージプロバイダー (KSP) を AWS CloudHSM クライアント SDK 3 からクライアント SDK 5 に移行する方法について説明します。移行の利点については、「」を参照してくださいAWS CloudHSM クライアント SDK 5 の利点

では AWS CloudHSM、 AWS CloudHSM クライアントソフトウェア開発キット (SDK) を使用して暗号化オペレーションを実行します。クライアント SDK 5 は、新機能とプラットフォームサポートの更新を受け取るプライマリ SDK です。

すべてのプロバイダーの移行手順については、「」を参照してくださいAWS CloudHSM クライアント SDK 3 からクライアント SDK 5 への移行

クライアント SDK 5 への移行

  1. Windows Server インスタンスにクライアント SDK 5 キーストレージプロバイダー (KSP) をインストールします。手順については、「AWS CloudHSM クライアント SDK 5 のキーストレージプロバイダー (KSP) をインストールする」を参照してください。

  2. 新しい設定ファイル形式とコマンドラインブートストラップツールを使用して、クライアント SDK 5 キーストレージプロバイダー (KSP) を設定します。手順については、「クライアント SDK をブートストラップする」を参照してください。

  3. AWS CloudHSM クライアント SDK 5 のキーストレージプロバイダー (KSP) には、SDK3 で生成されたキーリファレンスファイルをサポートする SDK3 互換モードが含まれています。詳細については、「のキーストレージプロバイダー (KSP) の SDK3 互換性モード AWS CloudHSM」を参照してください。

    注記

    クライアント SDK3 でクライアント SDK 3 が生成したキーリファレンスファイルを使用する場合は、SDK3 互換モードを有効にする必要があります。

新しい Windows Server インスタンスへの移行

  1. 「新しい Windows Server インスタンスでクライアント SDK 5 に移行する」のすべてのステップを完了します。

  2. 既存のキーリファレンスファイルを確認する

    元の Windows Server インスタンスで、 でキーリファレンスファイルを確認しますC:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition

    • キーリファレンスファイルが存在する場合は、 C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP を含む のすべてのコンテンツを新しい Windows Server インスタンスのGlobalPartition同じディレクトリパスにコピーします。ディレクトリが存在しない場合は作成します。

    • キーリファレンスファイルが存在しない場合は、新しい Windows Server インスタンスcloudhsm-cli key generate-file --encoding ksp-key-referenceで を使用して作成します。手順については、「KSP キーリファレンスの生成 (Windows)」を参照してください。

  3. ルート証明書の検証

    信頼できるルート認証機関でルート証明書を確認します。

    PS C:\Users\Administrator\Desktop> certutil -store Root Root "Trusted Root Certification Authorities" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Issuer: CN=MYRootCA Signature matches Public Key Root Certificate: Subject matches Issuer Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
    注記

    次のステップで使用する証明書のシリアル番号を書き留めます。

  4. ルート証明書をエクスポートする

    ルート証明書をファイルにエクスポートします。

    certutil -store Root certificate-serial-number root-certificate-name.cer
  5. HSM バックエンド証明書を検証する

    個人用証明書ストアで HSM バックエンド証明書を確認します。

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash Key Container = key-container-name Provider = Cavium Key Storage Provider Private key is NOT exportable Encryption test passed CertUtil: -store command completed successfully.
    注記

    次のステップで使用する証明書のシリアル番号を書き留めます。

  6. HSM バックエンド証明書をエクスポートする

    HSM バックエンド証明書をファイルにエクスポートします。

    certutil -store My certificate-serial-number signed-certificate-name.cer
  7. ルート証明書をインポートする

    新しい Windows インスタンスの場合:

    1. ルート CA ファイルを新しい Windows インスタンスにコピーする

    2. 証明書をインポートします。

      certutil -addstore Root root-certificate-name.cer
  8. ルート証明書のインストールを確認する

    ルート証明書が正しくインストールされていることを確認します。

    PS C:\Users\Administrator\Desktop> certutil -store Root Root "Trusted Root Certification Authorities" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Issuer: CN=MYRootCA Signature matches Public Key Root Certificate: Subject matches Issuer Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
  9. HSM バックエンド証明書をインポートする

    新しい Windows インスタンスの場合:

    1. HSM バックエンド証明書を新しい Windows インスタンスにコピーする

    2. 証明書をインポートします。

      certutil -addstore My signed-certificate-name.cer
  10. HSM バックエンド証明書のインストールを検証する

    HSM バックエンド証明書が正しくインストールされていることを確認します。

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash No key provider information Cannot find the certificate and private key for decryption. CertUtil: -store command completed successfully.
    注記

    後続のステップで使用する証明書のシリアル番号を書き留めます。

  11. キーリファレンスファイルを作成する (オプション)

    新しいキーリファレンスファイルを作成する必要がある場合にのみ、このステップを完了します。それ以外の場合は、次のステップに進みます。

    注記

    この機能は SDK バージョン 5.16.0 以降でのみ使用できます。

    1. OpenSSL をインストールし、モジュラスを抽出します。

      openssl x509 -in signed-certificate-name.cer -modulus -noout
      注記

      OpenSSL コマンドは、モジュラスを の形式で出力しますModulus=modulus-value。次のコマンドで使用する modulus-value を書き留めます。

    2. CloudHSM CLI を使用してキーリファレンスファイルを作成します。「」を参照してくださいKSP キーリファレンスの生成 (Windows)

      & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" key generate-file --encoding ksp-key-reference --filter attr.class=private-key attr.modulus=0xmodulus-value
      注記

      CloudHSM CLI コマンド引数のモジュラス値には、16 進数形式を示す0xためにプレフィックスを付ける必要があります。

      キーリファレンスファイルは で作成されますC:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition

  12. 修復設定を作成する

    以下の内容で repair.txt という名前のファイルを作成します。

    [Properties] 11 = "" ; Add friendly name property 2 = "{text}" ; Add Key Provider Information property _continue_="Container=key-container-name&" _continue_="Provider=Cavium Key Storage Provider&" _continue_="Flags=0&" _continue_="KeySpec=2"
    注記

    key-container-name を のキーリファレンスファイル名に置き換えますC:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition

  13. 証明書ストアを修復する

    修復コマンドを実行します。

    certutil -repairstore My certificate-serial-number repair.txt
    注記

    証明書のシリアル番号は、HSM バックエンド証明書のインストールを確認する前のステップから取得されます。

  14. 証明書の関連付けを検証する

    証明書が正しく関連付けられていることを確認します。

    PS C:\Users\Administrator\Desktop> certutil -store My my "Personal" ================ Certificate 0 ================ Serial Number: certificate-serial-number Issuer: CN=MYRootCA NotBefore: 2/5/2020 1:38 PM NotAfter: 2/5/2021 1:48 PM Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US Non-root Certificate Cert Hash(sha1): cert-hash Key Container = key-container-name Provider = Cavium Key Storage Provider Private key is NOT exportable ERROR: Could not verify certificate public key against private key CertUtil: -store command completed successfully.

    出力に以下が表示されていることを確認します。

    • 正しいキーコンテナ名

    • Cavium キーストレージプロバイダー

    • ERROR: Could not verify certificate public key against private key は既知の問題です。「」を参照してください。 問題: 証明書ストアの検証が失敗する

  15. アプリケーションをテストする

    移行を完了する前に:

    1. 開発環境でアプリケーションをテストする

    2. コードを更新して重大な変更を解決する

    3. アプリケーション固有のガイダンスについては、「」を参照してください。 AWS CloudHSMとサードパーティアプリケーションの統合

移行を検証する

移行ステップが完了したら、以下を確認します。

  • 証明書が正しい証明書ストアに正しくインストールされている

  • キーリファレンスファイルが正しい場所に存在する

  • アプリケーションは、移行された証明書を使用して暗号化オペレーションを実行できます。

トラブルシューティング

移行中に問題が発生した場合は、以下を確認します。

  • すべての証明書がソースシステムから適切にエクスポートされている

  • 証明書のシリアル番号がシステム間で一致

  • repair.txt ファイル内のキーコンテナ名がキーリファレンスファイルと一致する

  • SDK3 でSDK3-generated 互換モードが有効になります

関連トピック