2013-07-27 28 views
1

我找到this MSDN article,它解释了如何检索Authenticode签名可执行文件的信息。它采用以下格式检索数据:使用什么来检查特定的EXE文件签名?

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. 证书更新时此序列号是否保持不变? IssuerRDN的

+0

我的理解是,序列号唯一标识特定证书(至少在给定颁发者创建的所有证书中是唯一的)。是的,当你得到不同的(更新或其他)证书时,它会得到一个新的序列号。 –

+0

我认为问题2最好由证书颁发者回答。 –

回答

1

组合(组识别发行者字段)和的SerialNumber字段唯一地标识该证书作为每RFC 5280

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

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

  1. 验证证书链完全保证了证书
  2. 检查者名称
  3. 检查主题名称
  4. 检查密钥的完整性和真实性使用领域。

这将确保证书对该公司有效并获得授权,并且同时该算法可以避免检查确切的一个证书的错误(如果证书被吊销,此错误可能会导致问题无论出于何种原因,换成新的)。

相关问题