美文网首页
网络安全-重放攻击及其防御

网络安全-重放攻击及其防御

作者: jinelei | 来源:发表于2021-10-17 22:11 被阅读0次

    概念

    重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。重放攻击在任何网络通信过程中都可能发生,是计算机世界黑客常用的攻击方式之一。


    分类

    根据重放消息的接收方与消息的原定接收方的关系。

    • 直接重放,即重放给原来的验证端,直接重放的发送方和接收方均不变。
    • 反向重放,将原本发给接收方的消息反向重放给发送方。
    • 第三方重放,将消息重放给域内的其他验证端。

    防御策略

    方案 优势 劣势
    加随机数 不需要同步时间,生成方案简单 保存使用过的随机数,随着时间增长,保存和查询的开销较大
    基于时间戳 服务器不用保存额外的信息 认证双方的时间一致性要求高,时间同步难度大
    加流水号 不需要时间同步,保存的数据量比随机数少 一旦报文被解密,很容易猜测出流水号

    • 加随机数

    该方法优点是认证双方不需要时间同步,双方记住使用过的随机数,如发现报文中有以前使用过的随机数,就认为是重放攻击。缺点是需要额外保存使用过的随机数,若记录的时间段较长,则保存和查询的开销较大。

    双方都要记住,防止反向重放攻击。

    • 加时间戳

    该方法优点是不用额外保存其他信息。缺点是认证双方需要准确的时间同步,同步越好,受攻击的可能性就越小。但当系统很庞大,跨越的区域较广时,要做到精确的时间同步并不是很容易。(受限于网络情况和客户机)

    时间同步服务,NTP服务。

    • Linux NTP配置
    • windows NTP配置
    • 斗鱼时间验证
    • 百度时间验证
    • 简书时间验证
    • 加流水号

    就是双方在报文中添加一个逐步递增的整数,只要接收到一个不连续的流水号报文(太大或太小),就认定有重放威胁。该方法优点是不需要时间同步,保存的信息量比随机数方式小。缺点是一旦攻击者对报文解密成功,就可以获得流水号,从而每次将流水号递增欺骗认证端。


    落地方案

    • 基于nonce方案(Number used once)

    nonce是仅一次有效的随机字符串,要求每次请求时,该参数要保证不同,所以该参数一般与时间戳有关,我们这里为了方便起见,直接使用时间戳作为种子,随机生成16位的字符串,作为nonce参数。

    • 基于timestamp方案

    每次HTTP请求,都需要加上timestamp参数,然后把timestamp和其他参数一起进行数字签名。因为一次正常的HTTP请求,从发出到达服务器一般都不会超过60s,所以服务器收到HTTP请求之后,首先判断时间戳参数与当前时间相比较,是否超过了60s,如果超过了则认为是非法的请求。

    在客户端和服务端通讯时,先定义一个初始序号,每次递增。这样,服务端就可以知道是否是重复发送的请求。

    • 基于timestamp+nonce方案

    我们常用的防止重放的机制是使用timestamp和nonce来做的重放机制。
    每个请求带的时间戳不能和当前时间超过一定规定的时间(60s)。这样请求即使被截取了,你也只能在60s内进行重放攻击,过期失效。
    但是攻击者还有60s的时间攻击。所以我们就需要加上一个nonce随机数,防止60s内出现重复请求。

    微信公众号接口文档
    • HTTPS

      1. 消息的可靠传输
        1. 消息一定送达(送不到我应该会知道)
        2. 消息一定完整(到了一定是完整的)
        3. 消息一定有序(一定以我预期的顺序到达)
      2. 消息的安全传输
        1. 避免窃听(知道你们在聊什么)
        2. 避免篡改(就算我不知道你们在聊什么,我也要改动某些信息,让你们沟通产生歧义)
        3. 避免中间人攻击(不知道你们在聊什么,但是我当传话筒,却传递着假的消息)
        4. 避免重放攻击(不知道你们在聊什么,但是我一遍一遍重复某方的话)
    • 为什么HTTPS可以避免重放攻击?
    1. SSL/TLS
      • 对称加密-非对称加密

      加密和解密用的秘钥是不是同一个

    类型 优势 劣势 示例
    对称加密 速度快、使用长密钥时的难破解性 密钥无法保证被安全传递 DES、3DES、RC4、RC5、RC6、AES、Blowfish、IDEA等
    非对称加密 安全性高,无法从公钥推导出私钥 代价高、速度慢 RSA、DSA、ECC等
    HTTPS工作流程
    1. HTTPS可以绝对保证吗?
    • 并不能,在建立安全连接之前可以劫持
    1. CA证书类型
    • 域名型SSL证书(DV SSL)即证书颁布机构只对域名的所有者进行在线检查,通常是验证域名下某个指定文件的内容,或者验证与域名相关的某条 TXT 记录。
    • 企业型SSL证书(OV SSL)是要购买者提交组织机构资料和单位授权信等在官方注册的凭证,证书颁发机构在签发 SSL 证书前不仅仅要检验域名所有权,还必须对这些资料的真实合法性进行多方查验,只有通过验证的才能颁发 SSL 证书。
    • 增强型SSL证书(EV SSL)与其他 SSL 证书一样,都是基于 SSL/TLS 安全协议,但是验证流程更加具体详细,验证步骤更多,这样一来证书所绑定的网站就更加的可靠、可信。
    CA证书提供商
    DV证书
    OV证书
    EV证书
    1. 额外手段

    Chrome现已支持DNS OVER HTTPS加密服务

    在谷歌浏览器最新推出的Google Chrome V83稳定版中,正式推出基于HTTPS的DNS(DNS-over-HTTPS)。

    HTTPS上的DNS是一种有争议的互联网隐私技术,可对DNS连接进行加密并将其隐藏在常见的HTTPS流量中,从而使第三方(例如 ISP)无法知晓您正在浏览的网站。

    ISP: Internet Service Provider

    指定DNS解析
    dns2.png

    相关文章

      网友评论

          本文标题:网络安全-重放攻击及其防御

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