永久唯一移动设备标识符(Evercookie?)

4

我正在开发的一个Web应用需要将设备标识为已激活或未激活,以防止它们使用未付费的服务。目前,我们将其存储在WebSQL表中,如果您清除浏览器设置,您将完全无法使用,我们必须为您修复。

有没有更持久的方法来唯一地识别设备以确定其设备激活状态?

我一直在研究evercookie,但仅仅清除浏览器和强制关闭几次就可以在Android上摧毁它(没有强制关闭,即使清除浏览器,它也能正常工作)。更好,但不是理想的。我没有iOS设备来测试它,但我们真正关心的只有这两个。

是否有更好的选项我不知道? evercookie比我现有的方案更聪明还是多余的?

关于我们使用的业务模型的背景:客户购买设备许可证,一个设备许可证激活一个设备(即一个设备现在可以使用,而不是一个帐户)。因此,多个设备可以在一个帐户上,但它们需要被激活。因此,唯一的帐户无法解决问题。我们需要一种通过Web应用程序强制设备激活的方法。


我认为去年的Google I/O Android演讲中提到,如果设备被转移,不要使用全局设备ID。我的做法是,在设备经过身份验证后,简单地创建一个存储在数据库中的私钥,并在第一次请求时通过SSL发送它。然后,该第一次请求会收到一个响应,其中包含一个可以在用户退出时删除的cookie。 - Shellum
这些许可证可以转让,但由我们决定。而且我并没有看到你的特定方法中有持久性。 - Will
2
@MobyD,Javascript没有像IMEI这样的唯一设备标识符的访问权限,因此您只能以某种方式使用cookie。我认为这将是一个不错的解决方案:编写一个仅用于身份验证的非常简单的本地应用程序,向您发送IMEI并向他们发送一个短的授权代码以输入到您的Web应用程序中。如果他们出于任何原因清除了cookie,只需要求他们再次使用其他应用程序进行身份验证,发放新的授权代码等即可。 - nwellcome
1
@MobyD,你可以试试PhoneGap,它可以让你使用大部分JavaScript和HTML来创建本地应用程序,就像Web应用程序一样。实际上,它非常快速且容易上手。我不知道如何使用PhoneGap编写类似Chuck Norris的持久应用程序或Pulsar的薄包装器,但我的身份验证应用程序会相对简单。 - nwellcome
你最终选择了哪种解决方案? - Adam Marshall
显示剩余4条评论
1个回答

1

原生应用程序在这个领域允许很多灵活性,而Web应用程序则完全不行。我们目前避免使用原生应用程序。 - Will
100%网络应用程序或者可以包装在非常薄的应用程序中?这可能是我所说的解决方案。只需使用JavaScript获取ID并将其传递给Web应用程序即可。 - Mattias Isegran Bergander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接