关于数字证书的有效性验证,你了解多少?

2015/03/10

数字证书是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个一个签名。它是由一个由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

验证需要包括以下的内容:

1. 证书完整性验证- 确认这个证书没有被别人篡改过。这项验证可以通过验证证书中CA的数字签名而完成。

2. 证书可信性验证- 确认该证书是由一个可信的证书颁发机构所(CA)颁发的。为此验证者必须验证证书链,即从对方的CA信任域的底层开始,逐层向上查询,一直追溯到信任链的终点,通常是根CA为止,找到权威的根CA的签名,这才完成验证。证书有效性验证就是确认该证书是否已经失效。

3. 有关证书使用策略限制的验证- 确认证书的当前使用有没有超出证书中规定的策略限制。

数字证书的有效性验证:

一、有效期

证书的有效期验证,就是使用时间在必须在证书起始和结束日期之间才有效。

二、颁发根证书

每个数字证书都有颁发根证书的签名,验证证书就是使用根证书公钥来验证证书颁发者签名。首先,必须要找到数字证书的颁发根证书,Windows本身集成一些权威的受信任的根证书颁发机构,如VeriSign等,如果不在受信任的证书列表中,当我们打开证书会显示“Windows 没有足够信息,无法验证 digital certificate,当然我们可以把根证书加到受信任的根证书列表,这样证书就可以显示正常。

三、CRL验证

CRL是经CA签名的证书作废列表,用于做证书冻结和撤销时对证书有效性状态控制。一般数字证书中都有 CRL分发点地址,提供了HTTP和LDAP方式访问。通过BouncyCastle库解析X509证书的扩展项我们可以获取到CRL地址,然后使用相应方式下载CRL进行验证。

Tags:

Write a comment

Name
Comment