通配符SSL证书和网络钓鱼是天作之合?

0
180

通配符证书是如何“隐藏网络钓鱼”的?

自从免费和自动化的SSL证书普及以来——主要通过Let’s Encrypt,但也通过Cloudflare——网络钓鱼网站上证书的使用大幅飙升。它已经成为了行业里最热门的辩论话题之一—一个拥有不同强烈反对方的敏感话题。

今年,Let’s Encrypt将开始支持通配符证书了,这将为网络钓鱼辩论增加另一个新的角度,因为通配符证书有一种能够掩盖预期意图的独特能力。

犯罪分子和网络诈骗者将很有可能利用通配符证书隐藏主机名,并使得他们更加变化多端。通配符证书甚至可能会替代单一域名证书,成为最佳的工具。

通配符证书可以如何帮助网络诈骗者?

在传统的SSL证书中,所有的主机名都是列举在证书中的。客户会检查这些主机名,以便确保它们只在访问这些站点时才使用证书——并且当它们和其他的主机名一起使用时,会将它们视为无效。

而单域名证书只包含一个主机名:www.example.com。多个域名证书能够允许多达数百个主机名。每一个都是单独列举出来的——www.example.com, mail.example.com, cpanel.example.com,等等。

而通配符的工作原理完全不同。在一个通配符证书中,域名最左边的标签会用一个星号代替。这是代表“通配”字符的意思,它告诉客户这个证书对于那个标签下所有可能的名称都是有效的。在一个通配符中,包含在证书中的主机名将会是“*.example.com”,并且它对于所有我们在上面列举出的名称都是有效的。

如果你想要利用一个单域名或多域名证书攻击Paypal,苹果或Barclays银行,你将会收到一个包含像这样的名称的证书:

paypal.secure-account.com

Apple-id.support-com.online

bankofamerica.verify-account.com

而如果你想要利用一个通配符证书来为这些同样的公司创建一个网络钓鱼网站,它看起来将会是像这样:

*.support-com.com

当一个客户收到那个证书时,它就会把“paypal.support-com.com”或“apple-id.support-com.com”或其他任何字母和数字的组合看作是有效的站点。根据你的根域名的通用程度,你就可以使用那一个证书进行所有这些网络钓鱼诈骗。

这一性质能够允许通配符证书隐藏我们称之为的“鱼饵”,就是这个部分确定了大多数的网络钓鱼目标。

然而,通配符证书有一些使用场景方面的限制。证书上只能有一个“*”,并且它必须位于最左边。因此,www.*.secure.com就是不允许的。并且它还不能直接用于顶级域名(TLD)之后。因此,“*.com”也是不允许的。

这意味着“鱼饵”也必须位于最左边的位置。因此,下列仿照真实世界的网络钓鱼网站便不能够从一个通配符证书中获取任何好处:

paypal-com-update.net

www.paypal-limited.us.helpsecured.cf

自通配符证书问世以来,使用它们来隐藏网络钓鱼网站就一直成为了一种可能。你可以从任何一家证书颁发机构(CA)购买一个通配符证书,而且他们基本上无法阻止你使用它作别的用途,因为他们用来防止为一个钓鱼网站发行证书的方式要求他们知道主机名。

多年以来,网络钓鱼诈骗者就一直在使用通配符证书。然而,因为相比一个单域名证书,网络钓鱼证书的花费通常高出4倍,所以对于大多数网络钓鱼来说,在经济上是不可行的。绝大多数使用了SSL证书的网络钓鱼网站使用的都是单域名证书,因为它们更便宜,或者完全就是免费的。

为什么它如此重要?

SSL世界近来的另一个最新进展便是证书透明性,或CT。

CT是一个在集中列表中公开记录(“正式记录”)SSL证书的系统。这就允许对CA机构进行监督,以及检测那些不恰当颁发的或未经授权的证书。通过监控这些记录,我们几乎就可以获取CA将要颁发的证书的实时更新,从而用以发现包括攻击CA在内的许多问题——如2011年发生在DigiNotar身上的黑客事件。

这些记录的另一个好处是,可以把它们看作是一个发现新钓鱼网站的检测系统。通过定期查询可能会被使用的词语,如“Paypal,”你就可以快速发现新的钓鱼网站的主机名,并阻止它们,或把它们标记为可疑。

证书颁发后,就可以在30分钟内对记录进行更新,这使得它成为了最快的发现潜在恶意网站的主机名的方法。我们知道至少有一些企业就是使用记录来达到这一目的的。

通过把记录看作网络钓鱼检测系统,想要使用SSL证书来使其外表合法的网络钓鱼者事实上使得他们更容易被抓住了。

然而,只有所有主机名都包括在证书中,这一方法才有效,并且该方法对通配符并不起作用。当我们搜索记录时,我们并不会看到“paypal.online-account.us”,而只会看到“*.online-account.us。”

如果大量的网络钓鱼网站开始使用通配符证书,而不是单域名或多域名证书,这就将使得CT记录变成了一个无效的检测系统。

除了积极使用记录来把它看作是一个网络钓鱼检测系统外,搜索这些证书的能力对研究也是很有帮助的。今年早些时候,我们使用SSL证书量化了“Paypal”网络钓鱼网站——如果网络钓鱼诈骗者广泛使用通配符证书,这将变得更为困难。

为什么不用担心?

尽管通配符证书能够使网络钓鱼诈骗者的生活变得更容易,使研究人员的生活变得更艰难,但是它们还是有十分重要的用途的。

在一些使用案例中,单域名或多域名证书不能很容易地进行适应。比如,如果你想要向注册了你的服务的每一个用户分配一个独特的子域名: cpanel-01.example.com,cpanel-02.example等等。

必须时常为这些主机名发行新的证书,这是一个许多网站都不能进行解决的巨大挑战。有时,软件对它可以服务多少个证书进行了限制,如果用户拥有多个域名证书,并且必须单独列出所有的主机名,这就会造成一种局限。

当证书透明性变得对所有CA机构都是强制性的(2018年中),考虑到将其主机名公开将成为一个漏洞,或者成为一个他们宁愿保持未知的识别服务,一些用户将想要利用一个通配符来“隐藏”他们的子域名。

通过搜索CT记录来发现和攻击未经身份认证的web应用程序,研究员Hanno Bock证明了这个方法的可用性。尽管依赖一个安全的“黑盒”模型来隐藏你的域名不是解决该问题的一个恰当的方式,但是它确实表明了通配符还有另外一个好处。

因此,“杀死”通配符证书并不现实,而是我们需要意识到和适应这一新的行为,我相信,在 Let’s Encrypt今年开始免费提供它们时,该行为将变得十分普遍。对于许多网站和需要免费证书的用户来说,这将是一个很大的好处,尽管通配符证书有被钓鱼网络犯罪分子利用的风险,但相比看来,好处远大于坏处。