我发现this MSDN article解释了如何检索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
感到好奇:
可以使用Serial Number
来验证EXE文件是否使用特定证书进行签名?我的测试显示,如果我签署了多个文件,它就不会改变。
续订证书时,此序列号是否保持不变?
答案 0 :(得分:1)
IssuerRDN(标识颁发者的字段集)和SerialNumber字段的组合根据RFC 5280唯一标识证书。
RFC没有定义,如果重新颁发证书会发生什么,但我会假设序列号已更改。原因是新证书与前一证书不同,因此必须唯一标识。
因此,对于您的任务,更好的方法是
这将确保证书对该公司有效并获得授权,同时该算法可以避免检查一个证书的错误(如果证书因任何原因被撤销,这个错误可能会导致问题并换成新的)。