关注网络安全
和行业未来

又一CA违规:浏览器社区是否应该不信任PROCERT?

你听说过PROCERT吗?直到上个月,我还从未听说过它。

它是在委内瑞拉运营的一个小型的政府下属的证书颁发机构。它只颁发过数百个为公众所知的证书,主要是为.ve域名(委内瑞拉的ccTLD)和其他委内瑞拉网站和机构颁发的。

PROCERT是数十个地区和政府证书颁发机构中的一个,这些机构在其本土市场之外几乎完全不为人所知。这些机构中有许多为其国家的政府颁发证书,迎合当地有关数字证书的法律。

这些证书颁发机构通常会受到监督,直到出现某些问题。法国政府的证书颁发机构“ANSSI”2013年被通过技术手段限制在法国领土上,因为它的证书被发现用于网络监听;而在2015年,中国互联网网络信息中心(CNNIC)在错误发布证书后不再被谷歌和Mozilla所信任。

现在,轮到PROCERT了。

PROCERT的根证书目前被Mozilla、微软和苹果公司所信任。但是三位独立研究人员发现的问题表明,该机构不应再得到信任。

最早的问题是在8月6日被报告的。Jonathan Rudenberg和Alex Gaynor报告了最初的问题,Andrew Ayer在本月晚些时候发现了其他的问题。PROCERT在无意中帮助分享了2016年通过1024为密钥颁发的一个证书,这一行为是在一次试图证明不同违规行为的失败尝试中出现的。

总共发现了7种不同的违规行为。Mozilla在8月16日正式提出了这一问题,而PROCERT目前还没有解决这一问题。但对于其中的许多问题,它的代表们说的最多的就是“正在采取措施来避免这些漏洞”,尽管这些代表一直被Mozilla要求提供一份完整的事件报告。

以下是不同的违规行为的完整报告:

  • 为一个“.local”域名颁发证书。为内部域名(无法注册的IP地址和域名,例如.local或“localhost”域名)颁发证书自从2016年以来就已经被证书颁发机构/浏览器论坛所禁止了。因为内部域名的名字没有一个权威的所有者,所以他们可以被任何人、所有人“拥有”,这代表着中间人攻击的安全风险。今年早些时候,Procert颁发了一个包含多个内部域名的证书——这是一个重大的违规行为。因为不可能确认.local域名的所有权,所以这表明Procert的证书颁发机构软件也不需要对域的所有权进行验证,或者可以对这一需求手动进行撤销。类似的错误也是过去出现的引起高度关注的证书颁发错误的原因。
  • 为一个URL,而不是一个域颁发证书。Procert为“http://ripac.insopesca.gob.ve颁发了一份证书。这里的错误是包括了“http://”——这是一个被多个标准禁止的格式错误,包括RFC 5280和证书颁发机构/浏览器论坛的基准要求。
  • 为预留的IP地址颁发证书。预留的IP地址是由IANA(因特网地址分配机构)预留的,用于特殊目的。一个众所周知的例子是“168.1.1”——这是大多数Linksys路由器使用的默认地址。整个“192.168.x.x“块是由IANA预留的用于私有网络使用的IP地址。

但是,Procert拒绝了这些要求,并在今年早些时候为192.168.244.100域颁发了一份证书。这种情况类似于上面的第一个问题,该IP地址是一个不能注册的内部域名。

1、作为主题备用名称(SAN)未包含公共名称(CN)。在一个域名可以被编码的证书中,有两个字段:公共名称(CN)字段和主题备用名称(SAN)字段。公共名称是一个已弃用的字段,在大多数客户端软件中都不再使用该字段,但它仍然为一些遗留的目的而存在。

证书颁发机构/浏览器论坛的基准要求指出,在公共名称字段中包含的域名也必须被列为主题备用名称。今年5月,Procert违反这一规定,颁发了一份单独的证书。

2、非随机的序列号。对于每一个证书颁发机构来说,SSL证书要包含一个唯一且随机的序列号。这既提供了一个惟一的标识符,也防止了碰撞攻击。

研究人员Andrew Ayer报告说,自2016年9月30日以来,Procert发布的每一份为公众所知的证书(总共24份证书)都违反了这一要求。

3、对不存在的证书做出“良好的”OCSP响应。OCSP(在线证书状态协议)是一个允许对单个证书的撤销状态进行检查的撤销机制。

在得到一个不存在的序列号后,PROCERT的OCSP应答器错误地做出了“良好”响应,这本应表示证书是有效的。

  • 以1024位密钥颁发证书。1024位密钥在相当长的一段时间内被认为是很弱的——并且证书颁发机构/浏览器论坛的基准要求从2010年开始就禁止使用1024位密钥来颁发新的证书了。

为了证明它的OCSP应答器工作正常,PROCERT尝试向2016年以1024位密钥颁发的一份证书提供了OCSP响应示例。在这一问题被指出后,PROCERT的代表说该证书在2012年过期了——这显然是不真实的。

总而言之,PROCERT已经错误地颁发了(至少)29个证书。尽管与其他一些证书颁发机构相比,这个数字显得微不足道,但这些问题背后的根本原因是非常令人担忧的。

证书配置文件是一个模板,它规定了特定证书的格式和字段。证书颁发机构应该使用严格定义的概要文件,以确保它们颁发的所有证书符合行业要求——并且它们需要一直这样做。

PROCERT违规的范围表明,它要么不使用定义良好的概要文件,要么经常手动规避这些配置文件。例如,为内部域名颁发证书表明,一名PROCERT的员工是能够凌驾于技术控件之上的,或者说这些控件根本不存在。对于1024位证书来说也是这种情况。

尽管向“autodiscover.fospuca.local”域颁发证书看起来不是什么大问题,但这背后的根本原因可能同样轻易地导致向google.com颁发未经授权的证书。这对整个互联网来说是一个重大的安全风险——这种风险会破坏整个Web PKI平台。PROCERT可能是为本地市场服务的,但它对整个互联网都负有责任。

最重要的是,PROCERT的反应表明它并不熟悉行业标准。它的第一反应是,错误地争论“http://”是允许的。然后,它又提出了另一个不正确的意见,要求社区提供一个OpenSSL命令来测试它的OCSP应答器。

我们真的需要一个(被数百万台设备所信任的)没有足够能力去了解怎样测试其自己的OCSP应答器,或者没有足够智慧去查找该问题的证书颁发机构吗?

自从Mozilla要求PROCERT提供一份事件报告以来已经有三个星期了,但PROCERT完全无法为其七项违规行为提供一份报告——或者任何可以算作是报告的东西。

这一事件是由一些研究人员的报告发现的,这些研究人员发现,30多个证书颁发机构错误地颁发了证书,其中许多机构已经能够提交(或者至少开始做出)正确的事故报告。从问题的严重性、问题的数量以及对行业标准认知的严重不足来看,PROCERT是其中最糟糕的机构之一。

两个星期前,谷歌的Ryan Sleevi说:“如果得不到有意义的、令人信服的回应,我的建议将会是,社区应该考虑从分配名单中移除这个的根域,和/或拦截它。”

PROCERT提供的唯一有意义的东西是一份不信任该证书颁发机构的理由的清单。PROCERT不止一次的好机会作出回应,然而很明显PROCERT不能或不愿意这么做。

是时候向这个证书颁发机构说再见了。

 

稿源:the ssl store

评论 抢沙发