Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Towards Short-Lived Certificates

论文下载

摘要

  • 【现状】客户端在验证证书的合法性时,要考虑到证书是否出于各种原因被撤销或过期,现有的验证方式包括OCSP协议和 Chrome CRL,然而这两种方式都有缺点。
  • 【工作】文章针对现有方式进行评判,并提出了Short_Lived cert,即短周期有效证书,与Chrome CRL相结合,提高证书验证的安全性和效率。

Introduction

  • X.509证书本身具有一定的有效期限,同时由于某些原因也会导致服务器证书提前失效,比如服务器私钥泄露、域名更改、CA被欺骗等。
  • 目前客户端针对这种情况,有两种检验算法,分别为OSCP协议和Chrome CRL。
    • 对于OCSP协议,在SSL证书验证环节,会有多余验证,增加网络消耗。
    • 对于Chrome CRL,当出现新的撤销证书时,会通过强制客户端软件更新,完成CRL更新,这种方式不适用于其他浏览器和通信平台,并且受空间限制,客户端保存的CRL也不够详尽,并且由于Chrome的大量使用,revocation掌握在google手中而不是CA。
  • 针对这些情况,作者提出了一种新的证书形式,当server向CA申请到一个一年期证书时,CA提供一个供下载的URL,服务器端的plug-in会周期性从该URL下载短效证书,对于这种短期证书,只需要检测证书有效期,而不用管是否特殊原因撤销。文章介绍了整个体系的设计方式,执行过程,并在最后给出了该系统的的优缺点。

Background

  • 【CRL】 1.有早起调查显示30%的注册证书在两天内会因各种原因撤销,CA实时维护会有很大耗费,间隔时间长又会有危险。 2.CRL在客户端会占用越来越大空间。
  • 【OCSP】 1.91.7%的OCSP是多余的请求,耗时多余100ms。 2.OCSP的服务器有可能被攻击,其响应会不准确。 3.有些网络不稳定的情况下,client无法访问到OCSP服务器。4.OCSP服务者会或者用户所访问的网站,导致信息泄露。

Design

  • 【Certificate Authority】
    • On-demand mode 签发方式:CA私钥在线保存,CA拥有一个模板证书,当有用户申请时才生成一个证书发放给server,并且在申请时生成该证书的有效时间。
    • Ore-signed mode签发方式:CA私钥离线保存,CA维护一个证书池,在server申请证书时,选择一个时间合适的发放。
  • 【server plug-in】 服务器会安装一个plug-in,用来管理短期证书。当证书快要过期时,想CA再申请一个新的短期证书。
  • 【Client-Side Pinning】对于正常的SSL通信,client不用做任何更改,作者对client端做相应加强,当客户端收到某个服务器的短期证书时会做下记录,在以后只接受该服务器的短期证书而阻断长期证书。同时Client-Pinning可以防止攻击:当攻击这某次成功攻击CA拿到证书时,只可用做一次的短期证书校验,当更换了短期证书时,攻击者还要从CA拿证书,这样提高了CA检测到攻击者的可能性。

Implementation

Fig

CA在接受到server发来的请求时,会选择两种方式中的一种进行证书签名,同时对应于一个common name,CA会生成server的不同公私钥对的多个短期证书。在服务器端的plug-in,会设置一个证书系统,当老证书过期时,就请求新证书清空过期老证书。图中解释了整个体系的运行过程。Shortlived-cert模式结合Chrome CRL,利用这种结合的方式,CA从Chrome取回了对证书撤销检查的权利(Chrome不可能对每个短期证书都做revacation),同时Chrome CRL又保证了短期证书CA出现问题时,能够及时补救(Chrome只做根CA的revacation)。

Analysis

  • 【advantage】1.不用每次都进行OCSP环节检验,同时省去了CRL及时更新以及占大量空间的情况。2.当CA被攻击时,更换证书时,短期证书的更换更为方便。
  • 【disadvantage】1.对于on-demand mode,private-key在线保存会有被盗危险。对于pre-signed mode方式,证书池存在被攻击危险。2.客户端时钟决定了证书是否过期问题。3.当CA遭受DDOS攻击时,会产生server无法及时更新证书的问题。