关注网络安全
和行业未来

【最终处理措施】Mozilla取消对沃通与StartCom新签发证书的信任

10月24日,Mozilla在其安全博客公布了对沃通CA和StartCom的最终处理措施。Mozilla 决定不再信任目前包含在 Mozilla 根证书项目中的沃通根证书(Root certificate)和StartCom 根证书今后颁发的服务器证书。即:它不再信任在10月21日之后签发的沃通CA证书,并从 Firefox 51 起移除对4个沃通根证书的信任。

 【事件回顾】

Mozilla 发现 沃通(WoSign)证书颁发机构(Certificate Authority;CA) 发生许多技术与管理上的错误。最严重的是,其他 CA 为安全性考虑,已经从 2016 年 1 月 1 日起停止签发 SHA-1 SSL 证书,但 Mozilla 发现沃通窜改了该 SSL 证书的日期,就为了规避此停止颁发日期。此外,Mozilla 还发现沃通并购同业StartCom并完整取得其经营权之后,也未依照 Mozilla 政策而公开披露此并购行为。在整理相关有效数据证实所言非虚之前,沃通 StartCom 的负责人更对上述指控一概否认。

 基于公司负责人表现的欺瞒行为,Mozilla 决定不再信任目前包含在 Mozilla 根证书项目中的沃通根证书(Root certificate)和StartCom 根证书今后颁发的服务器证书。

 对此,Mozilla采取了下列具体措施:

1.针对有效期起始日期在 2016 年 10 月 21 日之后的证书,且证书链中包含以下受影响根证书,现一律取消对其的信任。如果被(以任何方式)发现继续通过窜改日期欲规避此控制方式的行为,Mozilla 将立刻且永久撤销受影响的根证书。

CN=CA 沃通根证书,OU=null,O=WoSign CA Limited,C=CN
CN=Certification Authority of WoSign,OU=null,O=WoSign CA Limited,C=CN
CN=Certification Authority of WoSign G2,OU=null,O=WoSign CA Limited,C=CN
CN=CA WoSign ECC Root,OU=null,O=WoSignCA Limited,C=CN
CN=StartCom Certification Authority,OU=SecureDigital Certificate Signing,O=StartCom Ltd.,C=IL
CN=StartCom Certification Authority G2,OU=null,O=StartCom Ltd.,C=IL

2. 将先前查明的由受影响根证书签发的窜改了日期的SHA-1 证书加入到 OneCRL

3. 不再接受安永会计师事务所(香港)(Ernst & Young Hong Kong)的审计报告。

4. 未来将择期自 Mozilla 根证书数据库中移除受影响的根证书。如果沃通的新根证书达到可接受的标准,Mozilla 可能会根据沃通的规划来调整移除证书的确切日期,以便将其客户迁移至新的根证书。否则 Mozilla 将于 2017 年 3月之后的任一时间移除根证书。

5. Mozilla 保留采取进一步或者其它措施的权利。

如果网站所有者在 2016 年 10 月 21 日之后,接收到以上两家 CA 之一所签发的证书,则该证书将于 Mozilla 产品(如 Firefox 51 或以后的版本)中失效,除非这两家证书颁发机构提供了使用不同主体唯一识别名称的新的根证书,并且手动导入了对应于服务器证书的根证书。在Mozilla 的根证书数据库纳入新的根证书之前,该网站的用户也必须手动导入新的根证书。

如 Bug #1311824Bug #1311832 分别对沃通以及 StartCom 所述,此两家 CA 均可重新申请加入新的(替代)根证书。

Mozilla 安全团队认为相关回应措施与 Mozilla 政策非常一致。若其他 CA 也通过类似的欺瞒手段,企图规避 Mozilla 的 CA 证书策略CA/Browser Forum Baseline Requirements,或是 Mozilla 负责人的直接询问,Mozilla 均将采用相同的应对方式。

(来源:Mozilla安全博客)

GlobalSign OSCP故障致使大量网站证书被吊销

北京时间 10 月 13 日下午 6 点左右,GlobalSign OSCP 故障致使大量网站证书被吊销的问题,截止目前仍未彻底解决。目前已知影响较大的有 淘宝、AlphaSSL 二级证书下的所有证书、bootstrapcdn。

大量 macOS 用户在 Twitter 抱怨官方给出清空缓存办法[无效]。 淘宝、Wikipedia、京东、AlphaSSL 乃至某些公司 AnyConnect 仍受影响。

天猫:

天猫

京东:

jingdong

阿里云:

%e9%98%bf%e9%87%8c%e4%ba%91

Wikipedia:

wikipedia

GlobalSign 表示仍然在寻找解决方法,对问题表示歉意(“If the OSCP/CRL cache clearing hasn't worked, we're still working on a resolution. We deeply apologize 4 the outage & will keep u updated")。

GlobalSign 支持页面的建议是站长更换[中间证书] 。

 

【9.27更新】Mozilla 将不再信任 WoSign 和 StartCom 颁发的新证书

【2016年 9月27日】经过Mozilla和开放社区一个月对沃通Wosign和StartCom一系列问题的深入调查,今日Mozilla正式给出了官方的调查结果文档。

文档中明确了:

  • Mozilla所有产品将不再信任沃通WoSign和StartCom根证书下所有新颁发的证书;
  • 同时,至少一年之后才允许沃通WoSign和StartCom重新提交Mozilla根证书认证计划,通过之后才能被重新获得Mozilla产品的信任;
  • 鉴于之前沃通WoSign私自修改证书起始时间,Mozilla在调查取证过程中,相应的监察系统也进行了升级,如果再发现类似情况,Mozilla将会直接吊销沃通WoSign和StartCom的根证书。同时在这次调查过程中发现的一系列审查问题,安永会计师事务所的审计结果也将不再被Mozilla采纳。

 

 事件回顾

【2016年 9月8日】Mozilla官方公布了研究者收集的关于WoSign在一系列安全事件的详细列表,详细内容如下:

(1)在违反CA策略的情况下仍然颁发SHA1算法证书;

(2)证书使用重复序列号;

(3)违反多项CA/B行业基准要求;

(4)任意端口认证域名身份;

(5)附加域名错误;

(6)使用SM2签名算法,不符合CA/B行业基准中对于签名算法的要求;

(7)秘密收购StartCom;

(8)允许 用户修改证书起始时间;

(9)未经认证用户身份,颁发alicdn.com证书;

(10)StartEncrypt问题项目;

(11)交叉前证书问题。

Screen Shot 2016-09-08 at 11.41.46

更进一步的关于此事件的发展,我们将持续关注和更新。

 


【2016年 9月4日】WoSign 发布了一份内部调查的报告, 报告地址如下:

https://www.wosign.com/report/wosign_incidents_report_09042016.pdf,但是根据这份报告中的内容,有研究者发现WoSign本身所提供的审核方式和操作规则违反了CA/B论坛中对于证书审核的规则,讨论内容如下图:

Screen Shot 2016-09-07 at 13.25.27

于此同时,WoSign声称其将2015年所有的证书都发布到CT公开服务器上,但是研究者发现仍然有一些证书没有被发布到CT公开服务器。

Screen Shot 2016-09-07 at 13.28.44

更进一步的关于此事件的发展,我们将持续关注和更新。

 


【2016年 9月1日】 Google讨论组里针对国内CA机构沃通被爆在没有审核域名归属的情况下,给申请者颁发SSL证书等一系列的安全事件展开了如火如荼地讨论。

在Mozilla的讨论组里已经围绕此次安全事件讨论了两周,9月1日,Google数字证书研究员Ryan Sleevi在Mozilla邮件组中提出了一系列可行的措施进行了讨论。

以下是Ryan Sleevi提出的方案:

(1)彻底的移除WoSign CA,但允许用户手动添加;

(2)将WoSign CA从浏览器全局设置为不可信,即使用户自己添加根证书也无法可信;

(3)彻底的移除WoSign CA根证书,同时开发白名单来为已经存在的证书继续提供信任机制,直到这些用户的证书到期;

(4)将不信任所有证书,把 2016年之前颁发的证书列入白名单,白名单中的证书将不受影响。

更进一步的关于此事件的发展,我们将持续关注和更新。

 


【2016年8月29日更新】在过去的几天里,研究者不断的又相继找到更多的WoSign没有完全验证身份而错误颁发的SSL证书,其中包括微软https://crt.sh/?id=29805555 和阿里巴巴旗下CDN服务 https://crt.sh/?id=29884704 。

屏幕快照 2016-08-30 下午1.53.00屏幕快照 2016-08-30 下午1.53.31

之前在2011年,就曾发生过DigiNotar、Comodo的数字证书颁发安全事故。当时Diginator已经被完全吊销根证书。在每年的安全审查报告中,WoSign并没有将这些错误颁发的证书列入到审查报告中,直到研究人员发现这些错误被颁发出来的证书,同时WoSign对这些错误颁发的证书也没有快速的采取行业内规范的措施 - 立即吊销这批有问题的证书,而是采取被动的方式来应对这些问题。


2016年8月25日,在Mozilla安全策略讨论组中,开发者 Gervase Markham发帖称,多起与中国证书颁发机构沃通CA(WoSign)相关的安全事故引起了他们的关注。Mozilla正考虑是否对WoSign在Firefox浏览器中采取相关行动,与此同时在Google 讨论组中展开更详细的讨论。

其中,Markham提到了WoSign在今年发生的三起事故:
* 2015年4月23日左右,沃通CA允许免费证书申请者选择任意端口验证,违反了CA/B论坛中BR(Baseline Rquirements)的限制端口和路径使用相关规定;
* 2015年6月,来自欧美的研究者通过获取一个子域名的证书就可以获取其根域名的相关控制权限,同时获取根域名的证书,通过测试,他们获取了schrauger.github.io 域名的证书之后,也相应的获取了github.com以及github.io和www.github.io证书;比方说:如果攻击者想要获取一张签发给github.io的假证书,且他拥有percy.github.io的控制权。他只需向WoSign证明自己拥有percy.github.io的控制权,WoSign不仅会给他的 percy.github.io颁发证书,还会签发给github.io。如此一来,便可以攻击整个github.io域名。
* 2016年7月,与沃通CA有交叉签名的以色列证书颁发机构StartCom CA被发现允许通过API的方式填写生效日期,通过生效日期能绕过浏览器对SHA-1算法的限制,此前StartCom推出的StartEncrypt客户端也相应发现了安全漏洞,用户可以获取任何域名的域名型证书。
* 研究者签发的关于github.com子域名的证书查看:https://crt.sh/?id=29647048
屏幕快照 2016-08-26 下午5.25.47

 

对于Mozilla提出的诸多质疑,WoSign表明了以下态度:
Screen Shot 2016-08-26 at 17.03.39
很抱歉,我的英语水平不是很好。正如我之前说的,我们之前对于Mozilla的规则并不熟悉,因而认为这类事件不需要报告。但现在我们的团队已经意识到事件的严重性,我们保证以后会报告所有证书误发事件和任何发现的系统漏洞。之所以我们从7月5日开始log了所有的SSL证书,就是希望可以让一切公开透明。由此利于相关组织进行监督。

 

从当前讨论组的专家的内容来看,WoSign并未对浏览器厂商的安全规则有非常明确的认识,同时将用户的安全置于非常危险的境地。
Mozilla 开发者将这一问题提交到所有和证书颁发机构CA,浏览器的讨论组中进行深入讨论,根据以往Diginator,CNNIC出现的安全问题,Mozilla有可能会吊销WoSign在Firefox的根证书。同时我们将会对这一安全事件持续关注。
来源:Google

HPKP:炙手可热还是濒临死亡?

HTTP公钥固定(HPKP,见RFC7469)——一个给大家用来固定公钥的标准——也许已经死了。作为一个完全加密的、可靠的互联网支持者,我非常期待HPKP取得成功,但我担心它用起来太困难,也太危险,而且如果没有我们的维护,它什么也做不了。

什么是公钥固定?

在我继续讲之前,先简单讨论一下我们为什么首先需要的是公钥固定。这个问题是伴随我们的信任机制的管理方式而来的:我们有数百个证书管理机构,每个都能为世界上任何一个网站颁发证书。从技术上来说,这并不需要网站所有者的许可。我认为这一体系实际上运行地相当不错,是因为异常事件的发生率很低。但虚假证书仍能通过这样那样的方式被制造出来,这对那些知名度很高的网站来说就不太妙了。同时,对于专业人员来说,依赖一个并不十分稳固的系统是一件很令人头痛的事情。

说到公钥固定,网站所有者们是有发言权的,依靠这项技术,他们能够确保证书是有效的。例如,在可供选择的证书中,你选中两个或更多的证书管理机构,然后把其他机构颁发的证书全部忽略。有什么理由不去喜欢这种方式呢?

公钥固定技术始于谷歌,他们首先把这一技术用来将Chrome浏览器和他们自己的网站固定。这是一种静态固定方式;由于pin嵌入浏览器中,所以不容易修改。Chrome浏览器的固定为我们服务了很多年,也揭露了很多本来可能瞒天过海的虚假证书。谷歌以前(现在仍然)允许其他机构将他们的pin嵌入Chrome浏览器。现在,火狐浏览器也支持静态固定,而这来自通过谷歌维护的相同的pin。

尽管静态固定技术运行很好,但由于pin需要手动维护且很费时间,所以这项技术还存在一些问题。为此,谷歌发起成立了IETF,从而产生了RFC7469,它被正式称作“HTTP公钥固定扩展”,但大家喜欢叫HPKP。HPKP是一个动态固定的范例;网站所有者们可以随意设置pin。

那么HPKP的问题到底是什么?

HPKP的主要问题,或者说固定技术的主要问题,是它会堵住网站。罪魁祸首是记忆效应:pin一旦设置好,会在一段时间内持续有效。每个pin都与网站赖以继续运行的唯一的加密身份标识相关联。如果你失去了对这个身份标识的控制,那你也就失去了你的网站。

很明显,固定技术引入了一个范式转移。相对而言,不支持该技术的TLS是十分宽容的——假如你丢掉密钥,还能创建一个新的,并为其配备一个全新的证书。而在引入固定技术后,你的密钥就变得弥足珍贵了。

稍微令人感到安慰的是,一个有效HPKP设置必须包含至少一个备份密钥。这其中的理念是,如果你遇到了严重的问题,你还可以取出此前安全保存下来的备份密钥来继续进行正常操作。

即使你没丢掉固定的密钥,对于何时、怎样更换它,你也必须小心谨慎。在任何时候,你的设置都必须提供至少一个与你提供给此前所有用户的设置相匹配的pin码。如果你变换密钥过于频繁的话,那么你可能会失去一些老的访客。

总之,HPKP不是为胆小鬼准备的;你必须知道自己在干什么并且要小心谨慎。

谈到这个,HPKP其实是非常灵活的,你可以用它做很多事。你可以用它把任何一个公钥固定在证书链中,从你自己的密钥(叶证书)、中级证书或根证书中选择。每个决定都有其优势和劣势,而你需要很好地理解PKI,才能正确鉴别它们。这种灵活性很容易产生混乱,实际上这经常导致系统瘫痪(也就是不知道该“干什么”)。一些网站会不可避免地做出错误选择因而遇到麻烦。

因此,一个成功的固定策略要求如下:

  1. 建立一个威胁模型,确定固定时是否会造成实际的威胁,应付这个威胁的成本是否可以接受;
  2. 理解PKI和HPKP,选择正确的位置进行固定;
  3. 不要丢失固定的密钥;
  4. 在服务器遇到威胁时隔离保存备份密钥;
  5. 更换密钥要有充分稳固的计划。

以上步骤执行起来并不太困难,但好处却很大。固定时出现严重错误会导致业务中断。部署的数量反映了这个情况;2016年8月,Scott Helme发现只有375个网站部署了HPKP,76个网站的HPKP仅仅在报告模式运行。与其形成鲜明对比的是,在相同样本中有30000个网站部署HSTS。

HPKP被滥用

HPKP的一个潜在的更大问题是,它会被恶意的活动者滥用。比如说,有人侵入你的服务器(这太平常了)并获得了你的网站控制权。那样他们就能偷偷地激活HPKP,然后对你的大量用户数据库执行固定命令。你很难监测到他们。等到很久以后,他们把固定的密钥从服务器中移除然后仅仅为了找乐子把你的网站堵住。或者,如果你幸运的话,他们会给你机会从他们那里得到备份的固定密钥来保持你的业务正常运转,然后以此来敲诈你。

HPKP工作组早就知道这个问题,但在标准中并未加入缓解机制。早期HPKP方案指定了一个持续上升期:固定行为必须在一段时间内被观察到并变得充分起作用。这一特性最终被删除,这很可能是因为很难清楚有效地判断这一现象的持续性。最后,RFC规定,一个活动pin和一个非活动(备份)pin在任何一段时间内都足以激活固定行为。RFC中“敌对固定行为”一节对此问题几乎是一带而过,文档中指出网站应当能够在最大策略持续期结束以后恢复。RFC让浏览器来决定他们的生存期的最大值,并给出一个非常温和的建议,60天。

所谓由于HPKP才刚刚产生。尽管我们还没看到这类攻击,但却已经发生。就在这个月,在DEFCON大会上就有一次关于RansomPKP的讨论。

那为什么我说HPKP死了?

我认为,HPKP在部署和维护过程中需要太多的工作,以至于只有少数网站会部署它。而与此同时,它却可以——以目前的形式——被当作攻击每个人的有力武器。

讽刺的是,对于HPKP来说,不会有很多网站使用它(因为这太费劲),但它却可以被用来攻击那些数以百万计的小型网站。这些网站甚至还没意识到HPKP的存在。对少数正在使用固定技术的网站来说,静态固定技术却很可能工作地很好,异常情况很少,并且对互联网的其他部分没有危险。

HPKP能被修复吗?

为了修复HPKP我们需要1)让它的部署更简单且更安全;2)有办法对付潜在的恶意使用。

对于后者来说,一种可能性是让HPKP变得不那么敏感,这样它仍然有用,但有威胁的一面也被处理成没威胁的部分了。有很多种方法可以做到这一点。例如,我们可以重新引入上升期机制。另一个解决方法可以是对那些具有一定安全知识和熟悉业务的人运营的网站的固定行为进行限制,例如那些已经预先加载HSTS的网站。也许浏览器也可以建立一种撤销机制用来对付坏掉的pin码。

让HPKP更易用很可能意味着允许网站部署更安全的固定,例如固定到证书管理机构而不是他们的根证书。实际上,这正是目前大量静态固定所采取的办法。它是这样运行的:你选出2-3个证书管理机构并指定只有他们可以为你的网站颁发有效证书。这种方法并不像固定到页证书(你自己的密钥)那么安全,但它大大减少了攻击面,并降低了工作量。(在HPKP的开发过程曾讨论过这一理念。但因为这并不是一个纯技术解决方案,而且需要多个机构协作,所以这一理念被否决了。)

从技术上看,假如你对PKI有很深的理解,那么固定到证书管理机构是可行的。关键问题在于理解不同的根存储怎样包含不同的根密钥,根密钥怎样更改,等等。我希望我们可以依靠更多的公共信息,在一些感兴趣的证书管理机构的帮助下,在不对HPKP做出任何改变的情况下,让这种更安全的固定方式变为可能。

那么现在你能做些什么?

抛开未来的诸多可能性,让我们试着想想今天能做些什么。下面是可以让你更安全的一些想法:

  • 首先,你可以在适当位置建立一个监视系统,来检查你的配置并监测有害固定行为。对大企业来说,不管怎样这很可能是个好主意,因为固定(以及其他安全技术)可能仅由一个开发人员部署,并未在整个企业范围内得到充分协调。(例如,HPKP和HSTS都有记忆效应,也都支持includeSubDomains指令 ,这会对整个域名进行配置,甚至包括其他团队管理的服务器。)
  • 你可以为你的网站配置一个反向代理服务器,却不把HPKP响应头发送到你的用户。这种防御措施并不能处理所有可能的攻击(如有人将网站重定向到其他服务器并使用一个错误颁发的证书),但会减少服务器被接管的可能。
  • 如果你不介意自己受到约束,固定行为本身也可以是一个对付恶意固定的有效防御手段。如果你已经使用了固定技术,包括DNS劫持和虚假证书在内的所有攻击都会被监测到。不幸的是,一个通过入侵你的服务器控制了你的pin的人,可以把pin变换为他们已控制的。(而在那个例子中,前一个控制,也就是反向代理服务器会有帮助。)

 

感谢Ryan SleeviScott Helme 阅读这个帖子的初稿。本文由Ivan Ristic201696日发表于SSL Labs

相关阅读:安全网站回避HTTP公钥固定?!

 

NSA数据遭破解?黑客组织发起拍卖 呼吁政治精英买买买

多年来,NSA(美国国家安全局)的精英黑客团队一直把悄悄入侵全球范围内的计算机系统当成自己的任务。现在,一个匿名的黑客组织宣称已经破解了一个反黑客程序:他们厚颜无耻地宣布这次窃取的文件是属于NSA的一个特工团队,并打算把这些文件拍卖给出价最高者。

nsa-logo

周一,一个自称“影子经纪人”的匿名黑客组织在Tumblr 网站发帖,称其已攻破“方程式组织”的计算机系统,“方程式组织”是一个极其专业的黑客组织。去年,安全公司卡巴斯基根据爱德华·斯诺登揭露的证据发现,“方程式组织”一直在世界范围内发动黑客攻击,且与NSA有关联。

该网站上的一条消息显示:“你打算出多少钱买敌人的网络武器?我们黑掉了‘方程式组织’。我们发现了很多他们的网络武器。来看看图片吧。我们会免费给你们一些他们的文件……但不是全部,我们会把其中最好的拍卖掉。”该组织还吹嘘未发布的代码“比‘震网’还好”。(“震网”是2010年发现的,现在人尽皆知的NSA用于攻击伊朗核设施的病毒软件。)

该组织用蹩脚的英语发布声明的真实性尚未被证实。但研究人员下载了该组织贴出的样本文件后说,确实有些数据很让人感兴趣,比如有300兆代码与目前NSA使用的漏洞相匹配。“这些文件看起来很多,似乎NSA攻击了某些人,而某些人试图追查攻击的来源并加以防御。”Claudio Guarnieri,一位政府赞助的多伦多大学Citizen实验室专门分析恶意软件的研究人员这样说道。

Guarnieri警告说,现在肯定地说这些代码来自“方程式组织”或任何其他与NSA有关的黑客团队还为时尚早。但他还说,这些代码的确证明了NSA的一个精英黑客团队“获取特定情报行动办公室”所使用的一些黑客工具,斯诺登2013年揭露的一份目录中列举了这些黑客工具。Guarnieri 还说:“其内容足够可信,而且完全符合我们对其中一些程序的认知。”

据事件响应和取证公司Comae Technologies的创始人 Matt Suiche称,在该组织发布出来的样本文件中包括一些攻击Cisco、Juniper、 Fortigate、Topsec(一家中国网络安全公司)生产的设备的黑客工具。他还说这些工具可攻击较老版本的设备,并不使用“zero-days”(一些此前未被发现的软硬件漏洞)进行攻击。但他还是相信迄今为止这些漏洞仍未被发布,也未被列入诸如Metasploit这样的公共安全漏洞库中。

所有现象都说明,被泄露的数据仅仅是为了骗取一些比特币的说法是错误的。“完全捏造这样的证据是不太可能的,但也并不是毫无可行性。”Suiche说,“在我看起这很可能是真实的,而且不只是我自己这么看。”

Profile of young man in origami style

另一方面,“影子经纪人”组织的拍卖活动看起来并不太专业。他们要求竞拍者秘密将用来竞标的比特币转入他们的账户,如果竞标失败,也无法返还。他们留言说:“对不起,输掉竞标也意味着同时失去比特币和文件。你敢输,就能赢!来呀,互相伤害呀!竞标吧!”但他们还是对所有竞标者许诺了一个“安慰奖”:如果竞标金额达到可笑的一百万比特币,他们将公开发布另一组高质量的数据。

“我为什么要相信你?”他们在常见问题解答中问。答案是:“不用相信,这需要冒险。你喜欢奖赏,就得承担风险。也许会赢,也许不会,没有任何保证。”

“影子经纪人”组织的网页最后是一条给“富有的精英们”的很长的留言,他们认为,像“方程式组织”这样的黑客组织的策略可能会将国际政治置于危险之中,并暗示“方程式组织”也应该来竞拍这些被窃取的文件。“影子经纪人”还留言说:“我们想通过这条留言让富有的精英认可我们拍卖危险的网络武器的行为。”

杂乱无章的拍卖事件和政治性言论似乎有些脱节:任何有能力入侵“方程式组织”和其他NSA下属黑客团队的黑客可能都需要具备极其专业的技术;毕竟,“方程式组织”在过去14年中不仅未被入侵过,而且未被侦测到。对于一个攻击过从俄罗斯到比利时再到黎巴嫩的团队来说,这是秘密行动和安全运行的非凡记录。任何能发现NSA黑客内部结构的人很可能必须拥有政府级别的资源和能力,更不用说要渗透进去的人了。

这种脱节引起了安全研究人员的一种推测:这次泄密是某种欺诈性行动,是为了迷惑那些有心了解这次仿冒入侵的底层情况的人。还有一些研究人员推测,这次泄密和俄罗斯人对民主党全国委员会的攻击有些关联。当时,入侵者企图使入侵行为看上去像是一个罗马尼亚黑客的单独行动。

现在,把这次事件归于任何一种常规的网络入侵者都还为时尚早。但这次引人注目的泄密事件,不管是真实的还是欺骗性的,总之一定会引起NSA的注意——很可能同时还会引起其他几十家情报机构的注意。

来源:WEIRD

新型攻击HEIST来临 HTTPS安全性受到冲击

HTTPS加密方案曾保护着数百万计的网站安全。然而一项新型攻击的发现,使得那些加密的电子邮件地址、社保号及其他敏感数据不堪一击。而攻击者甚至不需要具备锁定监控目标用户网络连接的能力。

这种攻击效果非常显著,因为它不需要中间人这个角色。相反地,终端用户仅需要遇到一个貌似无害的JavaScript文件,这个文件可能隐藏在网络广告,也有可能直接写在页面文本里。文件中的恶意代码可以查询到各种通过安全套接层或传输层安全协议保护的网页信息,并测量出加密的数据传输文件的精确大小。顾名思义,HEIST技术(通过TCP协议窃取HTTP加密信息),利用了HTTPS响应依靠传输控制协议这一点,而TCP协议正是互联网的最基本构建模块之一。

一旦攻击者知道加密响应数据的大小后,他们就可以随意地使用两个以前设计的漏洞之一提取出包含在该数据之中的明文信息。无论是BREACH还是CRIME攻击,都可以通过篡改网站用来提升网页加载速度而压缩的文件来解密出有效信息。

Tom Van Goethem是参与此项技术研究的一位专家,他接受Ars采访时透露:“HEIST技术让一些攻击变得更加容易执行了。此前攻击者想实现像CRIME和BREACH一类的攻击时,还需要借助“中间人攻击”的方法。而现在,简单到只需你去访问一个恶意网站,你和你的安全信息就已经置身危难之中了。”

结合HEIST和BREACH攻击技术能让攻击者提取并破解包含在一个加密响应数据里的电子邮件地址、社保号和其他细碎数据。在窃取电子邮件地址时,BREACH通过在HTTPS请求中(这会得到响应)进行智能猜测——比如 猜测“@gmail.com”——就可以获得上述效果。因为几乎所有的网站都是通过消除重复文本字符串来压缩文件的,所以正确的猜测并不会使数据量有明显增加,而猜测不正确则会导致响应数据变大。

HTTP压缩基于Deflate算法,它只存储重复字符串中的第一个(如一个HTML文档中的“value=”字符串),而当字符串重复时用节约空间的指针予以代替,这样就缩短了数据流。通常,在一个数据流中相同字符串越多,压缩后文件的整体大小就越小。

为了确定HTTPS所保护的响应的大小,攻击者使用一种能够对每一次猜测返回相当于“是或否”响应的绝妙技术。当一个包含“value=”的请求导致产生了相同的响应数据大小时,攻击者就得知这个字符串是在加密响应数据内的,而后尝试去修改这个猜测,比如改成“value=0”。如果这一猜测产生了较大的响应文件,攻击者就知道猜测是错误的,并会尝试另外的值,比如“value=1”, “value-=2”,以此类推,直到某一尝试产生的响应数据没有增大。攻击者接下来尝试猜测下一个字符,进而重复以上过程。最终,攻击者就可以还原出完整的令牌。

heist-hacking

恶意网站潜伏在你身边

直到目前,这种BREACH攻击方法还需要攻击者篡改Web服务器和最终用户之间的通信数据。如果这种方法得到HEIST技术支持的话,则不再受这个限制。攻击者可以通过利用TCP准加密边信道的特性来测量HTTPS响应的大小。TCP会将大块数据切分成更小固定大小数据块,这些数据块称为帧。然后TCP会将内部的帧分组,形成TCP窗口,并每次发送一个窗口。只有当收到上一个窗口的帧被最终用户接收的确认信息后,TCP才会发送新窗口。

HEIST技术可以利用新批准的API集合(其中一个叫Resource Timing,另一个叫Fetch)计算出发送的帧和窗口的数量。在这个过程中,可以利用一段JavaScript代码来确定HTTPS响应信息的实际大小。然后,恶意HEIST代码就可以配合BREACH技术,通过向请求中加入数千个猜想值并分析每一个响应结果的大小,最后从加密的响应中检索出纯文本了。

Van Goethem和他的同伴MathyVanhoef已经向谷歌和微软的研究人员透露了他们的发现。当被问到这种攻击对于Gmail、美国银行和其他现实世界中的网站有多大实际意义时,Van Goethem给出了下面的回答:

“如果我不紧不慢地为大量网站撰写攻击方法,那么访问一个恶意网站(它甚至不必是一个恶意网站,只要恰好有一个恶意JavaScript文件在上面,这种可能性非常大),就会引起巨大破坏。很可能大多数破坏都是由BREACH漏洞造成的,因为BREACH攻击者可以读取CSRF令牌。依靠网站提供的功能,攻击者能通过CSRF令牌方便地获取用户的完整帐号。

我从未详细检查过每个网站的请求和响应,但用户应该考虑最坏的情况。攻击者只需找到一个包含秘密令牌的端点,然后在响应中返回请求的一部分,来提取这个令牌。正像我提到的,知道这个令牌通常就可以获取用户的帐号。”

Van Goethem还说他只知道一种方法能够缓解这种攻击的影响,即禁用第三方cookie。如此一来,HTTPS网站发出的响应就与目标用户无关了。目前,大多数浏览器都会默认开启接收第三方cookie功能。而且一些在线服务还必须要求用户开启第三方cookie,否则就无法正常运行。

HEIST技术用来对付HTTP/2也很有效,HTTP/2替代了为所有Web通信加密的较早的HTTP标准。某些情况下,HEIST还可以利用HTTP/2的一些新特性来增加破坏效果。

Vanhoef和Van Goethem在一篇尚未发表的研究论文中写道:“如果我们知道使用了HTTP/2,我们可以让浏览器向目标源发请求,同时也向另一个包含被返回的内容的源发请求,自从HTTP/2应用以来,这两个请求都是平行发到服务器,服务器同样平行应答它们的。”

现在还不知道与BREACH技术结合在一起的HEIST漏洞会不会被用来攻击现实中受HTTP保护的网站访问。Van Goethem说,由于网站提高了针对跨站脚本攻击(XSS)、SQL注入和跨站请求伪造攻击(CSRF)的防御能力,所以HEIST漏洞很可能更有吸引力。虽在自然状态下还没有BREACH漏洞被利用的迹象,但HEIST为其带来的便利条件却能改变这一点。

“不管网站采取哪种安全措施,其中大多数在BREACH面前仍是脆弱的(这种攻击已经存在了三年,没有什么办法能减弱它的影响——很可能因为这样做无济于事),”他在一封邮件中写道。“HEIST攻击仅需要目标用户访问一个恶意网站,鉴于这个事实,我们认为类似BREACH与HEIST并用的攻击很可能是窃取用户帐号最简单的方法。”

来源:arstechnica

 

Let's Encrypt根密钥将被新版本Firefox浏览器信任

8月5日Let's Encrypt组织宣布了一项好消息:Mozilla将在2016年第四季度发布的Firefox 50中默认信任Let's Encrypt CA(ISRG Root X1)!这则消息对于旨在让每个网站都能启用 HTTPS 加密的 Let's Encrypt 来说,是一个重要的里程碑。

为了能够取信于各大浏览器厂商,大部分CA都会选择去购买一个已被信任的根密钥,或是自己创造一个新的根密钥并争取到信任。Let's Encrypt选择了后者。这一过程通常为3-6年,而Let's Encrypt 目前是通过与另一个CA IdenTrust合作,让它签发的证书能被各大浏览器信任。

1470730972-9082-4c6961a1f3d9f87.png-600x600

Let's Encrypt 一方面感谢IdenTrust 在项目初始阶段给予的帮助,另一方面表达了希望能够作为一个独立的被信任 CA 进行运作的愿景。同时,它也已经向苹果、微软、Google、甲骨文和黑莓维护的CA trust root 递交了申请,等待更多巨头厂商的加入和支持。

来源:Let's encrypt

安全网站回避HTTP公钥固定?!

 HTTP公钥固定 (HTTP Public Key Pinning),或称HPKP,可以防止欺诈者颁发伪造的TLS证书。尽管它能够有效抵御欺诈性证书的侵袭,而且一些浏览器一年多前就已经支持这项技术,采用它的HTTPS站点少之又少。

Netcraft在2016年3月的SSL调研中发现,只有不到0.1%的证书用于HPKP响应头。而在实际部署中,三分之一的运维者采用了错误的HPKP配置策略。HPKP部署门槛之高,显而易见。

即使已入门,也需要对维护给予高度重视:无论是常规维护还是实施紧急措施都有可能给合法的访问者带来巨大风险,而且是长期的。但是,只要部署正确、维护妥当,HPKP绝对是一项强大的安全技术。

 HPKP防什么?

一个网站可以通过部署HTTPS, HSTSHSTS preloading预加载抵御大部分中间人攻击。将所有这些技术叠加在一起,可以保证网站通信从发出请求到获得响应都是被加密和授权的。

尽管有这些技术可以有效抵御如pharmingsslstrip之类的攻击,还是有许多攻击正跃跃欲试。一个偏执的攻击者甚至可以通过说服CA为他签发一张伪造的证书,来攻击一个防设“完美”的HTTPS网站。

1470125705-1347-hpkp2

HPKP可以防止顾客进入持有效假冒证书的钓鱼网站。尽管两个站点都持有可信CA签发的证书,只有真实网站的证书链包含了客户端所期望的证书。浏览器会对每个包涵哈希函数的固定证书进行网站预访问。

虽说让攻击者特地去为一个不由他控制的域名获取一张证书挺难,但也不是不可能。事实上这样的例子发生过很多次。多家证书授权机构被攻破,宽松的策略被发现,技术上的缺陷被攻击者利用。

HPKP响应头的引入就是基于生态系统的证书误发历史。为了使用HPKP,网站运营者必须挑选出一系列的公钥并投入使用。一旦用户访问站点,它的HPKP策略就会被存储在客户端,用来拦截未来所有非白名单的服务器连接。

当HPKP遇上用户计算机的本地流氓根证书,靠一条策略就想要抵御所有仿冒攻击是远远不够的。近日,DellLenovo公司都被曝光在用户计算机内植入根证书,甚至还包含了私钥。攻击者只要有心,就可以利用这点为任何站点生成任何证书,然后仿冒这个网站。而受害者的浏览器会无视站点的HPKP策略,直接把证书当做合法的。

HPKP怎么用?

使用HPKP可以固定三种密钥:

  • 网站当前的证书公钥
  • 包含CA和中级证书的公钥
  • 备份密钥

为了能够使浏览器接受并存储网站的HPKP策略,至少需要两个特定的钉针用于固定。其中一个用于在校验网站证书时固定浏览器信任链,另一个作为后备。

以下这个例子固定了三个不同的公钥(标粗内容)。这条规则有效期为一年,涵盖了所有现域名的子域名:

Public-Key-Pins:
  pin-sha256="Q0ig6URMeMsmXgWNXolEtNhPlmK9Jtslf4k0pEPHAWE=";
  pin-sha256="F5OSegYUVJeJrc4vjzT38LZtDzrjo7hNIewV27pPrcc=";
  pin-sha256="p1Uk2ryJ7QmI5/zIzFmdzme0X+2nvXG5bHwR88A5ZjA=";
  max-age=31536000; includeSubDomains

网站运维者必须在固定CA密钥时格外小心。因为CA可能会不经提醒就更改他们的签发机制,新证书可能用的不是之前那条信任链。如果新的证书链不再包含固定密钥,整个网站将在HPKP规则过期之前都无法访问。

为了避免使用CA密钥可能导致的麻烦,可以选择固定自己的密钥。但考虑到备份密钥可能不能用(密钥丢失或者不符合证书的要求(比如,该备份密钥被视作 Debian weak key,CA是不会接受并在新证书中采纳的)),风险也很大。

 那谁还敢固定?

如果固定和证书都安排合理,HPKP实现起来可以称得上是完全安全的。但一想到可能出现的问题,HPKP就没那么“安全”了:任何一个细小的问题都会让客户几个月都无法访问到网站,从而毁掉一家网络公司。在诸多最火的站点中,以下敢使用HPKP的都是勇士:

GitHub

GitHub是部署HPKP最频繁的网站。 众所周知,GitHub最注重安全,它配置了太多当今最优秀的安全响应头。

当你访问 https://www.github.com ,其中的一个响应头就是用HPKP布置的:

Public-Key-Pins: max-age=300;
  pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=";
  pin-sha256="JbQbUG5JMJUoI6brnx0x3vZF6jilxsapbXGVfjhN8Fg=";
  includeSubDomains

这个HPKP策略带有两个固定,该指令适用于所有子域。

第一个固定的密钥(使用了WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18= SHA-256 hash)包含了DigiCert High Assurance EV Root CA。这是github.com现在使用的根信任链。

第二个哈希函数(JbQbUG5JMJUoI6brnx0x3vZF6jilxsapbXGVfjhN8Fg=)是Github的后备固定。它包含了VeriSign Class 3 Public Primary Certification Authority - G5 root。鉴于这个密钥并没有出现在Github的现有证书链上,它被视作后备固定。

当Github希望替换它的TLS证书时,新证书必须是由DigiCert或者Symantec签发的——否则,任何新证书链的密钥都无法与设置好的HPKP规则进行匹配,从而用户会被拉入访问黑名单。

相对于固定Github自己的备份密钥,固定一组根证书密钥风险要更小些,却是一笔更大的“交易”。根据Github现有的HPKP规则,攻击者依旧可以通过获取一张由DigiCert或Symantac签发的伪造证书来仿冒它。相反的,如果Github是依赖于它的备份密钥,那攻击者就只能靠攻破Github的私钥了。

即便如此,Github仍保持警惕——它把HPKP响应头的max-age设到了300。这意味着,浏览器只会在300秒内记住这条规则,由此一旦发生错误,用户也至多只会在五分钟内被拒绝访问。但这种做法也使得安全策略本身显得鸡肋。

在一场攻击中,任何在五分钟之内没访问到真实Github网站www.github.com的访客都会是潜在的受害者。就算他在五分钟之内访问了Github,被拒绝访问也可能只是个小差错。而一个精明的攻击者可以等个五分钟再进入Github,以确保不被发现。

Mozilla

Mozilla正在更有效地采用HPKP并支持到自己的网站上。它设置了更高的max-age响应:

Public-Key-Pins: max-age=1296000;
  pin-sha256="r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E="
  pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=";

这个数字相当于15天,也就是说它每两周可以为任何访客提供有效的保护措施。

相较于使用包含不止一个CA的公钥哈希,Mozilla选择了固定单个CA:所有密钥都由DigiCert掌管。从某种角度说,只让一家CA签发新证书固然是安全的,但这导致Mozilla只能用DigiCert。万一DigiCert被迫终止签发,而Mozilla的证书又刚好需要替换,访客将会在15天内被限制访问Mozilla的站点。

Pixabay

pixabay.com的Pixabay图库采用了更大胆的HPKP配置。它的Public-Key-Pins响应头设置的max-age为一年。

Public-Key-Pins:
  pin-sha256="Kx1dtEVeqnPn0gfhzqIJfChEYFr5zMe+FjvcJ0AhVgE=";
  pin-sha256="zN9pxsvWtHm05/fKZ6zA1NJOq4j2NJJA3oIecCNc1eU=";
  max-age=31536000;

相较于固定CA掌管的密钥,Pixabay固定了它自己的证书密钥以及备份密钥。这个做法完全防止了CA泄密带来的问题,但也将风险转嫁到另一方面:万一备份密钥不可用怎么办。

如果Pixabay丢失了所有证书的私钥,那将是灾难性的——访客将在一整年里被拒绝访问。但Pixabay认为这项风险部署是值得的。

为什么只有少量网站敢用HPKP?

在2016年的Netcraft SSL调研中显示,只有0.09%的证书在使用HPKP——这个数字比只有4100张证书由公钥固定响应头传递还要小。

或许有人认为这个数字还低得不够惊人。但事实上,其中超过四分之一的站点都在错误使用HPKP响应头,甚至可以称得上是禁用了HPKP。也就是说,真正在使用HPKP的证书数量低于3000。

依旧处于萌芽期

HPKP没有被广泛部署的一大原因是因为它还只是一项新标准,而且并没有被所有主流浏览器支持。然而,这只是部分解释了它在服务端上不得志的原因。尽管HTTP公钥固定扩展在2015年4月的RFC 7469之前没有正式上线,但由于Chrome 38支持HPKP,从2014年10月开始就有相当比例的网民从这项技术中受益。

2015年1月的时候Firefox 35也支持了HPKP技术,大约四分之一的网民受益于使用HPKP的站点。但在今天,HPKP仍没有被IE, Edge, Safari以及Opera Mini支持。另一方面,成千上万的用户正在使用支持HPKP的浏览器,而之所以他们没能得益于这项技术,是因为只有少部分网站在部署它。

缺乏重视

或许缺乏HPKP部署的最大的原因在于,许多网站运维者缺乏安全意识,又或者并没有意识到它能带来的好处。然而许多网站最主要的问题是缺乏一些最基础的网站设施,比如such as HSTS和“安全”的cookies。如果一个网站连HSTS都不支持,采用HPKP也是多余的,因为中间人攻击者还是可以劫持未加密的HTTP流量、阻止受害者的浏览器转到HTTPS网站。

缺乏理解

Nercraft的SSL调研结果说明了,许多繁琐的错误都是因为网站运营者在部署HPKP响应头的时候缺乏理解能力。这导致了在许多网站上HPKP都不能用。

害怕“HPKP Footgun”

HPKP是保护网站免于欺诈性证书攻击的最佳途径。但在上文中我们已经讨论到,HPKP的部署结果容易适得其反。一个小小的错误配置所能达到的破坏程度不可置否。

总结

HPKP提供了针对中间人攻击的强大防御,糅合了HTTPS、HSTS以及HSTS预加载技术——虽然优点显而易见,但没什么人去使用。目前只有0.09%的安全网站在使用HPKP响应头。

在部署HPKP时很难发现哪里出错,而任何一个环节出错都足以最终毁掉一个公司(长达数月的网站拒绝访问)。目前只有几千家安全站点接受这项风险。当然你也可以说只有那些备受瞩目的大型网站才会有用HPKP的必要。对那些小型网站而言,HPKP出错引发的灾难要比普通的网站攻击要严重得多:毕竟他们受欺诈性证书攻击的可能性还是非常小的,这种事主要针对大的网站。

还有一个更新的技术叫做Expect CT可能提供更加安全和容易的方式来应对欺诈性证书。采纳这项技术的网站能够让浏览器到Certificate Transparency的日志里查看他们的安全证书。而这些日志是完全透明的,所有域名拥有者、CA和域名用户都可以去验证错误签发的证书;欺诈性证书不会出现在日志列表中,自然在Expect CT这边也就不可信。这些日志的录入主要由CA来完成,同时也减轻了不少网站运营者的负担。

对于那些正确配置HPKP的网站而言,要去攻击他们极难,但也不是不可能。如果浏览器从来没有访问过任何站点,那它仍有可能受到中间人攻击。因为不像HSTS,HPKP没有常规的预加载列表。(或许可以向Google Chrome请求特殊待遇)