GoForum › 🌐 V2EX

登录接口防重放攻击怎样设计?

cl76915557 · 2026-09-02 11:33 · 0 次点赞 · 4 条回复

请教各位大神一个登录接口安全问题。 我们大作业 web 系统 账号密码登录的现有设计:客户端先拉取服务端 RSA 公钥,使用公钥加密用户名密码提交登录接口。 我发现这个只能防止密码明文被抓包窃听,无法防御重放攻击,攻击者捕获加密报文就可以反复重放登录。 所以 ai 调研了几个方案 1. 新增 challenge 接口,登录前获取一次性 challenge ,challenge 和账号密码一起加密,消费即作废;

  1. 客户端携带 nonce+timestamp 随请求一起加密,服务端校验时间窗口+redis 校验 nonce 防重复。

想问下线上用户名密码登录场景,哪一种落地更多? challenge 模式两次接口会不会有什么短板?感谢大家。

4 条回复
dzdh · 2026-09-02 11:33
#1

rsa 公钥你弄个 md5 指纹。只能用一次。一次一生成 rsa 公钥 :doge:

Liu6 · 2026-09-02 11:38
#2

额, 这 sign 不就很符合你的场景吗? sign 可以严格一次, 也可以时间窗口,也不需要使用缓存等资源。

Liu6 · 2026-09-02 11:38
#3

@Liu6 #2 现在是 AI 时代, 直接问 AI 吧。 除了 AI 我现在都快啥都不会了

godall · 2026-09-02 11:43
#4

防重放攻击的标准做法就是 nonce+timestamp 啊,没什么好争议的。

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: cl76915557
发布: 2026-09-02
点赞: 0
回复: 0