1

我发现这篇 MSDN 文章解释了如何检索 Authenticode 签名的可执行文件的信息。它以以下格式检索数据:

Signer Certificate:

Serial Number: 00 90 1a 1a 1b 1c 1c 26 3d 4f 56 61 70 8f 94 7f e0
Issuer Name: COMODO Code Signing CA 2
Subject Name: Signer's Name

我的目标是验证 EXE 文件是否使用属于公司的特定签名证书进行签名。为此,我显然可以检查Subject Name,但我很好奇Serial Number

  1. Serial Number用于验证 EXE 文件是否使用特定证书签名?我的测试表明,如果我签署多个文件,它不会改变。

  2. 更新证书时,此序列号会保持不变吗?

4

1 回答 1

1

IssuerRDN(标识颁发者的字段集)和 SerialNumber 字段的组合根据RFC 5280唯一标识证书。

RFC没有定义,如果重新颁发证书会发生什么,但我会假设序列号已更改。原因是新证书与之前的证书不同,因此必须唯一标识。

因此,对于您的任务,更好的方法是

  1. 完全验证证书链以确保证书的完整性和真实性
  2. 检查发行人名称
  3. 检查主题名称
  4. 检查密钥使用字段。

这将确保证书对该公司有效并获得授权,同时该算法使您免于检查仅一个证书的错误(如果证书因任何原因被撤销并替换为一个新的)。

于 2013-07-27T05:24:09.003 回答