来自SBA-Research的研究人员经过研究发现,广泛使用TLS协议AES-GCM块加密模式的服务器上存在因随机数重用漏洞导致攻击者可以注入恶意代码,访客浏览器便会访问到恶意的内容,这里称之“Forbidden Attack”。
通过全网扫描,发现有184台HTTPS服务器受影响,其中受影响的服务器包括大型企业、金融机构和信用卡公司,部分属于德国证券交易所(Deutsche Börse)和波兰银行协会(Zwizek Banków Polskich)。此外,还有7万台WEB服务器被发现存在风险,虽然实际执行攻击会比较困难。
技术分析
Galois/Counter Mode (GCM)是对称加密算法中块加密的一种模式。它被广泛用于认证加密,其加密的示意图如下:
当用GCM模式的AES算法去加密数据时,并不是直接用AES算法加密数据块,而是将数据块和随机数组合后再用AES算法加密。这样由于随机数的不可预测性,加密后的密文同样具有不可预测性,攻击者在不知道随机数的情况下,无法根据已有信息解密加密后的数据。
当在前后不同的加密中使用了相同的随机数时,攻击者就有可能解密数据恢复出明文。假设有A和B两条待加密的信息,使用相同的随机数N,加密后的数据如下图所示:
由于采用的相同的随机数,根据XOR异或运算的性质,将上面等式两边进行异或运算,可得到如下等式:
根据A和B的密文异或结果可以得到A和B明文异或的结果可知,如果知道A或B其中的明文内容,就可以异或算出KEY,进而解密出其他使用相同随机数的密文。
根据SBA-Research的研究人员的测试,在TLS中,随机数发生碰撞产生重复数据的概率如下表:
从表中可以看到 2的32次方的随机数个数,产生碰撞得到重复数据的概率0.39(39%)。随着个数增加,碰撞的概率增大,直至100%。但想要看到一定概率的碰撞得到相同的随机数,就需要有大量的Web请求。因此这个问题的理论意义应该大于实际使用价值。
攻击场景
攻击者可以利用中间人攻击,截获用户网络流量,解密数据,注入恶意代码,进而窃取用户密码数据。
检测与防护方案
- 网站管理员可以根据作者在GitHub上公布的示例程序(https://github.com/nonce-disrespect/nonce-disrespect),检测服务器是否存在此问题。
- 修改WEB服务器配置文件,禁用具有GCM选项的加密套件。
- 企业内网管理员落实安全管理措施,对网关设备和终端设备进行MAC绑定,防止中间人攻击。
- 终端用户绑定网关MAC,防止ARP欺骗进行中间人攻击,访问网站时验证HTTPS证书的有效性。
-
绿盟科技检测服务:
1) 绿盟科技工程师前往客户现场检测。
2) 绿盟科技在线云检测,登陆绿盟科技云,申请极光自助扫描服务试用。
https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?pid=0&sid=0
3) 使用绿盟科技的远程评估系统与WEB应用漏洞扫描系统对内网进行安全评估。
参考文档
- https://eprint.iacr.org/2016/475.pdf
- https://github.com/nonce-disrespect/nonce-disrespect
- https://www.blackhat.com/us-16/briefings.html#nonce-disrespecting-adversaries-practical-forgery-attacks-on-gcm-in-tls
声 明
本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
关于绿盟科技
北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。
基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。
北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。
如果您需要了解更多内容,可以
加入QQ群:486207500、570982169
直接询问:010-68438880-8669