Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

An End-to-End Measurement of Certificate Revocation in the Web's PKI

论文下载:https://www.cs.umd.edu/~dml/papers/revocations_imc15.pdf

Abstract & Introduction

  • 这篇文章主要研究了PKI体系中证书吊销的相关问题,主要包括以下3点:
    • 服务器对证书的吊销和替换;
    • CA提供CRL和OCSP的情况;
    • 不同平台中不同浏览器对吊销证书的处理方法。

Data Collection

  • SSL Certificate:
    • 作者用Rapid7工具扫描整个IPv4地址空间的443端口,进行了74次扫描,得到38,514,130个不同的证书。
    • 预处理证书共得到1,946个中间证书,称为Intermediate Set。
    • 用OpenSSL校验证书,排除不合法证书,除了有日期错误的,得到5,067,476个证书,称为Leaf Set,其中2,291,511个(45.2%)个在最新的443端口扫描中出现。
  • Obtaining Revocation Information:
    • Leaf set中,99.9%的证书提供了一个潜在可达的CRL发布点,95%的提供了一个OCSP响应点。4,384(0.09%)的证书什么都没提供。,也就意味着它们不可能被吊销。
    • Intermediate Set中,98.9%的证书提供了CRL,48.5%的提供了OCSP。
    • CRLS:得到2,800个不同的CRL。
    • OCSP:观察到499个不同的OCSP响应点。
  • Definitions:
    • Fresh:证书有效期内的时间称为fresh period。
    • Lifetime:证书被服务器使用就称它alive,理论上证书的lifetime应该是fresh period的严格子集,实际上不是。

Website Admin Behavior

  • Frequency of Revocations:
    • 收集到的证书里8%的是被吊销的,大部分是由于Heartbleed吊销的。
    • 少于1%的证书是alive,即仍被使用。
    • EV证书中,6%的已被吊销,0.5%的alive证书被吊销。

Fig

  • Reasons for Revocation:大部分吊销证书都没有CRL reason code(用来说明证书为什么被吊销:”Unspecified”、”Key Compromised”、”Privilege Withdrawn”)
  • OCSP Stapling:要求服务器端实现这个支持(CRL和OCSP都只涉及CA)。
    • 服务器有时候没有缓存一个合法的staple也不会再response里包含staple。
    • 随机选取20,000个服务器,连接它们测试对OCSP Staple的支持情况。
    • 在TLS握手扫描的数据中,2.6%的服务器支持OCSP stapling。
      • 扫描涉及的2,298,778个证书里,5.19%的被至少一个支持OCSP Stapling的服务器使用,所有使用某证书的服务器都支持OCSP Stapling的证书占3.09%。
      • EV证书中,3.15%的被至少一个支持OCSP Stapling的服务器使用,所有使用某证书的服务器都支持OCSP Stapling的证书占1.95%。

Fig

CA Behavior

  • Availability of Revocation Information: CRL会带来带宽负担。OCSP会影响页面加载时间。

Fig

  • Size of Revocation Information:
    • CRL大小和里面记录数时线形相关的。平均每条记录38 bytes。
    • CRL最大有76MB。95%的CRL会在24小时内过期。
    • 有一种减小CRL大小的技术是每个CRL只包含某CA所签发证书的子集。

Fig

Fig

Client Behavior

  • Methodology: 生成了一个root证书装到浏览器里,再用这个root证书生成中间证书和叶子证书给浏览器测试。测试集包含不同的证书链长度和吊销协议的组合。
    • Chain Length:每个链有0-3个中间证书。
    • Revocation Protocol:部分证书有CRL,有的有OCSP,有的都有,也配置了支持OCSP stapling的服务器。
    • Extended Validation:生成了部分EV证书,叶子证书包含一个OID说明它是EV证书。
    • Unavailable Revocation Information:设置4种情况看浏览器如何处理证书:
      • 吊销服务器的域名不存在。
      • 吊销服务器返回HTTP 404.
      • 吊销服务器不响应。
      • 吊销服务器返回unknown。
  • Desktop Browsers:设置了不同的浏览器/操作系统组合,每个组合设置一个VM,操作系统包括Ubuntu 14.04, Windows 8.1, OS X 10.10.2。共有30个不同的组合。

Fig

  • Mobile Browsers:用的都是模拟器来测。包含iOS/Android/Windows Phone。
    • iOS 67/8:Safari不检查任何证书吊销信息。
    • Android:4.¾.4/5.1这3个版本下进行测试。
      • Stock、Chrome:不检查吊销信息,但是流量里有请求OCSP staple,请求回来的信息没有用来检查证书。
      • Firefox:没能导入根证书。
    • Windows Phone:不检查吊销信息。

CRLSets

  • 谷歌针对一小部分吊销证书设置的,Firefox有一个类似的项目OneCRL(只包含8个吊销证书)。
  • CRLSet:
    • 文件大小不能超过250KB;
    • 内部CRL合集;
    • 一个CRL的条目数太多就会从Set移除。
    • 这里面的吊销证书要有CRLSet reason code。