永发信息网

如何验证数字证书的有效性 信息安全

答案:1  悬赏:30  手机版
解决时间 2021-02-02 00:00
如何验证数字证书的有效性 信息安全
最佳答案
一、有效期
  证书的有效期验证这个比较简单,就是使用时间在必须在证书起始和结束日期之间才有效,通过解析X.509对象很容易获取起止时间,判断证书有效期代码如下:
  ///
/// 有效期验证
///

///
///
public static bool CheckDate(string cert)
{
byte[] bt = Convert.FromBase64String(cert);
System.Security.Cryptography.X509Certificates.X509Certificate2 x509
= new System.Security.Cryptography.X509Certificates.X509Certificate2(bt);

string date = x509.GetExpirationDateString();
DateTime dtex = Convert.ToDateTime(date);
DateTime dtnow = DateTime.Now;
DateTime dteff = Convert.ToDateTime(x509.GetEffectiveDateString());

if (dteff < dtnow && dtnow < dtex)
{
return true;
}

return false;
}
  二、颁发根证书
  每个数字证书都有颁发根证书的签名,验证证书就是用根证书公钥来验证证书颁发者签名。首先,必须要找到数字证书的颁发根证书,Windows本身集成一些权威的受信任的根证书颁发机构,如VeriSign等,如果不在受信任的证书列表,我们打开证书会显示“Windows 没有足够信息,不能验证该证书”,当然我们可以把根证书加到受信任的根证书列表,这样证书就可以显示正常。
  一般带证书链的数字证书中会包含证书颁发机构颁发者,逐级验证到最顶级根证书,每一级都用上级颁发根证书验证证书签名,直到证书颁发者和使用者一样自己可以验证自己通过。根证书的基本约束会不一样,Subject Type=CA代表可以签发证书,而一般的用户证书为Subject Type=End Entity,为终端实体不能再签发证书。
  三、CRL验证
  CRL是经CA签名的证书作废列表,用于做证书冻结和撤销时对证书有效性状态控制。一般数字证书中都有 CRL分发点地址,提供了HTTP和LDAP方式访问。通过BouncyCastle库解析X509证书的扩展项我们可以获取到CRL地址,然后使用相应方式下载CRL进行验证。
  获取数字证书CRL

  在用LDAP方式下载CRL时,注意LDAP协议名称要大写,不然访问会出错。下载的CRL格式可能是BASE64编码的,需要判断转换成DER编码二进制格式。
  CRL分全量CRL和增量CRL,另外还有分段CRL,即同个CA的证书分不同的CRL地址段,主要是为了分流服务器负载。CRL有生效日期和下次更新时间,一般是定时更新,所以CRL并不是即时状态的。因此还有OCSP在线证书状态协议,可以即时的查询证书状态。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
能匠专业皮具护理(珊田盛世华庭小区斜对面能
我在找希罗达 (卡培他滨),不知道南京哪里有
维纳斯洗衣馆地址在哪,我要去那里办事
星航绿色干洗地址在哪,我要去那里办事
在口袋妖怪心灵之金中之前如果选火球鼠的话,
倾城毒妃邪王宠妃无度免费阅读
某中学冯某不思进取,无心向学,经常和一些社
喜欢看人妖的男人是什么心理
柏拉图的洞穴比喻内涵是什么?意义价值是什么
我再婚老公的儿子结婚要包红包吗?
尤萨西班牙健康干洗(醴泉路金凯瑞旁)怎么去啊
连云港到台湾台北基隆海运费用是多少钱时间要
you can call me mr.wood.用英语怎么读?
华为试用期要做一个封闭式的培训吗?
帮我查一下美国夏威夷的天气温差
推荐资讯
罗汉果泡水什么味道
消涨的意思是什么啊?知道的请说下!
塔瑞村怎么去啊,我要去那办事
SAE30是一个什么润滑油
庐霍的意思是什么啊?知道的请说下!
传奇免费服务端
我玩圣安地列斯,为什么总是景物道路不见了,
润花美发足疗地址好找么,我有些事要过去
神秘老公有点坏全文免费阅读
英伦汽车专卖店(临沂河东区)地址在什么地方,
假如三年内你有晋升小领导的机会你会怎么做
联美同人综漫小说
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?