目 录CONTENT

文章目录

重放攻击哈希函数消息认证

geekrabbit
2022-09-20 / 0 评论 / 0 点赞 / 496 阅读 / 794 字 / 正在检测是否收录...
温馨提示:
创作不易,转载请注明出处

什么是重放攻击?

主机A要给主机B发送报文,中间重放攻击的主人可以是A,或者是攻击者C

image.png

C截获了A发送给B的报文,然后再伪装成A给B发送其截获的报文
重放攻击的含义:主机A给主机B发送的报文被攻击者C截获了,然后C伪装成A给B发送其截获来的报文,而B会误以为C就是A,就把回应报文发送给了C。
虽然A是加密的,但C根本不用破译

常见的重放攻击

第一种是直接重放,即重放给原来的验证端,直接重放的发送方和接收方均不变。

第二种是反向重放,将原本发给接收方的消息反向重放给发送方。

第三种是第三方重放,将消息重放给域内的其他验证端。

防御手段

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

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

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

  4. Https防重放攻击。对于https,每个socket连接都会验证证书,交换密钥。攻击者截获请求,重新发送,因为socket不同,密钥也不同,后台解密后是一堆乱码,所以https本身就是防止重放攻击的,除非能复制socket,或者进行中间人攻击。

身份认证

基于口令的身份认证

基于对称密钥的双向身份认证

基于公钥的双向的身份认证

0
博主关闭了所有页面的评论