MsiDigitalSignature 表

MsiDigitalSignature 表包含安装数据库中每个数字签名对象的签名信息。

MsiDigitalSignature 和 MsiDigitalCertificate 表从 Windows Installer 2.0 版本开始提供。

Windows Installer 版本可使用数字签名来检测已损坏的资源。 Windows Installer 2.0 只能验证外部 Cabinet 的数字签名,并且只能使用 MsiDigitalSignature 和 MsiDigitalCertificate 表进行验证。

从 Windows Installer 3.0 开始,Windows Installer 可以使用 MsiPatchCertificate 和 MsiDigitalCertificate 表验证修补程序(.msp 文件)的数字签名。 有关详细信息,请参阅创作安全安装指南用户帐户控制 (UAC) 修补

MsiDigitalSignature 表包含以下列。

类型 密钥 Nullable
Identifier Y N
SignObject 文本 Y N
DigitalCertificate_ Identifier N N
哈希 二进制 N Y

 

Table

对于 Windows Installer 2.0 版本,Media 表中此字段的条目必须是“Media”。 安装程序仅验证外部 Cabinet 媒体条目的数字签名。 此列和 SignObject 列共同指定经过数字签名的资源。

SignObject

由 Table 列指定的表的主键中的外键。 此列和 Table 列共同指定经过数字签名的资源。

DigitalCertificate_

MsiDigitalCertificate 表中的外键。 它会标识文件中必须存在才能成功执行关联操作的证书。 始终需要此资源(或对象)来匹配 MsiDigitalCertificate 表中的此证书。

Hash

在此字段中输入资源(或对象)的引用哈希,系统会根据在运行时获取的资源(或对象)的实际哈希检查该引用哈希。 如果只需验证证书,则 Hash 字段可以为 Null。 请注意,哈希格式取决于要签名的资源(或对象)的类型。

Hash 列包含二进制表示形式的哈希。 实际内容是 CRYPTOAPI_BLOB 结构中的 CRYPT_HASH_BLOB 结构的 pbData 成员。 通过调用 WinVerifyTrustMsiGetFileSignatureInformation 可获得该内容。

验证

ICE03
ICE06
ICE29
ICE32
ICE66
ICE81

MsiGetFileSignatureInformation

MsiDigitalCertificate 表

数字签名和 Windows Installer