如何自签带时间戳的驱动签名

绪论

什么是驱动签名

在 Windows 操作系统中,驱动签名(Driver Signing) 是微软引入的一项安全机制,用于验证设备驱动程序的来源和完整性,证明这个驱动是由可信的开发者发布的,并且在发布之后没有被篡改过。

驱动签名如何工作

当你开发或分发一个 Windows 驱动程序(例如 .sys 文件)时,需要使用一个由受信任证书颁发机构(CA)签发的代码签名证书,对驱动程序进行数字签名。这个签名过程会生成一个加密的“指纹”,并将其嵌入到驱动文件中。

当 Windows 系统加载该驱动时,会自动检查:

  1. 签名是否有效:即签名是否由受信任的证书签发;
  2. 驱动是否被篡改:通过比对文件内容与签名中的哈希值是否一致;
  3. 证书是否过期或被吊销

如果上述检查全部通过,系统才会允许加载该驱动

准备工作

  1. xca软件
  2. Signtool-TimeStamping-Fake软件
  3. 一个github账户或者一个gitee账户(能公网访问就行)

注:都传到Github上了

步骤

  1. 在xca创建数据库
  2. 在xca创建私钥,密钥类型(RSA),密钥长度(2048bit)
  3. 在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 )
  4. 用模板创建时间戳证书,注意选择证书用途
  5. 导出证书,导出密钥,导出吊销列表,点击证书->ca->生成crl
  6. CER和CRL导到github上
  7. 让项目开源,并开启Page功能
  8. 把生成的crt和crl复制到Signtool-TimeStamping-Fake文件夹下,点击StartAll.exe即可,他会在103端口开本地服务,有可能会报错,但不妨碍直接用就行

多图流

1. 创建数据库 图 2
图 1
图 0
图 3

2. 创建密钥

图 4
3. 创建模板 图 5
图 6
图 7
图 8
图 9
图 10
图 11
图 12

4. 创建证书 图 13
图 14
图 15
图 16
图 17

5. 导出各种东西 图 18
图 19
图 20
图 21
图 22

6. 放到文件夹里

图 23