Replay Attack 重放攻击
攻击者拦截一个合法的 数据包,然后重新发送一次或多次,冒充原用户做未授权操作。
举个例子:
- Alice 给 Bob 转账 100 块,通过加密通道
- 攻击者 Eve 在中间录下了”转账 100 元”的加密包(她看不到内容)
- Eve 把这个包再发 100 次 —— Alice 莫名其妙转了 10000 给 Bob
关键:Eve 不需要解密就能造成损失,只需要”重放”包。
防御:
- Nonce / 时间戳 —— 每个请求带不可重复的随机数或当前时间,服务端拒绝旧的
- 序列号 —— 每个包带递增序号,服务端拒绝已见过的
- 短期 Token —— 每次操作单独签发 token,用一次就废
- 挑战-响应认证 —— 服务端给挑战值,客户端用密钥算响应,挑战值每次不同
有状态防火墙 通过维护连接状态能识别一些重放,但应用层防御才是核心。