デジタル署名と外部キャビネット ファイル

Windows インストーラーでは、破損したリソースの検出にデジタル署名を使用できます。 外部リソースをインストールするとき、そのリソースに属する署名者証明書を、パッケージで作成された参照署名者証明書に対して検証できます。 インストーラーは、内部キャビネットの署名は検証できません。 デジタル署名は、MsiDigitalSignature テーブルMsiDigitalCertificate テーブルを使用してのみ検証できます。

Windows インストーラーは、外部キャビネットに格納されているファイルをインストールするときに、次を行います。

  • インストーラーにより、その外部キャビネットのメディア エントリが MsiDigitalSignature テーブルにあるかどうかが確認されます。 Media テーブルの Cabinet 列の、先頭に '#' 文字がないエントリで、外部キャビネットに格納されているファイルが識別されます。
  • 外部キャビネットを開く前に、インストーラーは WinVerifyTrust を呼び出して、現在の証明書とハッシュ情報を抽出します。 キャビネットの現在の署名情報とパッケージで作成された署名情報の間に不一致がある場合、インストールは失敗します。 キャビネットに侵害された可能性があり、信頼できないため、インストールは失敗します。

デジタル署名、デジタル証明書、および WinVerifyTrust の用途の詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「セキュリティ」セクションを参照してください。

詳細については、「MsiGetFileSignatureInformation」、「MsiDigitalCertificate テーブル」、「MsiDigitalSignature テーブル」を参照してください。