证书论文阅读笔记

开摆

Re-check Your Certificates! Experiences and Lessons Learnt from Real-world HTTPS Certificate Deployments

HTTPS现在几乎已经成了浏览器和网站的标配,但不正确的配置也会导致问题。本文针对中国211高校域名(CERNET)的HTTPS证书展开分析工作,调查了最近一系列关于 HTTPS 证书签发、部署和撤销的研究论文,总结过去五年现代证书管理的趋势;然后从五个角度:主题备用名称(subject alternative name, SAN)不匹配有效期过长证书链断裂证书不透明和过时的加密算法,对CERNET的HTTPS部署展开正确性调查;此外,还调查了四个可用性因素:证书指示符、证书签发人、证书共享和证书吊销,分析它们和安全性的关系。作者共花费12周,每周统计一次数据,并进行分析。

在第二章中,作者介绍了近些年HTTPS证书管理的内容,这一块内容说的比较杂,先讲HTTPS的方案:SAN(SAN 的存在使得一个证书可以同时适用于多个域名,从而简化了证书管理的复杂性,它把证书分为了三类,单域名证书、通配符证书和多域名证书)、证书链。证书颁发机构(CA)的努力,如Let's Encrypt免费自动签发域名验证证书(DV),除了这个还有扩展验证 (EV)、个人验证 (IV) 和组织验证 (OV)证书。第三是从证书透明度和撤销机制入手,在线证书状态协议(OCSP)是最广泛使用的证书撤销机制,OCSP stapling用于缓解延迟,OCSP Must-Staple会阻止没有通过OCSP stapling的站点;证书透明度(CT)会将已签名的证书时间戳(SCT,代表提交时的承诺与最大合并延迟)嵌入证书中。最后是介绍证书分享,一方被破,全员遭罪,这将引入很大的安全风险。

接下来,作者开始介绍他们的工作,将从下面三个问题进行:

  1. 证书部署的总体趋势如何?
  2. 用户因素如何影响证书的部署?
  3. 有多少用户和哪些类型的网络服务会受到影响?

在开展数据分析前,首先要做的工作是获取CERNET的各个域名和子域名,后者则是通过 Sublist3r自动生成子域名和 ctr.sh CT搜索引擎来获取,得到了31,211个域名,19,493 (62.45%)个域名可访问,11,718 (35.54%)个域名存在访问问题。继续利用 Requests来从HTTP和HTTPS访问这些域名以检查他们的可访问性,得到了如下图的统计结果:

image-20230821172040654

接下来,为了分析是否存在五个方面的问题,作者获取每个域名的证书,以Chrome Root Store、Apple OS , Mozilla, and Windows Root Certificate Program中的98个根证书作为可信根证书列表,来分析得到的域名数据。具体来说,使用OpenSSL的报错信息来验证证书链,对其他四个问题,使用pyOpenSSL来解析证书,提取每个字段的信息和预设的标准进行比较。统计结果如下表所示:

image-20230821190516277

  • SAN不匹配:域名如果不在证书的SAN字段则被认为符合这种情况,结果由下图总结。还有个有趣的事实是在1680个不匹配的域名中有1171(69.70%)个是多级域名,但通配符证书只能匹配一级。

    image-20230821192244853

  • 有效期过长:2020年1月1日以后的证书有效期不允许超过398天,如果在以前,则考虑不超过825天。结果由下图总结。作者同样考虑了有效期较短的问题——管理员会忘记更新证书,结果表明70%过期但仍被使用的证书有效期较短。

    image-20230821192817522

  • 证书链断裂:如果域名提供的证书不能将叶证书连接到根证书则视为符合这种情况。8%的域名没有安装中间证书,在第十周证书链断裂的数量从1042增长到了1211,98.16%的都是由于证书更新。我们发现 89.00% 存在此问题的域名只提供了叶证书。这表明出现此问题的主要原因是管理员不知道安装完整的证书链。剩下的 11.00% 域名提供了错误的中间证书。其中,大部分域名(90.23%)将叶子证书作为中间证书。9.77% 的域名提供了以前使用过的证书的中间证书,这表明管理员在更新后忘记更改证书链。

  • 证书不透明:2018年4月以后证书不提交SCT则视为符合这种情况。在指定日期后签发的1789个证书中,只有85个没有设置SCT字段,并且它们都是自签名证书。在指定日期以前有 199 个域名在未设置 SCT 的情况下安装了四个证书。

  • 过时的密码学算法:使用MD5、SHA1和RSA有效bit为1024的则视为符合这种情况。统计结果由下图总结:

    image-20230821193954874

为了回答问题2,作者提出了四个可用性因素(?,Usability Factor)

  • 证书指标类型:使用 EV policy Object Identifier (OID) set 来筛选EV,其余用Subject字段区分,统计结果如下图所示。作者发现大多数证书(75.94%)都是 DV 证书,而大多数域名(65.48%)都疯狂地安装了 IV/OV 证书。 EV 证书的无效比例最高(83.70%),DV 证书的无效比例最低(24.99%)。在 IV/OV 证书中,我们发现 98.97% 的域名与他人共享证书,55.09% 的证书被错误部署。

    image-20230821195207400

  • 证书颁发者的选择:从证书 Issuer Name 字段的 commonName 中提取 CA 名称。

    image-20230821200041544

  • 多个域名共享证书:结果如下图所示。一个有趣的事实是80%无效部署的域名都是使用了付费CA

    image-20230821200539018

  • 证书申请者的撤销选择:作者发现有 1,750 份由可信 CA 签发的证书提供了 OCSP 信息。对于过期的证书,我们提取了签发者,以评估现代浏览器是否无法识别其根证书。作者发现没有证书在有效期内被吊销。过期证书被浏览器撤销了,并且过期了很长时间,这表明被动撤销对管理者来说是未知的。在安装了 1,750 份证书的 11,673 个域名中,作者发现只有 1,828 个域名(15.66%)在服务器端配置了 OCSP 装订,而且没有一个域名在证书中设置了 OCSP Must-staple。(这个不知道怎么来的)

最后回答问题3,统计使用广泛程度,列出了一些常用服务和使用人数,不清楚如何统计的人数。