独特的设备识别

时间:2013-09-11 10:00:44

标签: javascript jquery html5

我们正在开发内部基于网络的应用程序,用于在智能手机和平板电脑上定位时查看数据报告。我们的客户询问我们是否只有某些设备才能访问该内容。因此,我们使用基于javascript / HTML5的技术,我们无法读取IMEI或设备uuid等唯一ID。我们的想法是能够使用上述技术自动创建与时间无关的设备指纹。

问题是我们能够用javascript / HTML5创建独特的设备指纹吗?

线索可能是浏览器可用或已知的信息(例如http://browserspy.dk/

4 个答案:

答案 0 :(得分:89)

您可以使用fingerprintJS2库,它可以帮助您计算浏览器指纹。

顺便说一句,在Panopticlick上你可以看到这通常有多独特。

答案 1 :(得分:2)

看起来phoneGap插件可以让你获得设备的uid。

http://docs.phonegap.com/en/3.0.0/cordova_device_device.md.html#device.uuid

更新:这取决于运行本机代码。我们使用此解决方案编写了正在编译的javascript,用于我们正在创建的本机电话应用程序。

答案 2 :(得分:0)

我有以下想法,您将如何处理此类访问设备ID(ADID):

Gen ADID

  • 准备网页https://mypage.com/manager-login,其中受信任的用户例如管理者可以从设备登录-该页面应显示“允许访问此设备”按钮
  • 当用户按下按钮时,页面将请求发送到服务器以生成ADID
  • 服务器gen ADID,将其存储在白名单中并返回页面
  • 然后将页面存储在设备 localstorage
  • 受信任的用户现在注销。

使用设备

  • 然后是其他用户,例如使用同一设备的员工转到https://mypage.com/statistics并将页面发送到服务器以请求统计信息,包括参数ADID(先前存储在本地存储中)
  • 服务器检查ADID是否在白名单中,如果是,则返回数据

通过这种方法,只要用户使用相同的浏览器并且不重置设备,设备就可以访问数据。如果有人进行了设备重置,则再次需要受信任的用户登录并生成ADID。

您甚至可以为受信任的用户创建一些ADID管理系统,在生成ADID时,他还可以输入设备序列号,将来在设备重置的情况下,他可以找到该设备并为其重新生成ADID(这不会增加白名单的大小) ),他还可以从白名单中删除一些不再允许访问服务器数据的设备的ADID。

如果系统在登录后使用多个域/子域,则管理器应该看到许多“从域xyz.com允许访问此设备”按钮-每个按钮将重定向设备执行适当的域,gent ADID并重定向回。 >

更新

备用Gen ADID:

  • 管理员使用任何设备登录系统并生成一次使用链接https://mypage.com/access-link/ZD34jse24Sfses3J(例如24h)。
  • 然后经理将此链接发送给员工(或其他人),该员工将该链接放入设备中,服务器将ADID返回给将其存储在本地存储中的设备。之后,上述链接停止工作-因此,只有系统和设备知道ADID
  • 然后,使用此设备的员工可以从https://mypage.com/statistics中读取数据,因为它的ADID在服务器白名单中

答案 3 :(得分:0)

你可以使用这个javascript插件

https://github.com/biggora/device-uuid

它可以为您获取有关移动设备和台式机的大量信息列表,例如 uuid

var uuid = new DeviceUUID().get();

e9dc90ac-d03d-4f01-a7bb-873e14556d8e

var dua = [
    du.language,
    du.platform,
    du.os,
    du.cpuCores,
    du.isAuthoritative,
    du.silkAccelerated,
    du.isKindleFire,
    du.isDesktop,
    du.isMobile,
    du.isTablet,
    du.isWindows,
    du.isLinux,
    du.isLinux64,
    du.isMac,
    du.isiPad,
    du.isiPhone,
    du.isiPod,
    du.isSmartTV,
    du.pixelDepth,
    du.isTouchScreen
];