请教各位大神一个登录接口安全问题。 我们大作业 web 系统 账号密码登录的现有设计:客户端先拉取服务端 RSA 公钥,使用公钥加密用户名密码提交登录接口。 我发现这个只能防止密码明文被抓包窃听,无法防御重放攻击,攻击者捕获加密报文就可以反复重放登录。 所以 ai 调研了几个方案 1. 新增 challenge 接口,登录前获取一次性 challenge ,challenge 和账号密码一起加密,消费即作废; 2. 客户端携带 nonce+timestamp 随请求一起加密,服务端校验时间窗口+redis 校验 nonce 防重复。
想问下线上用户名密码登录场景,哪一种落地更多? challenge 模式两次接口会不会有什么短板?感谢大家。
