数字签名和 Windows Installer
Windows Installer 可使用数字签名来检测已损坏资源。 签名者证书可以与包要安装的外部资源的签名者证书进行比较。 有关使用数字签名、数字证书和 WinVerifyTrust 的详细信息,请参阅 Microsoft Windows 软件开发工具包 (SDK) 的安全性部分。
借助 Windows Installer,数字签名可以与 Windows Installer 包、转换、补丁、合并模块和外部 Cabinet 文件一起使用。 Windows Installer 与 Microsoft Windows XP 上的软件限制策略集成。 可以创建策略以允许或阻止基于不同标准的安装,包括特定的签署者证书或发布者。 Windows Installer 可以在安装了 CryptoAPI 2.0 版的所有平台上执行外部 Cabinet 文件的签名验证。
请注意,随 Windows Installer SDK 提供的示例 Setup.exe 引导程序会在启动安装之前对 Windows Installer 包执行签名检查。
执行管理安装会从包中删除数字签名。 管理安装会修改安装包以添加 AdminProperties 流,这会使原始数字签名无效。 管理员可以为包重新签名。
将补丁应用于管理安装还会从包中删除数字签名。 原因是因为更改保留在管理安装的已修补安装包中。 管理员可以为包重新签名。
从 Windows Installer 3.0 版开始,使用用户帐户控制 (UAC) 修补,非管理员用户能够修补在每计算机上下文中安装的应用程序。 通过在 MsiPatchCertificate 表中提供签署者证书并使用相同的证书签署补丁来启用 UAC 补丁。
有关详细信息,请参阅数字签名和外部 Cabinet 文件、Windows Installer 和软件限制策略、创作完全验证的签名安装和基于 URL 的 Windows Installer 安装示例。