2010-05-19 65 views
0

什么是用于Windows Mobile应用程序的凭证检查的好方法。知道它是偶尔连接的设备。用于Windows Mobile的登录实施

我应该将用户凭证保存到本地数据库吗?如果证书不存在于数据库中,请尝试查看它是否具有互联网访问权限并通过Web服务进行检查?

如果两者均失败,则显示错误消息?

如果登录成功,则将凭证存储到本地数据库存储,然后在下次登录时首先对数据库进行操作?

这是一个很好的方法吗?

回答

1

我在移动软件类似的情况,我们使用,我们用下面的办法:

  • 设备上的第一次登录时需要验证凭据的连接。 它将在本地存储上次使用的用户名和密码的散列。
  • 下次登录,使用相同用户名将散列输入的 密码,并将其与本地密码进行比较。如果它们匹配,则用户 登录而不需要互联网连接。如果它失败, 用户再次尝试两次,此时软件要求通过主服务器验证凭证 。
  • 下次登录,使用不同用户名将始终使用 互联网连接进行验证。如果成功,它将再次按照 的步骤。

很明显,您需要意识到这种方法容易受到暴力攻击的事实。你无法阻止黑客进行大量尝试。你只能试图减慢它们(使用慢哈希算法和其他标准)。如果你真的担心这种攻击,使用连接的登录验证方法是您唯一的选择。

还有其他的事情要考虑的方式。设备连接频繁还是很少?当连接不可用时,是否有很多不同的用户在设备上登录?对这些问题的回答可能会导致您进行单一登录实施。

2

我们很难告诉你什么是“好”的方法,因为它高度依赖于你的要求,你的设备,你的网络和一堆其他东西。对于需要使用某个远程服务器进行身份验证的应用程序,您的过程似乎很合理只需要考虑几件事:

  • 你将如何存储本地凭证?一个MD5哈希或其他东西?
  • 您是否正在认证回服务器,其中的信誉需要是NTLM还是只是进行本地应用验证?
  • 如果用户丢失设备而其他人发现它,那么这会如何影响您的身份验证过程?
  • 如果他们没有网络,他们如何得到第一个验证码?
  • 您的网络服务有多安全?它甚至重要吗?

我相信还有其他很好的问题要问 - 这些只是现在想到的问题。重点是只有你知道你的应用程序需要什么样的安全级别以及用例是什么样的,所以判断一个方法是否合适的最佳人选就是你。