OCSP装订(英语:OCSP Stapling),正式名称为TLS证书状态查询扩展,可代替在线证书状态协议(OCSP)来查询X.509证书的状态。[1]服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。[2][3]

动机

OCSP装订解决了在线证书协议中的大多数问题。[3]CA给网站颁发证书之后,网站的每个访问者都会进行OCSP查询。因此使用在线证书协议时,高并发的请求会给CA的服务器带来很大的压力。[4]同时由于必须和CA建立连接,OCSP查询还会影响浏览器打开页面的速度并泄漏用户隐私。[4]此外,当OCSP查询无法得到响应时,浏览器必须选择是否在无法确认证书状态的情况下继续连接,造成安全性和可用性二选一的困局。[5]

标准

RFC 6066 第8章中规定了TLS证书状态查询扩展的标准。

RFC 6961 定义了多证书状态查询扩展,允许TLS握手中发送多个证书的OCSP响应。

发展

对OCSP装订的支持正在逐步落实。OpenSSLMozilla基金会的协助下发布了支持OCSP装订的0.9.8g版本。

服务器端的支持情况:

软件名 版本
Httpd 2.3.3[6]
Nginx 1.3.7[7]
IIS Windows Server 2008[8]
HAProxy 1.5.0[9]
LiteSpeed Web Server 4.2.4[10]
F5 Networks BIG-IP 11.6.0[11]

浏览器的支持情况:

软件名 版本
Firefox 26[12]
IE Vista及以上的Windows。[13]
Chrome Linux、Chrome OS、Vista及以上的Windows[14]

SMTP方面,Exim在客户端[15]和服务器端[16]都支持OCSP装订。

局限性

OCSP装订可以降低OCSP验证的成本,特别针对有很多用户的大型网站。但是OCSP装订在同一时间只能发送一个OCSP响应,对有中级证书的证书链来说并不足够。[17][18]RFC 6961中提出的多证书状态查询扩展解决了这个问题,允许同时发送多个OCSP响应。[19]

参考资料

  1. ^ Eastlake, D. Transport Layer Security (TLS) Extensions: Extension Definitions: Certificate Status Request. Internet Engineering Task Force (IETF). January 2011 [March 2, 2015]. (原始内容存档于2016-10-18). 
  2. ^ Prince, Matthew. OCSP Stapling: How CloudFlare Just Made SSL 30% Faster. CloudFlare, Inc. October 29, 2012 [March 2, 2015]. (原始内容存档于2016-07-12). 
  3. ^ 3.0 3.1 Gibson, Steve. Security Certificate Revocation Awareness: The case for “OCSP Must-Staple”. Gibson Research Corporation. [March 2, 2015]. (原始内容存档于2016-04-15).  引用错误:带有name属性“Gibson-OCSP-Must-Staple”的<ref>标签用不同内容定义了多次
  4. ^ 4.0 4.1 A., Jesin. How To Configure OCSP Stapling on Apache and Nginx. Community Tutorials. Digital Ocean, Inc. June 12, 2014 [March 2, 2015]. (原始内容存档于2016-08-10).  引用错误:带有name属性“Digital-Ocean-Tutorial-OCSP-Stapling”的<ref>标签用不同内容定义了多次
  5. ^ Keeler, David. OCSP Stapling in Firefox. Mozilla Security Blog. Mozilla Foundation. July 29, 2013 [March 2, 2015]. (原始内容存档于2016-09-11). 
  6. ^ Apache HTTP Server mod_ssl documentation - SSLUseStapling directive. [2016-08-27]. (原始内容存档于2016-08-27). 
  7. ^ nginx-announce mailing list - nginx-1.3.7. [2016-08-27]. (原始内容存档于2015-05-31). 
  8. ^ Duncan, Robert. Microsoft Achieves World Domination (in OCSP Stapling). Netcraft Ltd. [28 April 2014]. (原始内容存档于2016-06-09). 
  9. ^ HAProxy website. [2016-08-27]. (原始内容存档于2016-08-26). 
  10. ^ Release Log - Litespeed Tech页面存档备份,存于互联网档案馆).
  11. ^ Release Note: BIG-IP LTM and TMOS 11.6.0. [2016-08-27]. (原始内容存档于2016-09-23). 
  12. ^ Improving Revocation - MozillaWiki, retrieved 2014-04-28
  13. ^ How Certificate Revocation Works. TechNet. Microsoft. 16 March 2012 [28 April 2014]. (原始内容存档于2016-03-07). 
  14. ^ Issue 361820: Check For Server Certificate Revocation checkbox is confusing. Google Code. Google. 10 April 2014 [2016-08-27]. (原始内容存档于2015-09-09). 
  15. ^ The smtp transport页面存档备份,存于互联网档案馆), retrieved 2015-01-24
  16. ^ Main configuration页面存档备份,存于互联网档案馆), retrieved 2015-01-24
  17. ^ Mozilla NSS Bug 360420页面存档备份,存于互联网档案馆), Comment by Adam Langley
  18. ^ Mozilla NSS Bug 611836 - Implement multiple OCSP stapling extension. [2016-08-27]. (原始内容存档于2016-09-23). 
  19. ^ Pettersen, Yngve N. The Transport Layer Security (TLS) Multiple Certificate Status Request Extension. Internet Engineering Task Force. June 2013 [31 October 2014]. (原始内容存档于2016-12-23).