Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Measurement and Analysis of Private Key Sharing in the HTTPS Ecosystem

论文下载

本文建议和When HTTPS Meets CDN一起看。

Abstract & Introduction

  • 问题点:网站会将自己的内容托管在第三方的服务器上,如CDN,web hosting providers等,从而需要和第三方托管商共享自己的证书私钥。
  • 研究点:大规模调查网站和和第三方托管商共享自己的证书私钥的情况。

  • 如果一个IP上的私钥除了属于它本来的拥有者A,还属于另外一个不同的组织B,那么作者认为A共享了它的私钥。

  • 发现:

    • 超过76%的组织和第三方托管商共享了至少一个私钥;
    • 如果黑掉最流行的托管商,可以获得Alexa top-1K中60%的域名的私钥;
    • 部分托管商不仅获得了它们客户的私钥,还代替客户管理证书。从证书吊销和重新签发行为上考量,托管商管理证书比客户自己管理证书表现要好。
  • 贡献:

    • 提出了一些新技术,能够分析多个数据集以了解“who owns, who serves, and who manages which certificates”;
    • 针对key-sharing的第一个全网范围的分析;
    • 提出证据表明自管理的证书没有外包管理的证书安全;
    • 所有代码和数据集开源在:https://securepki.org

DataSet

  • SSL certificates:Rapid7拿的数据;2013.10.30-2015.3.30;共收集38,514,130个不同的证书
    • 基于OSX 10.9.2的root store,用openssl找出了1,946个中间证书;
    • 基于以上根证书和中间证书区分出5,067,476个合法叶子证书,覆盖2,552,936个不同的域名;本文不考虑不合法证书;
  • Reverse DNS:同样用的Rapid7收集的数据;(DNS标准不要求IP地址拥有者提供reverse DNS entry)
  • AS Number and Organization:IP地址是按AS分的,每个AS由一个实体控制,判断IP属于哪个AS能够了解IP属于哪个实体。用的CAIDA的数据集。
  • WHOIS:现在知道了哪些IP地址上用了SSL证书,但不知道证书里的域名。利用WHOIS(查域名的IP及所有者)记录来分析。

Methodology

  • Determining who owns a domain:
    • 一个组织可能有多个域名,一个域名可能有多个证书。
    • 根据WHOIS记录里的email address来判断不同域名是否属于一个组织,但记录里有些邮箱需要过滤掉;
    • 四个步骤如图1:

Fig

Fig

  • Determining a site’s hosting providers:根据数据集二、三分析;将101,306,358个IP(77.7%)映射到托管商。

Fig

  • First- vs. third-party hosting:根据前面的结果判断一个证书由website本身还是第三方管理。

Trust

  • How many organizations share keys:8.8%的证书由多个组织管理。76.5的组织至少共享一个私钥。

Fig

  • How many keys do providers have:

Fig

  • How are SAN lists used:SAN list允许一个组织的证书对它的多个名字有效。但有些托管商在SNA list里包含了多个组织的名字。
    • 4%的证书不包含SAN list;
    • 92.8%的包含一个SAN list,里面的名字属于一个组织;
    • 3.2%(共161,810个)的证书SAN list里有一个以上的组织不同于Common Name域里的组织。

Certificate Management

Fig

Fig

Fig