移动应用的身份验证令牌,是不是存在离线暴力破解漏洞?
Posted
技术标签:
【中文标题】移动应用的身份验证令牌,是不是存在离线暴力破解漏洞?【英文标题】:Authentication Token for mobile app, is there a offline brute force vulnerability?移动应用的身份验证令牌,是否存在离线暴力破解漏洞? 【发布时间】:2016-03-25 06:10:45 【问题描述】:据我了解,通过基于令牌的身份验证,客户端发送他的用户名/通行证并接收令牌。然后将其用于身份验证。
(关于我的目标的背景信息,以便您更好地理解我正在尝试做的事情,只是使用令牌在 android 应用程序上对 sql 数据库上的用户进行身份验证)
Mobileapp - 发送用户名/密码 -> 服务器 / Api
Mobileapp
Mobileapp - 使用令牌从服务器检索数据 -> 服务器/api
移动应用程序
对于移动应用程序,此令牌不是驻留在用户手机上吗? 我想我在这里误解了一个关键概念。但这不就是说不管我们怎么加密,都能及时破解,这样我们的秘钥就会被泄露?并且一旦密钥被泄露,用户是否不能为其他用户生成真实的身份验证?
可能的解决方案 1:我在考虑用户注册时,会为该用户提供一个密钥用户,该用户可以与他们的信息一起存储在服务器上,而不是通用密钥,所以即使它是坏了它不会对其他用户起作用,这是人们防止这种事情的方式吗?
解决方案 2 或结合一个,是让每个用户的密钥在 24 小时后过期,并对至少需要 24 小时才能破解的密钥进行加密,以提供适当的安全级别?然而,这个问题是用户密码需要存储在某个地方,这会导致它无论如何都会被暴力破解的问题。
请原谅我的无知,感谢任何和所有帮助:)
【问题讨论】:
【参考方案1】:令牌源自一些信息和私钥。从该令牌中获取私钥与从相应的公钥中获取私钥一样可能(如果正确创建了密钥材料,则不太可能)。为了伪造令牌,您需要私钥。综上所述,如果你正确地派生了令牌,攻击者将只能在令牌有效的情况下使用令牌,不能伪造另一个令牌,也无法获得你的私钥。
【讨论】:
我很感激。你能再深入一点吗,从我读过的内容来看,一个令牌只是使用你所说的一些信息创建的,比如说 id + email 或类似的东西,然后被加密,导致一个字符串被用作一个令牌。如果我将其存储在用户手机上。他们有无限的时间来破解令牌密钥,我不确定我是否理解您所指的公共与私人方面。对不起,我刚下班回家,很累,我希望我能保持连贯性:)【参考方案2】:攻击者无法通过破解存储在设备中的令牌获得私钥。这不是时间,这是不可能的。 如果您计划提供更长的会话活动期,可以将令牌存储在设备中。但我建议至少在 24 小时后过期。否则,假设您计划将会话保持活动 15 分钟,则无需将令牌存储在设备中。您可以改为将令牌保存在内存中并在以下情况下使其过期:
用户退出 用户闲置 15 分钟后 当用户关闭应用程序时请记住,为了加强安全性,建议不要使用并发会话(每个用户有多个活动令牌)。建议每次用户发出一个时,使所有剩余的活动会话(令牌)过期。是的,这意味着用户每次都需要输入凭据。不建议将用户密码存储在设备上。但是,您当然可以在用户同意的情况下存储用户的用户名。
【讨论】:
以上是关于移动应用的身份验证令牌,是不是存在离线暴力破解漏洞?的主要内容,如果未能解决你的问题,请参考以下文章
网络安全干货知识分享 - Kali Linux渗透测试 106 离线密码破解