博客 > PKI课堂|什么是CRL、OCSP及OCSP Stapling?
浏览量:3693次评论:0次
作者:锐成网络整理时间:2024-08-01 14:30:39
我们提到,Let's Encrypt宣布出于隐私方面的考虑,将尽快终止对在线证书状态协议(OCSP)的支持,转而支持证书撤销列表(CRL)。那么,什么是CRL和OCSP?实际上,它们都属于证书吊销的关键功能,而证书吊销又是证书生命周期管理中一个非常重要但常常被忽视的环节。
在这篇文章中,我们将详细探讨什么是CRL和OCSP,以及它们各自的优缺点。
关于证书吊销
互联网上的信任取决于数字证书。数字证书的双重角色——加密通信和验证证书持有者的身份——构成了公钥基础设施(PKI)的基础。
例如,Web浏览器要求所有HTTPS网站验证其主机名和私钥。但是,获得私钥访问权限的威胁行为者可以轻松冒充该网站。
这使得证书吊销对于降低风险至关重要。当发生这种冒充时,网站所有者会通知颁发者吊销不受信任的证书。
关于CRL
每个SSL证书都有一个有限的有效期,当下通常为1年期。然而,在有效期内,证书持有者和/或颁发证书的证书颁发机构(CA)可能会声明该证书不再受信任。在这些不幸的情况下,需要撤销不受信任的证书,并通知用户。
这需要通过将不受信任的SSL证书添加到证书撤销列表(CRL)来实现的。
图示:SSL证书被撤销警告
什么是CRL?
证书吊销是证书生命周期中至关重要的一个组成部分。
CRL的定义有很多,但如果我们简单地分解一下,CRL 包含已撤销证书的列表—本质上是所有已被CA或所有者撤销且不应再信任的证书。
维基百科定义道,证书撤销列表(CRL,Certificate Revocation List)是尚未到期就被CA吊销的数字证书的名单。这些在CRL中的证书不再会受到信任。
根据CA的内部政策,CRL会定期发布,可能是每小时、每天或每周。CRL中的证书状态可以是“已撤销”(当证书已被不可逆转地撤销时)或“保留”(当证书暂时无效时)。
CRL提供了这些证书的唯一标识符(如序列号),并指示这些证书不再有效。
CRL的格式在X.509标准和RFC 5280中定义。CRL中的每个条目都包含已撤销证书的身份和撤销日期。可选信息包括时间限制(如果撤销适用于特定时间段)以及撤销原因。
Web浏览器和应用程序如何检查CRL?
证书包含一个或多个URL,浏览器或应用程序可以从中检索CRL响应。当浏览器发起与站点的TLS连接时,服务器的数字证书会得到验证并检查是否存在异常或问题。
在此验证过程中,Web浏览器会检查证书是否列在相应 CA颁发的CRL中。根据服务器证书的状态,浏览器将创建安全连接或警告用户证书已被吊销以及继续进行未加密会话的风险。
检查CRL是基于PKI的交易中必不可少的一步,因为它们可以验证站点所有者的身份并发现相关证书是否值得信赖。
图示:使用CRL检查证书吊销过程 (图源:Keyfactor)
什么是CRL分发点(CDP)?
当应用程序或浏览器检查证书的吊销状态时,它会从指定的CRL分发点(CDP)检索当前的证书吊销列表 (CRL)。CDP是发布CRL的CA在LDAP目录服务器或Web服务器上的位置。
检索到CRL后,通常会将其缓存,直到CRL本身过期。CDP必须始终可访问,以确保设备或应用程序可以在需要时检索新的CRL。否则,无法确定相关证书的状态,证书吊销状态检查将失败。
为什么CRL很重要?
数字证书被吊销的原因有很多,一直以来都有很多大规模证书吊销的例子。证书吊销的原因主要包括:
无论证书被吊销的原因是什么,CRL对于保护用户免受中间人攻击或与冒充合法网站的欺诈网站通信都很重要。如果没有CRL,用户将面临许多安全和隐私风险,例如:
使用CRL的注意事项
尽管维护当前CRL非常重要,但该过程并非完美无缺。即使每个CA都颁发单独的CRL,文件也会变得非常大,使得它们在内存有限的设备(如智能手机或物联网设备)中使用效率低下。
当CA收到浏览器的CRL请求时,它会返回包含该CA已撤销证书的整个文件。然后,浏览器必须解析该列表以确定所请求的证书是否已被撤销。根据文件的大小,该过程可能会导致延迟和Web用户的性能不佳。
另一个问题是,如果客户端没有“足够新的” CRL副本,它必须在首次连接到站点时获取一份,这会使连接持续时间更长。
事实是,维护CRL并不适合近乎实时地发布和分发关键信息。由于浏览器正在缓存CRL以避免计算开销,因此可能会出现一个时间窗口,其中可能接受已撤销的证书,从而给用户带来隐私和安全风险。
关于OCSP及OCSP Stapling
针对CRL出现的问题,OCSP作为其代替方案出现,专门解决在PKI中使用CRL时遇到的一些困难。
什么是OCSP?
维基百科定义道,在线证书状态协议(OCSP,Online Certificate Status Protocol)是一种用于获取X.509数字证书撤销状态的互联网协议。
OCSP在RFC 6960中进行了描述,并且属于互联网标准轨道。
通过OCSP通信的消息采用ASN.1编码,通常通过HTTP进行通信。这些消息的“请求/响应”性质使得OCSP服务器被称为OCSP响应器。
OCSP怎么工作?
当用户请求证书有效性时,OCSP请求会发送到OCSP 响应器。该响应器会使用受信任的证书颁发机构检查特定证书,然后发回OCSP响应,响应内容为“有效”、“已撤销”或“未知”。
图示:使用OCSP检查证书吊销过程(图源:ascertia)
使用OCSP的注意事项
OCSP检查会引发部分用户的隐私问题,因为它要求客户端联系第三方(虽然该第三方是客户端软件供应商信任的)来确认证书的有效性。
此外,基于OCSP的吊销技术在防止HTTPS服务器私钥泄露时效果不佳。攻击者在滥用被泄露的私钥并假冒服务器时,通常需要处于网络中的中间人位置。而在这种情况下,攻击者通常也能干扰客户端的OCSP查询。由于大多数客户端在查询超时时会静默忽略OCSP,OCSP并不是防止HTTPS服务器密钥泄露的可靠手段。
在证书中使用MustStaple TLS扩展可以要求证书通过装订的OCSP响应来验证,从而缓解这一问题。OCSP对于非“中间人”攻击(如代码签名或误发证书)的情况仍然是有效的防御手段。
OCSP装订(OCSP Stapling)是一种在不向CA披露浏览行为的情况下验证有效性的方法。
关于OCSP Stapling
OCSP Stapling是对标准OCSP协议的增强,并在RFC 6066中定义。
OCSP Stapling通过将数字签名和时间戳的OCSP响应直接放置在Web服务器上来提升性能。
这个被“装订”的OCSP响应会在CA设定的预定时间间隔内进行刷新。这样的装订OCSP响应允许Web服务器在初始SSL握手过程中包含OCSP响应,而用户无需单独与CA建立外部连接。
使用OCSP Stapling检查证书吊销过程(图源:Keyfactor)
OCSP Stapling的优点与缺点
OCSP Stapling具有以下三个优点:
同样,OCSP Stapling也有一些不足。
来源|Keyfactor及公开资料
图源|keyfactor
编辑|公钥密码开放社区
重要声明:本文来自公钥密码开放社区,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。
相关文章推荐
2024-12-18 17:20:52
2024-12-18 15:40:40
2024-12-17 15:04:59
2024-12-16 14:37:57
2024-12-12 15:40:28
我的评论
还未登录?点击登录