MAC攻击及缺陷

作者: flydean程序那些事 | 来源:发表于2019-06-18 23:08 被阅读5次

前面我们在讲HMAC的时候简单讲过了什么是MAC消息认证码。

简单点说MAC(Message Authentication Code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称MAC。它是一种与密钥相关联的函数。 HMAC就是MAC的一种实现。

MAC有好几种实现方式

  • 使用单向散列函数实现
    比如HMAC。

  • 使用分组密码实现
    使用AES之类的分组密码可以实现消息认证码。关于分组密码的详细内容,后面我们会做详细说明。

  • 其他实现
    其他实现方法如:流密码和公钥密码等。

对MAC的攻击

虽然MAC可以同时验证消息的完整性和来源,但是仍然有多种攻击方式。

重放攻击

什么是重放攻击?顾名思义,重放攻击就是将之前的信息或者通信再次请求。我们举个例子。

  1. 小明跟小刚在做借款通信,但是这个通信被小红监听到了。
  2. 小明向小刚发起借款100元,在MAC中假设小明和小刚共享了密钥,小明通过密钥根据请求消息计算出了MAC,并将MAC和消息一起发送给小刚。
  3. 小刚收到了消息和MAC,根据自己存储的密钥计算出MAC,将整个MAC和收到的MAC做对比,如果两个MAC相等,那么小刚就知道这个是小明发起的合法请求,于是做出借款100元的操作。
  4. 因为小红监听到了小明跟小刚的通信,所以小红获取到了请求消息和生成的MAC,并保持起来。
  5. 小红将第4步收到的消息和MAC再次发送给小刚。
  6. 小刚收到消息和MAC后,验证发现MAC是正确的值,然后再次出借100元。
  7. 重复5,6的步骤。

有上面的具体例子可以看出,只要监听者能够拿到消息和MAC值,既可实现重放攻击。

重放攻击的防护

  • 制定唯一的序号
    在每次消息中,添加一个唯一的序号,序号递增,这样计算出来的MAC每次都是不一样的,即使能够拿到消息和MAC,在第二次重放的时候,由于消息和MAC都应该发送变化,从而使重放攻击失效。

  • 时间戳
    在消息里面包含了当前的时间,在服务器校验的时候去检查这个时间戳,如果相隔时间很短的话即认可这个消息。这里会有个双方时钟同步的问题,同时要预留一个间隔时间区间。如果在这个时间区间内发生了重放,还是会攻击成功。

  • 随机数nonce
    在双方通信之前,服务器先发送一个随机数给发送者,发送者在消息中包含这个随机数,并计算MAC值。因为每次请求的随机数都会变化,所以重发MAC攻击不成立。但是会增加额外的通信请求成本。

密钥推测攻击

密钥推测攻击实际上是一种暴力破解的方法,即通过MAC来反向推导出密钥。这就需要我们的MAC算法具有很好的抗暴力破解性。

MAC算法的缺陷

MAC算法的关键是发送者和接受者之间共享密钥,从而实现对消息完整性和认证的确认。但是MAC算法不能解决”第三方证明“ 和 ”防止否认“ 的问题。

第三方证明

假如小明给小刚发送了消息,小刚想向第三方机构证明这条消息确实是小明发出来的,但是MAC无法做到。

因为MAC是通过小明和小刚共享的密钥生成出来的,所以第三方机构只能确认这个MAC是由共享密钥生成的,但是不能确定是小明生成的还是小刚自己生成的。

防止否认

假如小明给小刚发送了消息,小刚收到消息之后做MAC验证,通过后知道消息是小明发出来的。

但是小明完全可以否认自己发送了这条消息,因为小刚拥有同样的密钥,可以伪造出同样的消息出来。

所以MAC算法无法做到防止否认。

相关文章

  • MAC攻击及缺陷

    前面我们在讲HMAC的时候简单讲过了什么是MAC消息认证码。 简单点说MAC(Message Authentica...

  • AFP溢出攻击模块afp/loginext

    AFP溢出攻击模块afp/loginext 在苹果Mac OS X 10.3.3及以前版本,AFP服务存在缓存区溢...

  • DDoS -- syn flood

    1. 概述 SYN flood是Network layer的DDoS攻击之一。该攻击利用TCP握手缺陷消耗被攻击方...

  • 【原创】使用arpspoof实现内网ARP欺骗

    ARP欺骗是一种中间人攻击,攻击者通过毒化受害者的ARP缓存,将网关的MAC替换成攻击者的MAC,于是攻击者的主机...

  • 针对TCP缺陷的攻击-SYN攻击

    SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。 注意:SY...

  • 「人格的缺陷」

    「人格的缺陷」 人的缺陷分为两种,生理缺陷和心理缺陷。 当一个人拿别人的生理缺陷来言语攻击时,说明这个人已经有了心...

  • 零基础使用Django2.0.1打造在线教育网站(二十五):常见

    写在前面 本篇笔记我们将介绍常见的网络攻击与防护,具体包括SQL注入攻击及防护,XSS攻击及防护以及CSRF攻击及...

  • CentOS下SYN攻防战

    (一)SYN攻击原理 SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器C...

  • Metasploit与漏洞扫描

    一 漏洞及漏洞发掘方法 漏洞,是指在硬件、软件、协议实现或系统安全策略上存在缺陷,攻击者能够在未授权的情况下对系统...

  • MySQL 曝设计缺陷,多家公司被窃取文件

    近日,MySQL 被曝出存在设计缺陷,该缺陷允许恶意 MySQL 服务器攻击访问连接的客户端,并从中获取读取权限窃...

网友评论

    本文标题:MAC攻击及缺陷

    本文链接:https://www.haomeiwen.com/subject/elrcqctx.html