怎样获得内核驱动签名证书
为内核驱动获取有效的数字签名证书(尤其是用于Windows系统)需遵循微软的安全规范,以下是详细步骤和注意事项:
一、选择签名类型
1. WHQL认证签名(官方推荐)
适用场景:商业发布、通过Windows Update推送驱动。
优点:微软官方认证,兼容性强,系统默认信任。
流程:
注册微软合作伙伴账户
访问微软硬件开发中心,注册并加入Windows硬件开发者计划。
获取EV代码签名证书
从微软信任的证书颁发机构(CA)购买EV(Extended Validation)代码签名证书(如DigiCert、Sectigo)。
提交驱动测试
使用微软的**HLK(Hardware Lab Kit)或HCK(Hardware Certification Kit)**测试驱动兼容性。
提交至微软认证门户
通过Windows硬件仪表板提交测试报告,等待微软审核并颁发WHQL签名。
费用:约500−500−1000(含EV证书年费+微软认证费)。
2. 自签名或第三方交叉签名(仅限测试/开发)
适用场景:内部测试、非商业用途。
缺点:需手动禁用系统驱动签名强制(bcdedit /set testsigning on),且64位系统限制严格。
流程:
生成自签名证书
使用OpenSSL或Windows SDK的makecert工具创建测试证书。
签名驱动
通过SignTool对驱动文件(.sys/.inf)签名:
bash
复制
signtool sign /v /fd SHA256 /a /f MyCertificate.pfx /p <密码> driver.sys
安装测试证书到受信任根证书库
在测试机器上手动安装自签名证书,避免系统拦截。
二、关键注意事项
EV证书要求
必须使用**硬件令牌(如USB Key)**存储私钥,确保私钥安全性。
证书颁发机构需通过微软严格审核(如DigiCert、GlobalSign、GDCA等)。
微软签名策略变更
Windows 10/11 1607后,仅接受SHA256算法签名,旧签名(如SHA1)会被拦截。
2023年起,内核驱动需提交至微软门户进行附加安全审查(Microsoft Driver Security Compliance Review)。
时间戳服务
签名时需嵌入时间戳(如/tr http://timestamp.digicert.com),确保证书过期后签名仍有效。
三、常见问题
Q1:个人开发者能否获取WHQL签名?
可以,但需注册公司实体(个体户或有限责任公司),并完成微软企业资质验证。
Q2:驱动签名证书有效期多久?
EV代码签名证书通常1-3年,WHQL签名永久有效(但需定期更新驱动适配新系统)。
Q3:如何绕过驱动签名强制?
仅限测试环境:
重启进入“高级启动”选择“禁用驱动程序强制签名”(Windows 10/11)。
使用bcdedit /set testsigning on开启测试模式(桌面显示水印)。
四、推荐工具与资源
微软官方工具
Windows Driver Kit (WDK)
SignTool
HLK/HCK测试套件
证书颁发机构(CA)
GDCA(推荐)、Sectigo、Entrust、GlobalSign.
五、法律风险警告
禁止使用泄露证书:微软会定期吊销违规证书,导致驱动失效。
禁止签名恶意软件:违反CA协议可能导致法律追责。
通过以上步骤合法获取驱动签名证书,可确保内核驱动在Windows系统安全加载。若仅用于测试,自签名是最快方案;商业发布则必须完成WHQL认证。