如何自签带时间戳的驱动签名
绪论
什么是驱动签名
在 Windows 操作系统中,驱动签名(Driver Signing) 是微软引入的一项安全机制,用于验证设备驱动程序的来源和完整性,证明这个驱动是由可信的开发者发布的,并且在发布之后没有被篡改过。
驱动签名如何工作
当你开发或分发一个 Windows 驱动程序(例如 .sys 文件)时,需要使用一个由受信任证书颁发机构(CA)签发的代码签名证书,对驱动程序进行数字签名。这个签名过程会生成一个加密的“指纹”,并将其嵌入到驱动文件中。
当 Windows 系统加载该驱动时,会自动检查:
- 签名是否有效:即签名是否由受信任的证书签发;
- 驱动是否被篡改:通过比对文件内容与签名中的哈希值是否一致;
- 证书是否过期或被吊销。
如果上述检查全部通过,系统才会允许加载该驱动
准备工作
- xca软件
- Signtool-TimeStamping-Fake软件
- 一个github账户或者一个gitee账户(能公网访问就行)
注:都传到Github上了
步骤
- 在xca创建数据库
- 在xca创建私钥,密钥类型(RSA),密钥长度(2048bit)
- 在xca中创建模板,内部名称(f’随便起一个证书名’),countryName(CN),commonName(f’证书名’),私钥(创建密钥RSA2048),类型(CA),重点是x509v3 CRL Distribution Points和下面的选项,这两个选项填的内容是需要自己上传到github上,然后把链接down下来,复制进去,要上传的东西在后面做这里的示例是x509v3 CRL Distribution Points( https://github.com/ChengWeiJian03/CAProject/CA.crl) ,下面那个( https://github.com/ChengWeiJian03/CAProject/CA.cer )
- 用模板创建时间戳证书,注意选择证书用途
- 导出证书,导出密钥,导出吊销列表,点击证书->ca->生成crl
- CER和CRL导到github上
- 让项目开源,并开启Page功能
- 把生成的crt和crl复制到Signtool-TimeStamping-Fake文件夹下,点击StartAll.exe即可,他会在103端口开本地服务,有可能会报错,但不妨碍直接用就行
多图流
1. 创建数据库




2. 创建密钥

3. 创建模板








4. 创建证书





5. 导出各种东西





6. 放到文件夹里
