荷兰安全公司CompuTest的安全研究员Thijs Alkemade在以色列公司StarCom创建的发布免费SSL证书的工具StartEncrypt中发现多个设计和执行缺陷。
StarCom受到Let’s Encrypt项目的启发,在6月4日推出StarEncrypt项目。想要部署免费StartSSL证书的用户只需下载一个Linux客户端并将其上传 到服务器即可。这个客户端会执行一个域名验证流程,通知StartSSL服务,随后为运行在服务器上的域名发布并安装一个“扩展验证”SSL证书。
StartEncrypt含有设计和执行缺陷
CompuTest公司指出,这个验证进程中存在缺陷,而且服务器所有者只需通过一些小技术就能接收到其它域名的SSL证书如脸书、谷歌、Dropbox等等,随后这些证书就会出现在黑市上或者被用于中间人攻击中。
研究人员发现的第一个漏洞是设计问题,用户能够手动配置客户端从服务器下载签名的文件夹。攻击者只需将工具指向托管着另外一个域名的签名的服务器上的一个文件夹。这些域名签名能够从允许用户上传文件的站点如GitHub、Dropbox等中被提取出来。
第二个问题更加严重,因为它允许攻击者获取更多域名的SSL证书。研究人员指出,其中一个API验证调用中包含一个名为“verifyRes”的参 数,它接受URL作为输入。也就是说客户端易受开放重定向漏洞的影响,攻击者能够伪造这个请求并且将工具指向不受控制的服务器中。但是这种功能也不是那么 容易就被利用。攻击者需要将工具指向的域名URL必须(1)允许用户上传文件并以原始格式返回;或者(2)包含自身的开放重定向问题。
虽然第一个条件很少见,但是第二个并非如此。所有支持OAuth 2.0即支持社交登录功能的标准的网站必须允许能让该协议正常起作用的开放重定向。利用这个OAuth 2,0和StartEncrypt客户端的犯罪分子能够哄骗StartSSL服务以他的名义为任何支持OAuth 2.0的网站发布免费的SSL服务如脸书、推特、雅虎、微软等。
其它问题
此外,CompuTest还发现StartEncrypt并没有检查自己服务器证书连接到API时的有效性,也就是说犯罪分子能够接收到验证请求并为试图使用StartEncrypt的用户发布错误的SSL证书。
API也不会验证其为了验证而下载的内容文件,这样攻击者就能够以第三方网站的名义获取证书。用户能够上传形象化符号、证书私钥。此外,跟 Let’s Encrypt项目一样的是,StartEncrypt易受“重复签名密钥选择(Duplicate-Signature Key Selection)”攻击的影响。安全研究人员认为StartCom并未从Let’s Encrypt项目中汲取经验教训。
StartCom已经发布了StartEncrypt Linux客户端新版本,序列号仍为1.0.0.1。CompuTest指出已将其它问题报告给了该公司,该公司随后将会提供修复方案。
今年3月份,StartSSL曾面临着一个类似问题,允许犯罪分子得到他们并不拥有的域名的SSL证书。
====================================分割线================================
本文转自d1net(转载)