转:http://paper.seebug.org/papers/Archive/drops2/设备指纹简析.html

Author:bbdog

0x00 设备指纹

前言

最近”水哥”很是火了一把,一招微观辩水技惊四座,粘贴下其如何做到的描述如下:

王昱珩:多信息匹配,看水的时候所有信息抓住,从上往下看,亚克力杯子是没有什么细节的,工业产品很难看(辨识) 。但杯子有水之后,就有了生命,有了不一样的地方,每杯水都是独立的。

记者:魏坤琳说你是通过水的综合特征进行辨识的,除了气泡等我们常人能看到的,还结合了哪些特征?

王昱珩:气泡是依据但不是可靠依据,时间长了它会变大变小甚至掉落。看水看第一眼,给我整个的感觉,就像一个星座。中心点的时候看到一张脸,形象化。每一次闭眼都是在做一次记忆的整理。现场找那杯水,就像拿着照片找人一样,像在茫茫人海找到你爱的人一样,一眼就能看到。

在网络中,你所不知道的角落里,也有很多很多的“水哥”在注视着你们,静静的看着你们的所有活动,并默默把每一幕记了下来。并按照他自己的意愿,或好好坏的使用这些数据。

它们所使用的方法与“水哥”基本一致:每个人根据其综合特征进行辨识,都是可唯一的。通过对这些综合特征的识别,就可以把你从千万人中识别出来。

设备指纹是什么

对于某些网站来说,能够精确的识别某一用户、浏览器或者设备是一个很有诱惑性的能力,同时也是一个强需求。

它有什么用

例如,对于广告联盟或者搜索引擎来说,可以利用设备指纹知道这个用户之前搜索过什么、爱好是什么,从而在搜索结果中更好的贴合用户需求展示搜索结果;对于银行、电商等对于安全需求更高的组织来说,可以利用该技术,发现正在登陆的用户环境、设备的变化,从而阻止账号盗取、密码破解等恶意请求;当然,对于某些恶意组织,也可以利用这种技术,用于对用户进行追踪。

它的基本原理是什么

这里,姑且给出会被拍砖的结论:

服务器通过在客户端收集以下数据:

A.浏览器或设备对于特定标准的不同实现(如标准api使用情况)

B.服务器曾经下发给客户端的特定数据

C.浏览器或设备对特定事件的不同反应(如已缓存的文档)

D.浏览器用户个人特有设置

E.浏览器用户个人特有的其他信息(如浏览器历史)

通过对以上数据进行组合,并进行hash即可得到一个该设备的唯一识别码。

同时,为了保证数据的稳定性和精确度,设备指纹还需保证这些数据的不变性和稳定性(针对现在很多用户会使用隐私模式/清理cookie),于是又引出了其他的一些相关性技术,如持久化cookie等。

它是如何精确的找出你的呢?

举个例子,以下是我的数据,数据来源[https://amiunique.org/fp]:

  1. 我使用chrome,在某网站上的所有用户中,我是34.46 %之一
  2. 我使用的浏览器是chrome48.0,占比2.46%
  3. 我的操作系统是mac,占比13.9%
  4. 我的mac版本是mac 10.10,占比7.25%
  5. 我设置的语言是中文,占比0.56%
  6. 我浏览器设置的时区是UTC+8,占比1.58%

将以上的百分比进行相乘,你会发现要找到一个跟你完全一幕一样的设备,概率是很低的。 当然,如果你的设备、操作系统、浏览器等足够”平庸”,设备指纹不能保证找到你,它只能得出一个结论:现在我发现了一批人,这批人中有你。 如果你的设备、操作系统或浏览器足够特别,它就会像”水哥”一样马上把你找出来。

你到底有多特别

有人说,我用的是大众的操作系统,直接从某度下的最新版本浏览器,没有做任何额外配置,我本身还经常做清理cookie操作,我应该跟很多大众一样,为什么我会像黑暗中的萤火虫一样,如此容易被识别呢。在此简单给出理由,具体可以到相关技术中看详细实现。

  1. 浏览器在使用过程中,所使用的缓存机制会暴露。
    你最近访问过支付宝,那么在缓存期间,访问支付宝的响应速度会很快。这些对于不同网站的访问速度,可以得出类似用户访问历史的数据,而每个人这份数据都是不同的,你爱淘宝我爱天猫就是如此。

  2. 浏览器的实现机制、设备的性能会暴露。
    用i7内核的电脑和酷睿2的电脑对同一段计算任务的计算时间,会暴露你的硬件差异。

  3. 你所安装的插件和字体会暴露你。

  4. 你清除了cookie,然而根本没有清理干净。

  5. 历史上的数据会暴露你。

......

如果一个部署了设备指纹的网站,可以完美的拿到上述的这些数据,那么它基本上可以百分百的断定你是谁,然后捞出你在某天某月看小电影的记录。

它具体包含哪些技术

首先,基于相关技术的时间点和其对抗的难度,整理如下图所示。

session/cookie

这是实现方式最简单,也是应用最普遍的方式。 通过浏览器set-cookie存储数据(UUID)到客户端,然后在其他请求时候附在头部里即可完成。 缺点是,通过手动清理、禁止写入等可以很简单的阻拦,导致数据稳定性降低。

window.name等dom操作

window.name可以存储最多2MB的数据,可以用于一些特殊的场合进行数据传递,不过这种方法比较trick,没有太多人使用。

基于缓存的识别

基于缓存的识别大致上可以分为几类:

  1. 每人一份特有的缓存文件
    比如服务器返回给每个用户的html中,隐含一个特殊的div,id直接用UUID生成。用户下载一次以后,因为缓存的缘故,这个id就会和其浏览器、设备绑定。

  2. 加载速度区分
    有缓存数据肯定比没缓存的数据下载速度快。
    具体做法通常是:访问一个很少不会有人访问的地址,得到一个下载的基准值,然后再访问一次,得到缓存的一个基准值。然后访问一个准备好的常见网站的列表,看处于缓存状态的有哪些网站。

  3. ETAG/LastModify
    通过滥用这两个header,比如设置ETAG超时时间超长,并且把UUID写在ETAG中(ETAG支持最高81864比特),那这个用户就可以在超时前被一直锁定跟踪

  4. DNS缓存
    该技术与加载速度区分并无本质区别,只是dns缓存是利用dns查询时间查询的长短等进行的,在此不做赘述。 

如果可以完美的得到每个用户最近访问的网站,那基本可以完成精准定位了。

这里先贴一个2010的css历史记录嗅探的问题:

持久化cookie/Flash cookie/evercookie/h5 stroage/webDB

该技术其实是对cookie技术的一个补充。因为,越来越多的普通用户会清理cookie,因此导致无法对用户进行识别,因为每次看到用户都是全新的用户。

所谓的持久化cookie,无非就是将数据尽可能的藏在了更多的猥琐的地方。比如flash中(flash可做到多个浏览器、多域下的数据共享,因此被广泛使用),h5的各种生命周期的storage中,webDB中、IE的userdata中等。

如果用户不能事无巨细的清理干净。一旦有一个地方未清理完,就会把清理的部分完全覆盖回来。

简单流程图如下:

帆布指纹

这是较新的一种技术,是利用不同浏览器不同的设别实现会在canvas绘图这以功能中,同样的内容,会绘制出具有细小细节差别的图片。 通过对这些图片数据进行hash,可以得到一个粗略的指纹。该指纹能够识别出了某种GPU在安装了某种字体下的群体。但是单一使用该数据进行判断误判较高,一般还会结合其他技术综合判断。 如下,即是对同样的一段带表情带背景文字在不同设备上渲染出的图像显示。

利用不同设备上的默认字体和显示的不同,笑脸表情在各个系统上作图如下:

具体生成方法如下:

  1. 创建cavas环境,该canvas可以是不可见的,因此对用户完全无感知。
  2. 设置要作图的类型,字体等,调用api:fillRect、fillText、fillStyle等
  3. 对已经完成的图,调用api:canvas.toDataURL(),即可得到图的base64表示,采用一种hash算法,即可完成hash计算
  4. 将这个hash即可作为该设备设备指纹的一个组成部分。
Flash/Java/JAVASCRIPT等 基本数据采集

设备指纹也需要采集尽量多的数据进行区分,数据采集方式可以通过Flash、java applet(现在基本没有了)、js。

采集包括:

  1. 操作系统类型、操作系统版本
  2. 浏览器useagent、浏览器的平台
  3. webgl Vendor 、webgl render
  4. 是否支持image、是否支持js
  5. 内容编码、设置的时区、设置文本语言、设置接受压缩格式
  6. 屏幕分辨率、color depth
  7. 浏览器安装的插件、安装的字体
  8. http请求发起时的头部
  9. webRTC 等等
0x01 end

最后,还是表达下我对“水哥”的憧憬,附上我喜欢的一个图:

0x02 refer

  1. Mowery, Keaton, et al. "Fingerprinting information in JavaScript implementations." Proceedings of W2SP 2 (2011).

  2. Bujlow, Tomasz, et al. "Web Tracking: Mechanisms, Implications, and Defenses." arXiv preprint arXiv:1507.07872 (2015).

  3. [https://zyan.scripts.mit.edu/presentations/toorcon2015.pdf]

  4. Acar, Gunes, et al. "The web never forgets: Persistent tracking mechanisms in the wild." Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2014.

  5. Mowery, Keaton, et al. "Fingerprinting information in JavaScript implementations." Proceedings of W2SP 2 (2011).

  6. Laperdrix, Pierre, Walter Rudametkin, and Benoit Baudry. "Beauty and the Beast: Diverting modern web browsers to build unique browser fingerprints."37th IEEE Symposium on Security and Privacy (S&P 2016). 2016.

  7. Acar, Gunes, et al. "The web never forgets: Persistent tracking mechanisms in the wild." Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2014.

  8. Fifield, David, and Serge Egelman. "Fingerprinting web users through font metrics." Financial Cryptography and Data Security. Springer Berlin Heidelberg, 2015. 107-124.

  9. Sánchez-Rola, Iskander, et al. "Tracking Users Like There is No Tomorrow: Privacy on the Current Internet." International Joint Conference. Springer International Publishing, 2015.

  10. Mowery, Keaton, and Hovav Shacham. "Pixel perfect: Fingerprinting canvas in HTML5." Proceedings of

金融反作弊中的设备指纹相关推荐

  1. 反欺诈技术揭秘-设备指纹VS关系网络模型 此博文包含图片 (2017-05-12 10:23:52)转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型 分类: 风控 文章来源:网络(经整合梳理

    反欺诈技术揭秘-设备指纹VS关系网络模型 (2017-05-12 10:23:52) 转载▼ 标签: 设备指纹 关系网络 反欺诈 神经网络模型 分类: 风控 文章来源:网络(经整合梳理,仅供交流学习使 ...

  2. 图算法在斗鱼反作弊中的实践

    导读:斗鱼作为个人直播平台,长期以来除了普遍存在的灰黑产,虚假流量也是流量风控的重灾区.本文将介绍图算法在斗鱼反作弊中的业务实践,主要内容包括: 斗鱼流量风控业务场景 斗鱼图算法体系 图算法风控建模 ...

  3. 系统化的反欺诈:风控设备指纹、埋点策略、关系网络要点介绍

    反欺诈是目前大家比较关注的内容,在知识星球社区,关于反欺诈的相关的内容也不少,相关的课题如下: 1.反欺诈埋点的这些页面,风控人都应知悉 2.恶意攻击防范之信用卡业务的计数器反欺诈 3.数据埋点与设备 ...

  4. 反欺诈体系与设备指纹

    文章目录 动态防控理念 生物探针 智能验证码 生物探针和智能验证码的区别: 风险态势感知系统 风控核心组件设备指纹 设备指纹的原理 Android 设备指纹 iOS 设备指纹 Web 设备指纹 设备I ...

  5. 互联网大会:聚焦金融安全,加速声纹等生物识别技术进行金融反诈

    日前,在乌镇第六届世界互联网大会上,金融科技问题成为与会嘉宾们讨论的主要内容,包括加强金融科技顶层设计.推动金融与科技深度融合.控制风险加强金融反欺诈建设.数字普惠.用"共建"实现 ...

  6. 图数据库应用:金融反欺诈实践

    1 背景介绍 1.1 传统反欺诈技术面临挑战 数字技术与金融业的融合发展,也伴随着金融欺诈风险不断扩大,反欺诈形势严峻.数字金融欺诈逐渐表现出专业化.产业化.隐蔽化.场景化的特征,同传统的诈骗相比,数 ...

  7. 2021.05.15智能风控峰会之流量反作弊论坛-论坛笔记

    在这个新媒体时代,各种低俗广告和短视频.造谣.刷单.违法曝光等内容不断触及法律底线,而人工审核的传统方式已经无法应付机器爆发式生成的内容量,因此,如何做好流量反作弊方面的智能风控一跃成为热点.     ...

  8. 技术揭秘 | 互联网广告黑产盛行,如何反作弊?

    简介:有人的地方就有江湖.广告作为互联网公司商业变现最为直接快捷的途径,广告作弊已经形成了一个有完整链条的黑产行业.如何通过技术手段识别并防范广告作弊?本文通过介绍常见的广告计费模式和虚假流量的获益形 ...

  9. 渠道反作弊之常见行业手段

    总结 对用户设备物理信息的采集,通过技术手段识别是否异常,或以来后台类似黑名单的资源进行判断.未来较为先进的手段有检测设备的环境信息,例如是否有触摸,设备位置角度是否有变化等,同盾在近半年可能会使用这 ...

最新文章

  1. labview叠加白噪声_振荡器的相位噪声模型
  2. AOP 中必须明白的概念-切面(Aspect)
  3. 1.KafKa-介绍
  4. java核心技术-jvm基础知识
  5. 关于PreparedStatement.addBatch()方法 (转)
  6. 同比暴增3700%!百度取代谷歌成世界第二
  7. usb连接不上 艾德克斯电源_工程师,USB与SPI之间如何通信?什么芯片方案可以实现...
  8. 设计灵感|海报设计中常见的文字排版样式
  9. Objc Runtime在项目中该怎么用
  10. 计算机一级笔试2012,2012计算机一级笔试模拟试卷及答案
  11. ROM PROM EPROM EEPROM FLASH(NAND、NOR)
  12. drools部署教程
  13. 手机号码编码规则是什么?
  14. XRHT电钢琴电子琴实训室教学管理系统配置方案
  15. samtools faidx输出的fai文件格式解析 | fasta转bed | fasta to bed
  16. Oracle SQL Developer安装教程
  17. PHP函数实现计算器—加减乘除
  18. SpringBoot中banner个性启动(内附自定义设计网站)
  19. python工作任务流flow实时框架:prefect
  20. 购房指南—买房经验总结

热门文章

  1. 计算机网络校园局域网课题,毕业论文基于VLAN技术的校园局域网建设word文档_全文免费在线阅读(推荐阅读)...
  2. SurFS:共享式和分布式集群各取所长
  3. iOS开发-DES加密解密算法
  4. android执行lua脚本的方法,android执行lua脚本的方法
  5. 使用UltraISO软碟通离线安装Centos8.3.2011过程中遇到的问题
  6. 手势操作各个方法的含义
  7. java jen部署_CSS布局:Jen Simmons的网格,区域和@Supports
  8. 博客园申请js权限方式
  9. Airport Simulation (数据结构与算法 – 队列 / Queue 的应用)
  10. web系统中的结构化数据标记