发布签名简介
驱动程序包 应进行版本签名,原因如下:
确保驱动程序包的真实性、完整性和可靠性。
Windows 使用数字签名来验证发布者的标识,并验证驱动程序包自发布以来是否未更改。
通过促进自动驱动程序安装提供最佳用户体验。
如果驱动程序包未签名,即插即用 (PnP) 驱动程序安装策略要求系统管理员手动授权安装未签名的驱动程序包,从而在安装过程中添加额外的步骤。 这个额外的步骤可能会使普通用户感到困惑和麻烦。
在 64 位版本的 Windows Vista 和更高版本的 Windows 上运行内核模式驱动程序二进制文件。
64 位版本的 Windows Vista 及更高版本的 内核模式代码签名策略 要求对内核模式驱动程序二进制文件进行签名,以便操作系统加载驱动程序。
若要播放某些类型的下一代高级内容,Windows Vista 和更高版本的 Windows 中的所有内核模式组件都必须签名。 此外,受保护媒体路径 (PMP) 中的所有用户模式和内核模式组件都必须符合 PMP 签名策略。 有关 PMP 签名策略的信息,请参阅白皮书对 Windows Vista 中受保护的媒体组件进行代码签名。
硬件认证工具包 (HCK) 具有适用于各种设备类型的测试类别。 如果此列表中包含设备类型的测试类别,驱动程序包发布者应获取驱动程序包的 WHQL 发布签名 。
注意在 Windows Server 2003、Windows XP 和 Windows 2000 上,WHQL 签名的驱动程序包中的 INF 文件必须使用在 %SystemRoot%/inf/Certclas.inf 中定义的设备安装程序类。 否则,Windows 会将驱动程序包视为无符号。
如果驱动程序包由 WHQL 进行数字签名,则可以通过Windows 更新程序或其他 Microsoft 支持的分发机制进行分发。 WHQL 对驱动程序包 目录文件进行签名,但不在驱动程序文件中嵌入签名。 如果驱动程序二进制文件是适用于 64 位处理器的 启动驱动程序 ,则驱动程序包发布者还必须在内核模式驱动程序文件中 嵌入签名 ,然后再将驱动程序包提交到 WHQL。
如果 硬件认证工具包 (HCK) 没有适用于你的设备类型的 测试类别 ,若要在 Windows Vista 和更高版本的 Windows 上发布对驱动程序包 进行签名 ,必须满足以下要求:
若要遵守 64 位版本 Windows Vista 和更高版本的 Windows 的 内核模式代码签名策略 ,必须使用 软件发布者证书 (SPC) 对内核模式驱动程序包进行签名。 对于非启动驱动程序,只需对驱动程序包的 目录文件进行签名。 对于启动驱动程序,必须在内核模式驱动程序文件中嵌入 SPC 签名,还可以选择对驱动程序包的目录文件进行签名。
必须遵守 PnP 设备安装签名要求。
SPC 和商业发布证书统称为 发布证书 ,使用发布证书生成的签名称为 发布签名。
有关发布签名要求和过程的详细信息,请参阅 发布签名驱动程序包。
注意 若要了解发布签名驱动程序包所涉及的步骤,请参阅 如何Release-Sign驱动程序包。 本主题提供发布签名过程的摘要,并逐步介绍使用 Windows 驱动程序工具包中的 ToastPkg 示例驱动程序包 (WDK) 的发布签名示例。