上一篇日志利用CSR文件生成自签名证书,接下来可以进行CRL校验和OCSP校验,两者都是校验证书的吊销状态,区别在于校验的方式不同,CRL需要校验方从CRL分发点下载CRLs吊销列表文件,OCSP则是一种在线证书状态协议,校验方发送OCSP请求查询证书的吊销状态,然后接收带有吊销状态信息的OCSP响应完成校验。

CRL校验

CRL标准属于TLS/SSL协议的一部分,CA机构会把所有自己签发的已被吊销的证书放到一个文件CRLs中,包括证书的序列号和吊销原因,身份校验方下载完证书吊销列表后,根据序列号查找来判断证书的吊销状态。

手动校验

手动校验的方式需要我们从证书中找到CRL分发点,然后从这个分发点下载CRL文件,从中根据证书序列号查找证书是否存在吊销列表中。

如果你的证书是cer格式的,可以先格式转换成pem格式,然后继续使用openssl命令行,打开这个pem格式的证书。查看证书可以看到很多的信息,如服务器公钥,使用的签名算法等,我们要寻找的是它的CRL分发点,即找到CRL Distribution Points:

前面说过,CRL是一个文件,在网上有一个URL地址,这个地址在证书的扩展项中,找到这个地址后,我们就可以直接访问下载CRLs吊销列表,或者用wget命令下载。从上图例子可以看到,我们从csdn首页获取的服务器证书,其CRL分发点为http://cdp.geotrust.com/GeoTrustRSACA2018.crl,下载得到CRL文件:

然后我们用crl子命令来打开这个CRL吊销列表:

crl –inform DER –text –noout –in GeoTrustRSACA2018.crl

从图中可以看到,文件里保存了许多证书的序列号Serial Number,以及它们的吊销日期,最后就是根据要校验的证书序列号在里面寻找是否有匹配,有即表明该证书已经处于被吊销状态。

自动校验

自动校验在Windows的CMD下用certutil子命令加参数-verify,在openssl下则是使用verify子命令。这里用CMD举例:

certutil是命令行证书命令,可以用它来完成许多证书服务操作。通过校验后,可以看到最后的校验结果:“证书是一个最终实体证书,通过了分支证书吊销检查。”

OCSP套封

前面说过,OCSP即Online Certificate Status Protocol,在线证书状态协议,通过发送OCSP请求来获取证书的吊销状态,OCSP服务提供方根据查询请求条件(如证书序列号),返回该证书的吊销状态。OCSP逐渐取代CRL的一个很重要的原因是,CRL校验需要身份校验方下载CRL证书吊销列表,随着某一CA机构吊销的证书越来越多,这个吊销列表将会变得越来越大,影响了下载速度,由于CRL校验是同步操作(OCSP也是,不过OCSP速度快许多,因为请求发送和响应的数据量很小),会阻塞TLS/SSL握手过程,从而影响了速度。

不过COSP服务也是有一些缺点的,第一是安全性问题,在OCSP响应结构中有certStatus参数保存的是证书的状态,分别为good,revoked和unknown三种,攻击者可以通过篡改每一次OCSP响应,一直发送证书状态为“good”的OCSP响应。第二个问题就是隐私问题,用户每访问一个网站,都会发送不同的OCSP请求,如果这些请求被拦截,用户的浏览习惯可能就会被泄漏。

为了解决上述的问题,在部署HTTPS服务时及要用到OCSP套封。

套封过程

使用OCSP套封技术,需要用到status_request扩展,即客户端(浏览器)告诉服务器,我不送OCSP请求,由你来发送。

  1. 第一步,在浏览器和服务器建立连接阶段就由浏览器发送了这个status_request扩展给服务器。
  2. 之后进行证书吊销状态校验时,由服务器向OCSP服务提供方发送OCSP请求,也由服务器来接收OCSP响应。
  3. 服务器接收到OCSP响应后,向客户端(浏览器)发送CertiticateStatus子消息,里面包含有OCSP响应。
  4. 如果服务器接收到的OCSP响应异常,或者无法处理,服务器可以选择不向浏览器发送CertificateStatus子消息,若浏览器没有接收到服务器的响应,可以选择自行向OCSP服务提供方发送请求,即回到了标准的OCSP校验。

由上述步骤可以看出,OCSP套封解决了用户浏览习惯隐私泄露问题,因为用户访问一个网站时,OCSP请求是由服务器发送给COSP服务提供方,服务器接收到OCSP响应后再发送回客户端(浏览器)。

OCSP校验

最后到OCSP校验,也就是通过发送OCSP请求来校验证书的吊销状态,首先我们要从证书中获取OCSP地址,因为前面说过,OCSP和CRL一样有一个URL地址,它们都是服务提供方,获得这个OCSP服务地址,才能知道请求发送到哪里去:

得到OCSP地址后,就可以发送校验请求:

从输出信息可以看到OCSP Request Data是请求信息,下面的OCSP Response Data是响应信息,黄字处Cert Status标识的就是证书的状态,good表示证书没有吊销,校验成功。

CRL校验与OCSP套封相关推荐

  1. CRL问题与OCSP

    从证书的扩展项CRL分发点可以看到,CRL证书吊销列表,是服务器身份验证的一部分,验证证书除了校验签名值外,还要校验证书的吊销状态,如果一张证书已过期,或者被吊销,那么身份校验失败.要注意的是,证书过 ...

  2. 总结证书CT:证书透明度

    证书部分,从服务器生成CSR证书请求文件开始,利用CSR生成自签名证书,然后开始校验,顺着证书链校验服务器身份,签名值,根证书等信息.签名值和根证书校验成功,只能表明该服务器证书是由某一个CA机构所签 ...

  3. 密码学系列之:在线证书状态协议OCSP详解

    文章目录 简介 PKI中的CRL CRL的缺点 CRL的状态 OCSP的工作流程 OCSP的优点 OCSP协议的细节 OCSP请求 OCSP响应 OCSP stapling 总结 简介 我们在进行网页 ...

  4. CentOS8使用gmssl搭建demoCA及配置OCSP服务

    本文档以CentOS8 + GmSSL2.5.4版本为例 1.GmSSL搭建CA 1.1 安装GmSSL 我们知道,Linux下默认只有openssl的发行版,并没有默认安装GmSSL,所以需要手动下 ...

  5. 数字证书的相关专业名词(下)---OCSP及其java中的应用

    一.前言 上篇文章我们了解了根证书和校验证书有效性中的一个比较重要的渠道–CRL,但是CRL有着时间延迟,网络带宽消耗等缺点,本篇文章我们了解另一种更高效也是目前被广泛应用的校验证书有效性的另一种方式 ...

  6. dxf转nc代码软件_FastCAM激光版套料软件

    发思特软件FastCAM激光版 [适用范围] 主要配套YAG固体激光切割机,二氧化碳激光切割机和光纤激光切割机,用于任意形状零件的绘图.自动套料.自动编程.校验和数控切割.满足激光切割高速切割.复杂零 ...

  7. 证书吊销列表(CRL)简单介绍与相关openssl C api功能测试

    文章目录 1 前言 2 基础知识 3 Openssl C api 4 测试代码 4.1 测试脚本 4.2 测试程序 1 前言 在近期的工作项目中涉及到了证书吊销列表(CRL)相关的一些知识,打算记录一 ...

  8. ocsp协议_什么是在线证书状态协议(OCSP)和示例教程?

    ocsp协议 Certificates like SSL, X.509 are used to secure network traffic. But every certificate has it ...

  9. ocsp java_OpenSSL 通过OCSP手动验证证书

    翻译:https://raymii.org/s/articles/OpenSSL_Manually_Verify_a_certificate_against_an_OCSP.html?utm_sour ...

最新文章

  1. TensorFlow 发布新版本v1.9(附应用实践教程)
  2. AcWing P164 可达性统计 题解
  3. Python 3.x print 小结
  4. 【Java】泛型中 extends 和 super 的区别?
  5. Redis 五种数据结构以及三种高级数据结构解析以及使用
  6. 图论--SCC缩点--Tarjan
  7. 关于Windows azure从github上部署项目
  8. 将 75000 行原生 iOS 应用程序移植到 Flutter 后,结果太惊讶!
  9. string类型输入一行字符串,带空格
  10. 非学习的点云配准方法汇总
  11. 画二元函数即三维图像的函数及matlab代码
  12. win10/ubuntu18.04 双系统开机黑屏,无法通过grub 选择系统,直接进入Ubuntu系统
  13. 前端开发必备神级资源
  14. 蓝牙标签与蓝牙信标的区别
  15. 超详细KNIME二次开发的环境配置安装过程
  16. 数字后端基本概念介绍Tie cell
  17. NameNode处理上报block块逻辑分析
  18. 解决Mac下窗口无法最大化的问题 - 只有最小化和全屏怎么够
  19. Unity获取未激活游戏对象的方法
  20. 双十二电容笔啥牌子好?十大电容笔知名品牌

热门文章

  1. ETL的基础知识,看完你就全明白了!
  2. Thinkphp课程表小程序源码
  3. 深度解读后疫情时代下,零售行业的趋势及技术前瞻
  4. 计算机监控管理作用,变电站计算机监控系统的主要功能资料.doc
  5. Windows 2008 如何开启并使用Windows Vista的主题
  6. 编程之路核心技术卷•Web技术内幕
  7. python中的颜色_Python中的颜色函数
  8. matplotlib中ylabel和xlabel函数
  9. php代码审计【23】齐博CMS通杀漏洞漏洞
  10. 如何给嵌入式Linux打实时补丁?