验证Windows Mobile 6设备

问题描述:

我有一个在Windows Mobile 6 Professional PDA设备上运行的应用程序。该应用程序通过浏览设备中的URL并下载驾驶室进行安装。验证Windows Mobile 6设备

用户在应用程序中捕获信息,然后使用合并复制和IIS v6将其复制回SQL 2005服务器。

虽然用户需要登录设备上的应用程序,任何知道该url的人都可以下载并安装。此外,如果您知道用户密码,任何拥有设备的用户都可以更新该用户信息。

我会以某种方式在安装或复制阶段(或两者)验证设备。

是否可以根据序列号或IMEI(手机ID)号码对设备进行身份验证? 有没有办法将证书加载到设备上,以便只有经过认证的设备才能连接?

我想要一个不难实现和支持的系统。用户必须能够更新他们自己的设备,他们不太擅长记住复杂的程序或密码。

一种可能的解决方案是发送唯一设备ID作为身份验证的一部分。 Windows Mobile Team Blog上有一篇关于使用GetDeviceUniqueID的帖子。

当用户第一次连接到服务器并在每次合并之前对其进行验证时,您可以存储此唯一标识。

这种方法有助于确保用户登录是通过他们自己的电话进行的。它解决了远程入侵者将您的程序下载到他们自己的电话并登录到合法用户帐户的问题。当然,如果这样的入侵者可以访问您的用户电话和密码,所有投注都将关闭。

+0

嗨,这有助于客户端,但什么将检查它在服务器端? – MBoy 2009-01-29 10:30:36

您有冲突的要求:

的用户必须能够更新他们 自己的设备,他们不是在记忆复杂的程序 或密码很不错 。

和:

另外,如果你知道一个用户密码 任何人只要有一个设备可以更新 用户的信息。

如果您的用户只能(几乎)不能被期望使用密码,那么您无法指望在任何情况下都能够保护其他任何有密码的人。

没有“神奇”的身份验证,它会告诉您特定的用户或设备是否超出您提供的合法范围。

您可以通过密码保护下载,您可以加载证书,您可以获取PDA信息(甚至是手机信息),但除非您添加另一种验证机制,否则在一天结束时您所拥有的只是一个密码。

密码是你最薄弱的一个环节,你似乎指出你不能提供更严格的访问,但你需要它吗?

如果您有另一个认证通道(电话,电子邮件,短信),那么您可以提供更强大,有意义的认证。

例如,您可以使您的程序操作依赖于您的服务器要求使用的每个用户公钥的“public.key”文件。一旦用户登录到您的网站,让他们给你他们的电话号码(所以现在你有电话号码和密码),并发送一个短链接到临时下载密钥的链接。为每个用户创建一个新密钥,将其私钥保存在服务器上,并使用此密钥对对设备和服务器之间的每项交易进行加密(或至少验证)。

现在,如果其他人想要假装他们是他们的用户,他们必须获得以下三种方式之一是文件:

  • 他们把它直接关闭PDA(他们还需要密码,如公钥应该由用户密码保护)
  • 他们得到用户请求一个新的短信链接,并以某种方式获取链接,而无需在电话
  • 他们更改电话号码,并要求新的短链接

无论如何,您不仅验证密码,还验证关联电话号码。用户可能难以更改电话号码(当他们请求更改电话号码,让他们打电话等等时,也会根据他们的电子邮件进行验证)。

当然你也可以和其他通信渠道一样,但用户越来越习惯于短信认证和下载,所以不会太麻烦。

-Adam

+0

感谢您的回复,这里有一些很棒的创意Adam。你对这个矛盾的要求是正确的......需要给予一些想法(这是在非洲的饮料时间),但电话号码密码选项可能是我的一个解决方案。明天会提供更新。 – MBoy 2009-01-29 16:56:45

您可以为每次下载生成略有不同的cab文件。唯一的区别是您的应用程序将用作用户/密码模拟的安全令牌。这应该是真正安全的公钥。

您每次访问您的应用程序时都可以通过代码向他们发送短信。