唯一的设备标识

Unique device identification

本文关键字:标识 唯一      更新时间:2023-09-26

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

问题是我们是否能够使用javascript/HTML5创建唯一的设备指纹?

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

您可以使用指纹JS2库,它对计算浏览器指纹有很大帮助。

顺便说一下,在Panopticlick上,您可以看到这通常是多么独特。

看起来phoneGap插件将允许您获取设备的uid。

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

更新:这取决于运行本机代码。 我们使用此解决方案编写 JavaScript,该脚本被编译为我们正在创建的本机手机应用程序的本机代码。

你可以使用这个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
];

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

阿迪德将军

  • 准备受信任的用户(例如经理)可以从设备登录的网页 https://mypage.com/manager-login - 该页面应显示"授予对此设备的访问权限"按钮
  • 当用户按下按钮时,页面向服务器发送请求以生成ADID
  • 服务器代ADID,将其存储在白名单中并返回页面
  • 然后将其页面存储在设备本地存储
  • 受信任的用户现在注销。

使用设备

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

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

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

如果系统使用许多域/子域,则登录后管理器应看到许多"从域 xyz.com 授予对此设备的访问权限"按钮 - 每个按钮将重定向设备执行正确的域,gent ADID并重定向回来。

更新

基于链接的更简单方法:

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