SignTool で Microsoft を使用してファイルに署名 AWS CloudHSM する - AWS CloudHSM

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

SignTool で Microsoft を使用してファイルに署名 AWS CloudHSM する

暗号化およびパブリックキーインフラストラクチャ (PKI) では、デジタル署名を使用して、データが信頼できるエンティティによって送信されたことを確認します。署名は、データが送信中に改ざんされていないことも示します。署名とは、送信者のプライベートキーを使用して生成された暗号化ハッシュを指します。受信者は、ハッシュ署名を送信者のパブリックキーで復号することで、データの整合性を検証できます。また、送信者は、デジタル証明書を管理する責任があります。デジタル証明書は、送信者のプライベートキーの所有者を証明し、復号に必要なパブリックキーを受信者に渡します。プライベートキーが送信者によって所有されている限り、署名は信頼できます。 は、これらのキーを排他的なシングルテナントアクセスで保護するために、安全な FIPS 140-2 レベル 3 検証済みハードウェア AWS CloudHSM を提供します。

多くの組織は SignTool、Microsoft を使用します。これは、コード署名プロセスを簡素化するために、ファイルに署名、検証、タイムスタンプするコマンドラインツールです。 AWS CloudHSM を使用して、キーペアが によって必要になるまで安全に保存できるため SignTool、データに署名するためのワークフローを簡単に自動化できます。

以下のトピックでは、 SignTool で を使用する方法の概要を説明します AWS CloudHSM。

ステップ 1: 前提条件の設定

SignTool で Microsoft を使用するには AWS CloudHSM、以下が必要です。

  • Windows オペレーティングシステムを実行する Amazon EC2クライアントインスタンス。

  • 認証機関 (CA)。自己管理、またはサードパーティープロバイダーが作成したもの。

  • EC2 インスタンスと同じ仮想パブリッククラウド (VPC) 内のアクティブな AWS CloudHSM クラスター。クラスターには少なくとも 1 つの が含まれている必要がありますHSM。

  • AWS CloudHSM クラスター内のキーを所有および管理するための暗号化ユーザー (CU)。

  • 未署名のファイルまたは実行可能ファイル。

  • Microsoft Windows ソフトウェア開発キット (SDK)。

Windows AWS CloudHSM で を使用するための前提条件を設定するには SignTool
  1. このガイドの開始方法セクションの指示に従って、Windows EC2インスタンスと AWS CloudHSM クラスターを起動します。

  2. 独自の Windows Server CA をホストする場合は、「 で Windows Server を認証機関として設定 AWS CloudHSMする」のステップ 1 と 2 に従います。それ以外の場合は、公的に信頼されたサードパーティーの CA をそのまま使用します。

  3. Windows EC2インスタンスSDKに、次のいずれかのバージョンをダウンロードしてインストールします。

    実行可能ファイルは、Windows SDK Signing Tools for Desktop Apps SignTool のインストール機能の一部です。不要な場合は、他の機能をインストール対象から除外することができます。デフォルトのインストール場所は次のとおりです。

    C:\Program Files (x86)\Windows Kits\<SDK version>\bin\<version number>\<CPU architecture>\signtool.exe

Microsoft Windows SDK、 AWS CloudHSM クラスター、および CA を使用して署名証明書 を作成できるようになりました。

ステップ 2: 署名証明書を作成する

Windows をEC2インスタンスSDKにダウンロードしたら、それを使用して証明書署名リクエスト () を生成できますCSR。CSR は署名なしの証明書で、最終的に署名のために CA に渡されます。この例では、Windows certreq に含まれている実行可能ファイルを使用して SDKを生成しますCSR。

certreq 実行可能ファイルCSRを使用して を生成するには
  1. まだ接続していない場合は、Windows EC2インスタンスに接続します。詳細については、「Amazon EC2ユーザーガイド」の「インスタンスに接続する」を参照してください。

  2. 以下の行に含まれる request.inf ファイルを作成します。Subject 情報をお客様の組織の情報に置き換えます。各パラメータの説明については、「Microsoft のドキュメント」を参照してください。

    [Version] Signature= $Windows NT$ [NewRequest] Subject = "C=<Country>,CN=<www.website.com>,O=<Organization>,OU=<Organizational-Unit>,L=<City>,S=<State>" RequestType=PKCS10 HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = Cavium Key Storage Provider KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE" MachineKeySet = True Exportable = False
  3. certreq.exe を実行します。この例では、 を CSRとして保存しますrequest.csr

    certreq.exe -new request.inf request.csr

    内部的には、新しいキーペアが AWS CloudHSM クラスターで生成され、ペアのプライベートキーを使用して が作成されますCSR。

  4. CSR を CA に送信します。Windows Server CA を使用している場合は、次のステップを行います。

    1. 次のコマンドを入力して、CA ツールを開きます。

      certsrv.msc
    2. 新しいウィンドウで、CA サーバーの名前を右クリックします。[すべてのタスク]、[Submit new request (新しいリクエストの送信)] の順に選択します。

    3. request.csr の場所に移動し、[開く] を選択します。

    4. サーバー CA メニューから、[保留中のリクエスト] フォルダを表示します。先ほど作成したリクエストを右クリックし、[すべてのタスク] で [問題] を選択します。

    5. [Issued Certificates (発行済みの証明書)] フォルダ ([保留中のリクエスト] フォルダの上) に移動します。

    6. [開く] を選択して証明書を表示し、[詳細] タブを選択します。

    7. [Copy to File (ファイルにコピー)] を選択して、証明書のエクスポートウィザードを起動します。DERエンコードされた X.509 ファイルを安全な場所に として保存しますsignedCertificate.cer

    8. CA ツールを終了し、次のコマンドを使用して、証明書ファイルを Windows の Personal Certificate Store に移動します。他のアプリケーションで使用できます。

      certreq.exe -accept signedCertificate.cer

これで、インポートしたファイルを使用して、ファイルに署名する ことができます。

ステップ 3: ファイルに署名する

これで、 SignTool とインポートされた証明書を使用してサンプルファイルに署名する準備が整いました。そのためには、証明書の SHA-1 ハッシュ、またはサムプリント を知る必要があります。サムプリントは、 SignToolが によって検証された証明書のみを使用することを確実にするために使用されます AWS CloudHSM。この例では、 PowerShell を使用して証明書のハッシュを取得します。CA GUIまたは Windows SDKcertutilの実行可能ファイルを使用することもできます。

証明書のサムプリントを取得し、それを使用してファイルに署名するには
  1. 管理者 PowerShell として を開き、次のコマンドを実行します。

    Get-ChildItem -path cert:\LocalMachine\My

    返った Thumbprint をコピーします。

    証明書のハッシュは、サムプリントとして返ります
  2. PowerShell を含む 内のディレクトリに移動しますSignTool.exe。デフォルトの場所は C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64 です。

  3. 最後に、次のコマンドを実行してファイルに署名します。コマンドが成功すると、 は成功メッセージを PowerShell 返します。

    signtool.exe sign /v /fd sha256 /sha1 <thumbprint> /sm C:\Users\Administrator\Desktop\<test>.ps1
    .ps1 ファイルに正常に証明されました。
  4. (オプション) ファイルの署名を検証するには、次のコマンドを使用します。

    signtool.exe verify /v /pa C:\Users\Administrator\Desktop\<test>.ps1