• 验证数字证书的有效性


    #此文来自于知乎的匿名用户

    要想验证证书是否有效,要检查三点:


    1. 验证证书是否在有效期内。

    证书中会包含证书的有效期的起始时间和结束时间,取一个时间点去比较就好了。

    关键问题是如何保证取到的时间点是可信的,这就是另外一个话题了。 

    2. 验证证书是否被吊销了。

    被吊销的证书是无效的。

    验证吊销有CRL和OCSP两种方法。

    CRL即证书吊销列表。证书被吊销后会被记录在CRL中,CA会定期发布CRL。应用程序可以依靠CRL来检查证书是否被吊销了。

    CRL有两个缺点,一是有可能会很大,下载很麻烦。针对这种情况有增量CRL这种方案。 二是有滞后性,就算证书被吊销了,应用也只能等到发布最新的CRL后才能知道。增量CRL也能解决一部分问题,但没有彻底解决。

    OCSP是在线证书状态检查协议。应用按照标准发送一个请求,对某张证书进行查询,之后服务器返回证书状态。OCSP可以认为是即时的(实际实现中可能会有一定延迟),所以没有CRL的缺点。不过对于一般的应用来说,实现OCSP还是有些难度的。


    3. 验证证书是否是上级CA签发的。

    每一张证书都是由上级CA证书签发的,上级CA证书可能还有上级,最后会找到根证书。根证书即自签证书,自己签自己。 当你验证一张证书是否是由上级CA证书签发的时候,你必须有这张上级CA证书。通常这张证书会内置在浏览器或者是操作系统中,有些场景下应用系统也会保留。

    --------- 以上三点,只要有一个没通过,这张证书就是无效的,不该信任。 在实际场景中会衍生出一些问题,

    比如: 1. 严格来说,证书状态验证“应该”是个“递归”过程:验证完一张证书之后还得验证上级CA证书,一直验到根。这个开销太巨大了,所以应用系统大多会做一些取舍。当然乱取舍的时候就有可能出问题。 2. 根证书的可信程度。根证书是整个信任体系的“根”,只有根证书可信,下级证书才可信。

  • 相关阅读:
    Server Tomcat v8.5 Server at localhost failed to start.
    使用bootstrap中的bootstrapValidator,验证ckeditor富文本框不为空
    百度WebUploader上传图片,图片回显编辑,查看
    百度WebUploader上传图片
    做webapp静态页面的一些积累
    ztree插件的使用
    highcharts曲线图
    ajax的表单提交,与传送数据
    一条数据中需要遍历多条数据,页面遍历方法
    在页面中使用拼接字符串的方式显示动态加载的数据
  • 原文地址:https://www.cnblogs.com/ronyjay/p/6269981.html
Copyright © 2020-2023  润新知