欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

WPA3已沦陷?解读Dragonblood Vulnerabilities

来源:本站整理 作者:佚名 时间:2019-04-22 TAG: 我要投稿

一、前言

今天早上一觉醒来,按照往常的习惯刷了一下 ZDNet,惊奇的发现了一篇名为《Dragonblood vulnerabilities disclosed in WiFi WPA3 standard》,我的妈呀,如果我没有记错的话,记得WPA3是Wi-Fi联盟组织于2018年1月8日在Las Vegas的国际消费电子展(CES)上发布的Wi-Fi新加密协议,是Wi-Fi身份验证标准WPA2技术的的后续版本,旨在提供更好的保护,防止脱机字典攻击和密码猜测尝试,即使使用不太复杂的密码也能提高安全性,并提前保密即使密码已被泄露,也可以保护通信。
2018年6月26日,WPA3协议最终完成,WPA3将提供个人和企业版本,将逐步取代WPA2,但它可能需要几年时间才能被广泛采用,与此同时,WPA2将继续得到维护和改进。时隔不到1年,WPA3这么快就沦陷了!
我英语水平还不是很渣,那就研究研究喽,《Dragonblood vulnerabilities disclosed in WiFi WPA3 standard》是由一位叫 卡塔琳·西帕努的安全记者报道的,这哥们是ZDNet的一名安全记者,他报道过网络安全、数据泄露、黑客攻击以及其他相关话题。他曾在Bleeping Computer and Softpedia担任安全记者。
两位安全研究人员(Mathy Vanhoef)、(Eyal Ronen)于2019-4-10披露了一组被统称为Dragonblood的漏洞的细节,值得注意的是,Vanhoef,这哥们还是发现WPA2漏洞的研究人员之一,称为KRACK(密钥重新安装攻击),这也是WiFi联盟最先开发WPA3的主要原因, 一人的研究成果影响了WiFi联盟开发WPA3,足见他真的是这方面的大内高手哈;Dragonblood漏洞影响了WiFi联盟发布的WPA3 Wi-Fi安全和认证标准。
最重要的是,这个漏洞一旦被利用,将允许攻击者在受害者网络范围内恢复Wi-Fi密码,并渗透到目标网络,可以获取密码并获取敏感信息,例如密码,电子邮件,支付卡号码以及通过即时消息应用程序发送的数据。
二、关于“龙血”漏洞
总共有5个Dragonblood漏洞需要注意的点,分别是:
1>拒绝服务攻击
2>两个降级攻击和两个侧通道信息泄漏。他们还发现了一个漏洞,可以利用这个漏洞在绕过WPA3中的DoS保护机制后在接入点(AP)上导致拒绝服务(DoS)条件。
3>然而拒绝服务攻击并不严重,因为它只会导致兼容wpa3的访问点崩溃,并不会引发信息泄露,但其他四个攻击可以用来恢复用户密码,造成信息泄露。
4>两次降级攻击和两个侧通道泄漏都利用了WPA3标准的Dragonfly密钥交换中的设计缺陷引起(客户端在WPA3路由器或接入点上进行身份验证的机制)。
那什么是Dragonfly密钥交换协议?直接查对应的RFC研究呗!
三、Dragonfly Key Exchange
我查了一下RFC 7664—Dragonfly Key Exchange。
1.简介

它是使用离散对数的密钥交换,使用密码或口令进行身份验证的密码学。更重要的是它可以抵抗主动攻击、被动攻击和离线攻击字典攻击。想必大家对离散对数一定不陌生,它是是一种基于同余运算和原根的一种对数运算。
2.假设
为了避免攻击Dragonfly 协议,作了一些基本假设:
2.1 函数H是一个随机oracle,这个随机oracle是不定长度的二进制字符映射到一个固定的x位的二进制字符串:
H:{0,1}^* -->{0,1}^x
2.2 函数F是映射函数,它从群组中获得一个元素并返回一个整数。对于ECC组,函数F()返回元素X的坐标,这个坐标点位于椭圆曲线上;对于FFC组,函数F()是恒等函数,因为在FFC组中的所有元素都是整数小于素数。表达式如下:
ECC:  x=F(P),   where P=(x,y)
FFC: x=F(x)
2.3 KDF是一个键值推导函数,它是将一个键值赋值给stretch,并将一个label绑定到这个键值上,label,和期望的输出表明:
n:stretch= KDF-n (k,label), so,  len(stretch)=n。
2.4 所选群的离散对数问题比较困难,也就是说,给定G,P和Y = G ^ mod P,为确定x,在计算上是不可行的。同样,我们为ECC也给定了曲线的定义,一个G和Y = x * G,为确定x的值,在计算上是不可行的。
2.5 存在一个密码的密码共享池的两对。这个池可以由单词组成字典,每个密码在这池都有一个相同的概率被共享密码。所有潜在的攻击者可以访问该池的密码,这应该就是造成此漏洞的元凶。
2.6 这些“对”有能力产生高质量的随机数。
3.密码的派生
3.1 算法的实现如下:
found = 0
        counter = 1
        n = len(p) + 64
        do {
          base = H(max(Alice,Bob) | min(Alice,Bob) | password | counter)
          temp = KDF-n(base, "Dragonfly Hunting And Pecking")
          seed = (temp mod (p - 1)) + 1
          if ( (seed^3 + a*seed + b) is a quadratic residue mod p)
          then
            if ( found == 0 )
            then
              x = seed
              save = base
              found = 1
fi fi
          counter = counter + 1

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载