怎么解除防重放攻击

84次

问题描述:

怎么防止重放攻击

推荐答案

2023-10-24 15:21:58

解决方案:

a. 基于timestamp防止重放攻击

每次 http 请求时,都添加timestamp时间戳的参数,服务端接收到请求时,解析 timestamp值,并与当前时间进行比较,判断是否超过60s,

如果超过60s则丢弃该请求。

b.基于nonce值得防重放攻击

每次http请求时,都添加一个固定长度的随机数或请求ip加随机数进行hash生成的字符串,服务端在接受到请求的时候,解析请求的nonce值,并将nonce值存于数据库或缓存中,

当请求时,判断数据库或缓存中是否存在该nonce值,如果存在则丢弃该请求。此时,使用nonce值,在http请求时,nonce值可以保证请求的唯一性。

c .基于timstamp和nonce值防止重放攻击

单纯基于 timestamp进行防重放攻击也会存在风险,如果请求被中间人或是黑客获取,且请求的时间戳与当前时间比较时,仍小于60s时,此时则

不能进行防重放攻击。

其他答案

2023-10-24 15:21:58

1. 加随机数

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

2. 加时间戳

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

3. 加流水号

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

知道问答相关问答

(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6