最近对 OTP(一次性密码)密码算法比较感兴趣,想要请教一下,有什么方法可以破除 OTP 密码?

查看 30|回复 4
作者:mocococ   
一次性密码( One-Time Password ,OTP )是一种密码认证机制,设计用来增强系统的安全性。这种密码只能使用一次,使用后即失效,因此它能有效防止重放攻击(即攻击者复制一次成功的认证尝试来进行恶意登录)。一次性密码广泛应用于银行、在线服务和其他需要高安全性的领域。
原理
TOTP 算法( RFC 6238 ) - 技术实现
密钥共享:
用户和认证服务器在初始设置时共享一个密钥。
时间戳:
使用当前的时间戳,通常以 30 秒为单位。
HMAC 算法:
使用 HMAC (基于哈希的消息认证代码)与共享密钥和时间戳结合生成一个哈希值。
动态截断:
从 HMAC 生成的哈希值中动态选择一部分作为最终的一次性密码。
NoOneNoBody   
破除的意思是?你想输入任意数字都能过?
mocococ
OP
  
@NoOneNoBody 就是破解, 感觉只要不是你和对方(通常是服务器),自己泄露了约定的密钥。
想要在不知道密钥的情况下,破解开,基本是没办法的吧。
https://github.com/pquerna/otp
NoOneNoBody   
@mocococ #2
它实际就是哈希,现在也没听过能破哈希的(彩虹表不是破,是获得哈希值查表逆向搜索)
黑的话
要么获得客户端唯一标识,让服务器搞不清来源
要么攻击让服务器 otp 失效
好像这两个破的目标都不是 otp 本身,而是这两方的安防系统
abersheeran   
算法本身肯定没问题。经常攻击别人的朋友都知道,一个系统的安全性是由最弱的那一环决定的。比如你装了浏览器插件用于查看 OTP ,那么攻击者只需要扫你的浏览器存储位置(之前就有人通过扫浏览器目录直接拿到 cookie 等信息代替用户操作)就可以拿到密钥。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部