我从事一项处理用户身份验证和授权的服务。我最近增加了2FA支持(电子邮件,sms,TOTP),虽然它工作得很好,但我想知道在传输过程中一次性代码的安全性(客户机>服务器请求)。
假设所有事情都经过HTTPS,那么在有效负载中加密/散列是否有意义?我见过一些银行/金融系统使用一些派生技术(使用另一个值加入代码,哈希整件事情,然后发送,服务器也会这样做)。
发布于 2022-11-18 10:59:08
这是一种简单的方法,可以知道启动登录进程的浏览器是实际登录的浏览器。
想象一下,当OTP访问您的电话时,对手会截取它并使用它登录到目标系统。
如果OTP与发送到已启动登录进程的浏览器的随机值相关联,而不是将OTP发送到服务器,则只能从其他浏览器使用被截获的hash(random value + OTP)
,因为随机值(因此是散列)将不匹配。
不过,简单但不防弹。
https://security.stackexchange.com/questions/266447
复制相似问题