关注网络安全
和行业未来

研究者发现:Let's Encrypt给包含PayPal名字的钓鱼网站颁发证书

Let’s Encrypt 2015年曾受到为钓鱼网站颁发证书的指控,并就其发布过声明。同时他们用谷歌的安全浏览API检索到一些恶意域,并没有为这些恶意域颁发证书。但是Let’s Encrypt和其他许多机构都认为,内容管理并不是证书颁发机构的职责,证书完全应该可以颁发给那些域的控制者,而不必去考虑其意图所在。本文于2017年1月16日发表在GoogleChrome成员Eric Lawrence的个人博客上。

使HTTPS证书“快捷、开放、自动且免费”的一个糟糕的后果(这虽然完全可以预料)是,不管好人还是坏人都会利用这一便利条件,为其网站获取HTTPS证书。

今天那些坏人能够轻易将一个很普通的钓鱼网站做得更可信:

他们可获取一个免费的“已验证域”的证书,并在浏览器地址栏点亮绿色的锁型图标:

这样做出来的钓鱼网站看起来几乎和真实网站一模一样:

到2016年12月8日止,LetsEncrypt已颁发了409个主机名中包含“Paypal”的证书;截至笔者截稿,这个数字已达到了709

其对象包括BankOfAmerica(14个证书)、 苹果、亚马逊、American Express、Chase Bank、微软、谷歌及其它主要商家。LetsEncrypt(在某一时刻)仅验证证书申请人可以在目标域上发布。证书颁发机构会很不情愿地检查SafeBrowsing服务,尽管它们“不认同”这应该是它们的责任,但还是会确定目标域是否已被认定为恶意目标,并被阻止。来自LetsEncrypt的短意见书值得一读,很多人对此也表示认同。

在颁发证书之前,证书颁发机构之间在验证工作上进行的“比烂”是导致IE团队十多年前率先开发Extended Validation证书的原因。期望着把证书颁发机构的名字放在地址栏上,能够激励他们尽力对网站所有者的身份进行核实。然而,之前提出的把所有类型(EV、OV、DV)证书的颁发机构的名字显著标注的建议并没有实行,因而已验证的域证书大部分都是匿名的,除非用户不厌其烦地手动验证网站的证书。而由于很多原因(今后的博客中会提到),EV证书绝不可能做到这一点。

当然,证书的弊端并不限于LetsEncrypt——其它证书颁发机构也同样为一些钓鱼网站颁发了已验证的域证书。比方说,comodo:

那么这个锅谁来背呢?

乱象的根源相对发散,难以找到替罪羊。

是浏览器厂商的错

一些(但并非全部)证书颁发机构的主张是,抗击恶意网站是用户代理人(即浏览器)而不是证书颁发机构的责任。这是一种有益的论点,特别是当我们真的想要对所有网站而不只是那些顶级网站进行加密时。

这一立场是有事实支持的:一些浏览器并不主动检查证书是否撤销。因此即使LetsEncrypt要撤销一个证书,浏览器也不会发出通知。

另一种论点是,浏览器在用户界面中使用了如“安全(secure)一类的术语”,也就是对网站的安全性进行承诺——虽然浏览器能知道一个给定的HTTPS连接是否存在并准确无误,但它还是无法知道目标网站或CDN的安全性,也无法知道网站的实际业务是什么。IE浏览器的HTTPS UX习惯用一个帮助链接“我应该相信这个网站吗?”,但这些内容某些时候会失效。安全提示词是一个很复杂的话题,因为用户真正想知道的是“这是否安全”,而这完全不是一个浏览器能够准确回答的。而当你告诉用户真相——“这个下载未被报告为不安全”——的时候,用户很可能会恼怒。

对付恶意网站有效的方法是,依靠钓鱼网站和恶意软件的黑名单。Safe Browsing服务保护着Chrome、Firefox和Safari的用户。你完全可以通过Safe Browsing服务报告你新发现未加入黑名单的钓鱼网站,从而保护其他用户的安全。你还可以向scam@netcraft.com或PhishTank转发钓鱼网站的有关信息。微软浏览器的用户可以向SmartScreen (在IE中点击Tools > SmartScreen > Report Unsafe Website)举报未列入黑名单的钓鱼网站。已知的恶意网址将会在用户界面上受到应有的惩罚:

不幸的是,黑名单是有延迟性的,钓鱼者通过一个网站获利很可能只需不到一个小时的时间。他们还会有一系列的手段来延迟黑名单对他们的阻止,如:当他们发现自己被安全研究人员的IP地址、浏览器类型、操作系统语言等加载时,即会返回一个无伤大雅的消息——“网站未找到”。

是网站的错

有些人认为错在网站,其理由是:

  • 依赖密码而不采用已出现几十年的无法假冒的双因素认证方案。
  • 不采用HTTPS或未正确部署它,直到浏览器在用户界面方面出现重大问题。
  • 经常更换域名和登录界面。
  • 发给用户带有指向重定向网站的不安全链接的邮件。
  • 向用户提供不妥当的安全建议。

是用户的错

最后,有很多人指责用户,他们认为用户的教育程度是改善这一状况的唯一途径。我早就对这种观点放弃希望了——所能期待的是,我们能够对一些用户向主动向自动登记类似钓鱼网站黑名单的高效系统反馈信息这件事引起足够的重视。

几十年来,网站和专家一直在告诉我们,当需要确定网站是否可信时,就“找那把锁”。甚至今天还有一些无知的安全专家提出糟糕的意见,就像下面这条来自Twitter安全团队的消息一样,该消息说:https://twitter.com.access.info是个合法网站。

我们何去何从?

不幸的是,我认为没有任何的灵丹妙药,但我同时认为,无法解决的问题才是最有趣的。网络的每个使用者和建设者都肩负一定的责任,他们应当让网络对所有人来说更加安全,每个人都应该尝试在自己的领域内去寻找解决办法。下面是一些散乱的想法,但我认为值得一试。

标识信息

从历史上看,在计算机的世界中,二元论对我们来说是最舒服的——这是一个恶意网址?是,或不是。不幸的是,现实世界却不是这样的;而幸运的是,很多系统都开始具有一系列标识。当我们评估一个网站是否可信时,有十几种标识信息可用,包括:

  • HTTPS证书
  • 网站的年龄
  • 用户此前是否访问过该网站
  • 用户此前是否在该网站存储过密码
  • 用户此前是否在任何地方使用过该密码
  • 该网站观测到的用户数量
  • 该网站主机所在地
  • URL或其内容中存在敏感词
  • 存在登录形式或可执行下载

这些信号中没有哪个足以单独确定该网站是好是坏,但综合起来看,它们可以用来向系统反馈信息,这会使好网站看起来更安全,坏网站看起来更可疑。可疑网站可以靠人工分析来进一步筛选,由安全专家甚至靠来自大众的有指向性的质疑来完成这一步。例如,看这个来自IE的SmartScreen 系统的启发式问题“这是个钓鱼网站吗?”:

用户对该提示的回应本身就是一个反馈到系统的信号,这使得对该网站是好是坏、是否需要被阻止的判断可以更快捷。

基于信号系统的一个情况是,当它们变得更强大而且有更多的端点报告信号时,那些报告的信号就可以对个人用户有所提示。

名誉

在现实世界,很多事情建立在名誉的基础上——没有好的名声,就很难找到工作,很难维持经营,甚至很难找到合作伙伴。

在浏览器中,我们有完善的坏名声(你的网站或下载出现在黑名单上)概念;但在建立完善的好名声的概念上,我们却非常落后。在我心中,这很是失败——虽然大部分异议是出于善意的(“我们想要一个人人都能公平竞争的环境”),但我们为了支持抽象的理想而惩罚用户确是令人沮丧的。

Extended Validation证书是建立好名声理念的一种尝试,但其受到证书颁发机构的商业计划和充满谬论的法律系统的困扰,例如:

虽然这件事有如下优点,在网上,不管你的网站是一个人建立的还是一个《财富》100强企业的网站,都会有明确的缺点。

Owen Campbell-Moore写了一篇非常奇妙的论文,《把URL栏重新看成第一用户界面》,在文中,他提出了一个“origin-to-local-brand mapping”假设,允许浏览器帮助用户在与顶级网站交互时更容易理解其实际所处的位置。我认为这是一个很聪明,却长期没有付诸实施的想法。而当它最终(被苹果、微软、谷歌或一些互联网新贵)实施的时候,我们会奇怪是什么把它拖了这么久。把这个系统付诸实施的一个关键权衡在于,设计者必须关注网站的“头儿”(就是说,全球最受欢迎的1000家网站)——试图把该系统大众化,成为一个公平竞争的环境是不现实的——就像在现实世界一样。

又或者

  • 浏览器又可以试着去默认支持不可假冒的认证方法了。
  • 浏览器可以做的更多,使认证脱离“死亡地带”,限制假冒攻击。
  • Must-Staple之类的新功能将允许浏览器响应证书撤销信息,同时不影响其性能。
  • 自动证书颁发机构可以部署推断的方法,要求对证书进行额外验证,其中包括一些经常被假冒的域。

例如,如果我想为paypal-payments.com申请一个证书,他们会要求我提供额外的个人信息(如果我是钓鱼者就可以由执法人员介入),或只是颁发一个有效期只有一个星期的证书。该证书将立刻被证书透明日志记录下来,当证书生效后,一旦检测到钓鱼行为,品牌监视公司就可以记录下来并立即响应。这样的系统仍不完善(例如,你需要把BankOfTheVVest.com视为BankOfTheWest.com的潜在假冒者),但我们只需瞄准少数高价值的域,就足以取得很大的进展。

网络钓鱼无处不在,抗击的路还很长!谨以此文,共勉!

稿源:text/plain

 

评论 抢沙发