针对移动应用的身份验证令牌,是否存在脱机暴力漏洞?

时间:2015-12-18 13:52:09

标签: security authentication cryptography access-token

根据我的理解,基于令牌的身份验证,客户端发送他的用户名/密码并接收令牌。然后将其用于身份验证。

(关于我的目标的背景信息,以便您可以更好地理解我想要做的事情,只是使用令牌来验证Android应用程序上的用户,到sql数据库)

Mobileapp - 发送用户名/密码 - > Server / Api

Mobileapp< - 发送令牌 - 服务器/ Api

Mobileapp - 使用令牌从服务器检索数据 - > Server / api

移动应用< - 发送信息 - 服务器/ api

如果是移动应用,该令牌不会驻留在用户手机上吗? 我想我在这里误解了一个关键概念。但这并不意味着无论我们如何加密它,都可以及时打破,从而揭开我们的秘密密钥?一旦泄露了密钥,用户就不能为其他用户生成真正的身份验证?

可能的解决方案1:我正在考虑用户注册,他们被给予该用户的密钥用户,可以将其信息存储在服务器上而不是通用密钥,所以即使它是打破它对其他用户不起作用,这就是人们如何防止这类事情的发生?

解决方案2或与之结合,将使每个用户密钥在24小时后过期,并对密钥进行加密,至少需要24小时才能打破,以提供相当级别的安全性?然而,问题是用户密码需要存储在某个地方,这就打开了无论如何都要强制使用它的问题。

请原谅我的无知,任何所有帮助都表示赞赏:)

2 个答案:

答案 0 :(得分:0)

令牌源自某些信息和私钥。从该令牌获取私钥与从相应的公钥获取私钥的可能性相同(如果正确创建密钥材料,则非常不可能)。并且为了伪造令牌,您需要私钥。总而言之,如果您正确派生令牌,攻击者只有在有效时才能使用令牌,而不是伪造令牌,而不是获取您的私钥。

答案 1 :(得分:0)

攻击者无法通过破解存储在设备中的令牌来获取私钥。这不是时间,它是不可能的。 如果您计划提供更长的会话活动期,则可以将令牌存储在设备中。但我建议至少24小时后将它过期。否则,如果您计划将会话保持活动状态15分钟,则无需将令牌存储在设备中。您可以将令牌保存在内存中,并在以下情况下使其失效:

  • 用户退出
  • 用户不活动15分钟后
  • 当用户关闭应用程序时

请记住,为了加强安全性,建议不要使用并发会话(每个用户使用多个活动令牌)。建议每次用户发布一个剩余的活动会话(令牌)到期。是的,这意味着用户每次都需要输入凭据。建议不要在设备上存储用户密码。但是,您可以在用户同意的情况下存储用户的用户名。