当用户安装 Sennheiser 公司的 HeadSetup 软件时,几乎不知道该软件还会将一个根证书安装到受信任的根 CA 证书商店中。更糟糕的是,该软件还会安装加密版本的证书私钥,而它并没有开发人员想象得那么安全。
安装了这款软件的所有人都拥有相同的证书及其关联的私钥。正因如此,它可导致能够解密私钥在没有控制权限的其它域名下发布欺诈性证书,从而执行中间人攻击,在用户访问这些站点时嗅探流量。
虽然当用户卸载 HeadSetup 软件时会删除这些证书文件,但受信任的根证书并未遭删除。这就导致具有正确私钥的攻击者继续执行攻击,即使当该软件不再被安装到计算机上。
安全咨询公司 Secorvo 刚刚披露了一个漏洞并指出,这些证书是在对某计算机的受信任根证书 CA 商店做随机检查时发现的。他们发现了两个异常的根证书。发布者的名称表明,他们和 Sennhiser HeadSetup 工具软件有关。
当安装 HeadSetup 软件时,它会在计算机上放置两个证书。这些证书供软件通过 TLS 加密 web 套接字和耳机通信。
第一个证书名为 SennComCCCert.pem,它是一个根证书,而 SennComCCkey.pem 是该证书的私钥。
研究人员分析该私钥发现,它是通过 AES-128-CBC 加密的,而且需要找到正确的密码才能解密。由于 HeadSetup 程序也需要解密私钥,意味着私钥肯定在某个地方,在这个案例中,它位于名为 WBCCListener.dll 的文件中。
研究人员解释称,“为了解密文件,我们需要知道加密算法以及制造商用于解密的密钥。我们起初猜测制造商使用的是常见的 AES 加密算法,CBC 模式中具有128个位私钥。在 HeadSetup 安装目录中,我们发现只有一段可执行代码包含文件名称 SennComCCKey.pem,而该 DLL 文件名为 WBCCListener.dll。我们在该 DLL 包含的字符中寻找 ‘AES’。结果显示确实是算法标识符 aes-128.cbc。我们找到了制造商使用的和该算法标识符相近的密钥,它以明文形式存储在代码中。”
当攻击者将私钥解密到一个标准的 OpenSSL PEM 中时,再次需要密码才能使用。这个密码位于名为“WBCCServer.properties”的配置文件中。
研究人员获得根证书的私钥后,能够生成一个从 google.com 和 sennheiser.com 中签署流量的通配符证书中。而且其中一些网站是该耳机制造商的竞争对手 jbl.com、harmankardon.com 和 bose.com。
由于这个证书是通过安装了同样版本的 HeadSetup 的计算机中发现的同样的私钥创建的,因此其它计算机也可能易受该证书攻击。随后可能被攻击者用于执行中间人攻击,读取并修改这些网站的安全流量。
虽然这些站点中存在可被盗取的信息,但攻击者也可轻易地创建欺诈性的银行证书以窃取登录凭证、信用卡信息或其它敏感信息。
Secorvo 已负责任地将这个漏洞提前告知 Sennheiser,并被分配唯一的ID CVE-2018-17612。Sennheiser表示,HeadSetup 软件的更新版本将在11月底发布。安装后,这个更新版本将会删除受信任的根证书并确保删除软件后没有遗留任何证书。
同时,Sennheiser 还为想要立即受到保护的人发布了一个用于删除该证书的批处理文件和信息。强烈建议所有 HeadSetup 用户下载并执行该脚本以删除易受攻击的证书。
微软已经发布题为《不慎发布的数字化证书可能导致欺骗》的安全公告 ADV180029,解释称微软已经发布了证书信任列表更新版本以删除对这些证书的信任。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/123023.html