Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

安全论文每日读 2015.02.17

今天继续介绍密码学误用的分析检测论文,论文名字叫做:When Private Keys are Public: Results from the 2008 Debian OpenSSL Vulnerability

作者:Scott Yilek, Eric Rescorla, Hovav Shacham, Brandon Enright, Stefan Savage\

单位:UC San Diego, RTFM, Inc.

Abstract

  • 本文讨论了在Debian Linux版本的OpenSSL中发现的一个漏洞的后果。受影响的系统会产生可预测的随机数和公私钥对。分析扫描了50,000个SSL/TLS服务器,751个使用有漏洞的证书。
  • 本文发现,这个漏洞公布以后,主机的修复速度很慢,公布6个月后还有30%左右的有问题的服务器有漏洞。
  • 分析了更新速度慢的因素。
  • 发现有CA仍然签发带有弱密钥的证书给服务器。

Introduction

  • 2006年,在Debian Linux发布版本中的OpenSSL增加了一个漏洞修复,这个修复除了修复漏洞外,它把OpenSSL的熵收集过程去掉了。直到2008年这个问题才被发现。受影响的版本的可用熵都很有限,产生的公私钥对是可预测的。
  • 修复这个漏洞比修复其他漏洞复杂,因为服务器的长期公私钥对被攻破了,服务器要更新key,这页意味着SSL服务器需要获取新的证书。
  • 本文研究了修复这种类型漏洞的情况,并将它与修复其他类型漏洞的情况进行了对比。
  • 作者在漏洞公布后不久对流行SSL服务器进行每日扫描,持续了6个月左右,发现1.5%左右的服务器用弱密钥证书,就重点研究这些服务器的修复情况。
  • 调查还可以发现用来生成弱密钥的机器的架构和相关进程ID。

Related work

本文的研究基于两类之前的工作:Demographic surveys of SSL servers,Longitudinal studies of vulnerability fixing。 – SSL Server Surveys:之前的survey都是调查新版本SSL的部署、对强密码算法的支持、合法第三方证书的使用等情况。2000年 Murray调查了8081个服务器;2005-2006年Lee把这个工作扩展到19,429个服务器。Netcraft进行了一个月的全网扫描分析证书合法性。 – Studies of Vulnerability Fixing:Rescorla和Ramos之前研究过对应漏洞的更新速率的情况。一般严重漏洞的更新速率非常快。

The Vulnerability

Debian OpenSSL 随机性漏洞。

  • Overview of the Bug: OpenSSL的PRNG是一个确定性函数,知道输入和调用次序的攻击者可以预测输出。为了使PRNG安全,熵池必须从/dev/random或者其它攻击者不知道的熵源中取种。而这个bug,是修复另一个漏洞是把生成随机数时的选种过程的代码给删掉了,这导致初始选种时使用到的唯一的随机值是当前进程ID-pid,Linux平台默认最大进程号是32,768,所以生成随机数的种子值范围很小。
  • The Effect of the Bug on SSL:
    • 大多主流浏览器不用OpenSSL,IE用微软的SChannel,Firefox用NSS。OpenSSL是服务器平台的主流实现。

对于RSA Key Generation,由于漏洞的存在,攻击者可以预先生成密钥对,一旦发现有跟公钥匹配的就知道了对应私钥。