デジタル署名と外部キャビネット ファイル
Windows インストーラーでは、デジタル署名を使用して、破損したリソースを検出できます。 外部リソースをインストールするときに、リソースに属する署名者証明書が、パッケージで作成された参照署名者証明書に対して検証される場合があります。 インストーラーは、内部キャビネットの署名を確認できません。 MsiDigitalSignature テーブル と MsiDigitalCertificate テーブルを使用してのみ、デジタル署名を検証できます。
Windows インストーラーは、外部キャビネットに格納されているファイルをインストールするときに、次の処理を行います。
- インストーラーは、その外部キャビネットのメディア エントリが MsiDigitalSignature テーブルに一覧表示されているかどうかを確認します。 外部キャビネットに格納されているファイルは、Media テーブルのキャビネット列に、先頭に '#' 文字が付かないエントリ によって識別されます。
- 外部キャビネットを開く前に、インストーラーは WinVerifyTrust を呼び出して、現在の証明書とハッシュ情報を抽出します。 キャビネットの現在の署名情報とパッケージで作成された署名情報の間に不一致がある場合、インストールは失敗します。 キャビネットが侵害された可能性があり、信頼できないため、インストールが失敗します。
デジタル署名、デジタル証明書、および WinVerifyTrustの使用の詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「Security」セクションを参照してください。
詳細については、「MsiGetFileSignatureInformation、MsiDigitalCertificate テーブル、および msiDigitalSignature テーブル を参照してください。