当前位置: 首页 > 网络应用技术

加密系列:在线证书状态协议OCSP详细说明

时间:2023-03-05 22:30:52 网络应用技术

  当我们访问网页时,我们将处理各种证书。例如,在访问HTTPS网页时,我们需要检测HTTPS网站证书的有效性。

  OCSP是一种验证协议,用于获得X.509数字证书的撤销状态。它似乎替换了CRL。

  本文将详细介绍OCSP的实现和优势。

  我们知道,在PKI体系结构中,CA证书是非常重要的组件,客户端通过CA证书验证服务的可靠性。对于CA证书本身,可以在创建时指定到期时间。,到期后不能使用证书,需要应用新的证书。

  但是,这还不足以在指定期间给出截止日期。例如,如果由于业务需求而需要撤销证书,该怎么办?

  PKI提供了一种称为CRL(证书撤销列表)的机制,以维护已废除的证书清单。

  该CRL是由CA发出的,通常是在证书到期之前生成的。由于证书已过期,因此此CRL是毫无意义的。

  对于CRL本身,它是证书列表,通常以证书的格式使用。

  CRL通常由发行证书的CA维护和发行。CRL的组成部分称为CRL发行人。一般而言,CRL发行人和CA是相同的服务,但是您也可以将CRL发行人和CA分开。

  CRL定期从CA释放。当然,您可以重新发布CRL,因为您需要撤销CA证书。所有CRL已过期的时间。在此到期时间内,客户可以根据CRL中的签名来验证CA的有效性,以防止CRL的伪造。

  那么CRL的缺点是什么?

  首先,CRL维护取消证书的列表。为了确保系统的有效性,每次验证CA证书的有效性时,客户都需要从CA服务器获得此CRL。然后通过CRL检查相应的CA证书状态。

  如果您每次都接受此CRL,则可能会有以下问题。

  第一个问题是,如果CRL不可用,则客户端将无法获得此CRL,并且无法检查CA证书的状态,从而导致服务不可用。

  另一个问题是,如果要撤销更多证书,则此CRL可能相对较大,从而浪费网络资源。

  最后一个问题是,PKI证书系统本身的目的是建立一个可以自我验证并且不依赖在线服务的安全系统。如果您每次都必须在线获得CRL,那么您将获得PKI的优势。

  尽管CRL保留了撤销证书的列表,但此列表中证书的状态仍然不同。

  CRL中有两种类型的证书。首先是证书已被吊销。例如,证书证书签发的证书是错误的,或者原始证书是不安全的,因为诸如私钥泄漏之类的其他原因。不遵守某些策略等,并且需要设置先前的证书到退出状态。

  还有暂时取消的状态。这里称为“保持状态”,这意味着证书暂时无效,例如用户是否不确定私钥是否丢失。

  由于CRL有很多缺点,因此用来替换CRL的OCSP协议。

  让我们看一下OCSP的工作过程。

  如果A和B使用PKI进行通信。以确保通信的安全性,则将其公共密钥发送给B,并告诉B这是我的公钥。您可以使用此公钥检查我发送给您的消息。

  在收到A的公钥之后,B不确定A的公共密钥是否正确并且没有被篡改。因此,从A的公共密钥中提取了序列号,并且在“ OCSP请求”中将其包装到CA服务器上。

  CA服务器中的OCSP响应器读取“ OCSP请求”请求,并提取A的public键的序列号。OCSP响应器检查此序列号是否在CA服务器数据库中撤销数据库的列表中。

  如果发现它,则意味着A的公钥仍然有效。OCSP响应者将向B发送签名OCSP响应。

  b通过使用CA服务器的公共密钥,OCSP响应的有效性,从而确认A的公钥仍然有效。

  最后,B使用A的公钥和A进行交流。

  从上面的OCSP工作流程中,我们可以总结以下OCSP相对于CRL的优势。

  首先,OCSP响应中的数据量小于CRL,因此网络的要求和压力较小。

  此外,由于OCSP响应要少要解析数据,因此OCSP客户端的实现比CRL更简单。

  尽管由于CRL的各种缺点,但它不再在Web环境中使用,而是被更有效的OCSP所取代,因此CRL仍在其他CA环境中运行。

  OCSP协议在RFC 6960中定义。

  OCSP协议可以分为两个部分:请求协议和响应协议,然后单独引入。

  OCSP请求需要协议版本号,请求服务,检查符和可选扩展名。

  收到OCSP请求后,OCSP响应者将检查OCSP消息的有效性。如果消息有问题,它将返回异常,否则将根据请求的服务处理。

  OCSP请求如果使用ASN.1(摘要语法符号一号)摘要语法标记,则可以表示如下:

  ASN.1是接口描述语言。通过ASN.1,我们可以清楚地描述数据的格式信息。

  OCSPREQUEST由OCSP请求tbsrequest和相应的签名选项签名组成。

  其中,tbsrequest包含版本编号,OCSP请求者的名称,证书的状态列表以及可选的扩展数据。

  对于OCSP的响应,传输协议的结构是不同的。但是,所有响应都应包含响应式字段,以指示请求的处理状态。

  OCSP声音应用程序ASN.1格式指示以下内容:

  ResponseStatus是一种响应状态,响应Bytes是可选的响应结果。

  这里的响应是基本cprosponse对象的DER编码:

  您可以看到OCSP需要检查证书是否在需要检查是否吊销证书询问OCSP响应器以确认证书的有效性时是否被撤销。

  但是,此方法实际上泄露了用户的隐私信息,因为OCSP响应器知道客户需要支票证书,并且知道可以访问客户端的网站。

  因此,我引入了OCSP钉书钉来解决这个问题。

  那么什么是OCSP钉书?

  OCSP订书机直接将OCSP证书放在客户端访问的Web服务器上。由于添加了OCSP证书,并具有时间戳和数字签名,因此可以确保其正确性。

  当客户端和Web -End设置SSL握手时,这些OCSP证书将包含在OCSP响应中。

  通过这种方式,客户无需单独与CA建立其他连接,从而提高了性能。

  OCSP订书机需要在服务器上积极打开。

  如果您使用的是Apache服务器,则第一版大于2.3.3。

  然后,您需要在.conf文件中添加外部块:

  然后将其添加到块中:

  如果您使用的是NGINX,则第一版大于1.3.7。

  然后将其添加到NGINX的配置文件块:

  如果要验证网站是否已打开OCSP订书机,则可以访问https://entrust.ssllabs.com/检查:

  在本网站中,您可以输入您要查询的任何网站地址,然后可以获取以下信息:

  您可以看到该网站已经打开了OCSP订书机。

  OCSP和OCSP订书机是撤销验证协议的非常有用的认证,并已被广泛使用。您可以检查是否使用了您的网站。

  有关更多内容,请参阅http://www.flydean.com/43-pki-ilesp/

  最受欢迎的解释,最深的干货,最简单的教程,您不知道的许多技巧正在等待您发现!

  欢迎注意我的公共帐户:“程序的事情”,了解技术并更好地了解您!

  原始:https://juejin.cn/post/7103471471103574023