MsiDigitalSignature テーブル

MsiDigitalSignature テーブルには、インストール データベース内のすべてのデジタル署名オブジェクトの署名情報が含まれます。

MsiDigitalSignature テーブルと MsiDigitalCertificate テーブルは、Windows インストーラー バージョン 2.0 以降で使用できます。

Windows インストーラー バージョンでは、破損したリソースを検出する手段としてデジタル署名を使用できます。 Windows インストーラ 2.0 では、MsiDigitalSignature テーブルと MsiDigitalCertificate テーブルを使用することによってのみ、外部キャビネットのデジタル署名を検証できます。

Windows インストーラー 3.0 以降、Windows インストーラーでは、MsiPatchCertificate テーブルと MsiDigitalCertificate テーブルを使用してパッチ (.msp ファイル) のデジタル署名を検証できるようになりました。 詳細については、「セキュリティで保護されたインストールの作成に関するガイドライン」および「ユーザー アカウント制御 (UAC) のパッチ」を参照してください。

MsiDigitalSignature テーブルには以下の列があります。

Column 種類 キー Nullable
テーブル Identifier Y N
SignObject テキスト Y N
DigitalCertificate_ Identifier N N
ハッシュ インデックス Binary N Y

 

[列]

Table

Windows インストーラー バージョン 2.0 では、このフィールドのエントリは Media テーブルの "Media" である必要があります。 インストーラーでは、外部キャビネット メディア エントリのデジタル署名のみが検証されます。 この列と SignObject 列によって、デジタル署名されたリソースが指定されます。

SignObject

Table 列で指定されたテーブルの主キーへの外部キー。 この列と Table 列によって、デジタル署名されたリソースが指定されます。

DigitalCertificate_

MsiDigitalCertificate テーブルへの外部キー。 これにより、関連付けられたアクションを成功させるためにファイルに存在する必要がある証明書が識別されます。 リソース (またはオブジェクト) は、MsiDigitalCertificate テーブル内のこの証明書と常に一致する必要があります。

Hash

このフィールドには、実行時に取得されたリソース (またはオブジェクト) の実際のハッシュに対してチェックされるリソース (またはオブジェクト) の参照ハッシュを入力します。 証明書のみを検証する必要がある場合、Hash フィールドを null にしてもかまいません。 ハッシュの形式は、署名されているリソース (またはオブジェクト) の種類によって異なります。

Hash 列には、ハッシュのバイナリ表現が含まれています。 実際のコンテンツは、CRYPTOAPI_BLOB 構造体の一部である CRYPT_HASH_BLOB 構造体の pbData メンバーです。 これは、WinVerifyTrust または MsiGetFileSignatureInformation を呼び出すことによって取得できます。

検証

ICE03
ICE06
ICE29
ICE32
ICE66
ICE81

MsiGetFileSignatureInformation

MsiDigitalCertificate テーブル

デジタル署名と Windows インストーラー