V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhenzinian
V2EX  ›  Android

Tiktok 跟踪用户的技术到底说的是甚,有点不懂

  •  
  •   zhenzinian · 2019-12-08 20:14:10 +08:00 · 15064 次点击
    这是一个创建于 1831 天前的主题,其中的信息可能已经有所发展或是发生改变。

    “对 Tiktok 应用和网站流量的分析发现,它会将用户数据发送给 Appsflyer 和 Facebook,会利用设备指纹跟踪用户。Tiktok 短地址被发现包含了安装 ID,可用于识别谁分享了视频。它甚至还能跟踪谁观看了视频。它使用的跟踪技术包括了 Canvas Fingerprinting,在后台使用矢量图形命令绘制图形,保护图像到一个栅格化 PNG 文件,根据硬件和浏览器该数据在不同设备之间具有唯一性;它还使用音频指纹识别观看者,内部生成音频然后记录比特流,这一数据在设备之间也具有唯一可识别性。北京字节跳动称指纹被用于识别恶意浏览器行为,但研究者对此表示质疑。”

    在某电报频道里看到了说 Tiktok 是利用以上技术追踪用户的,但自己太小白了,看了半天依然没看明白,不知道能否请万能的 V 友们把其中的技术说的明白一点? canvas fingerprinting 是不是 html5 里的新特性? 什么是棚格化 PNG ?为什么具有唯一性? 用音频指纹识别观看者又是什么操作?

    26 条回复    2019-12-09 10:44:34 +08:00
    sdalkesioe
        1
    sdalkesioe  
       2019-12-08 20:50:35 +08:00
    浏览器硬件指纹吧?
    Buges
        2
    Buges  
       2019-12-08 20:59:22 +08:00 via Android
    canvas 说白了就是画图,用 js 代码画一张特定的图,同一套代码在不同的设备上画出来的有细微差别,同一个设备很难变化。通过这个差别(一般是 hash )来锁定追踪用户。
    音频指纹类似,从生成图像变成生成音频。
    Kagari
        3
    Kagari  
       2019-12-08 21:16:02 +08:00
    第一个问题也挺麻烦的,短地址自动跳转根本不可能去掉里面的跟踪代码。接下来就等大佬写个第三方的短地址扩展服务了,当大量的特征集中到一块这些特性就失去了意义
    robertding
        4
    robertding  
       2019-12-08 21:19:52 +08:00
    三方检测链接嘛,广告界标准操作
    tyhunter
        5
    tyhunter  
       2019-12-08 21:28:33 +08:00
    广告投放汪表示第一步其实就是很简单的 deeplink,相当于一套推广系统,之前在游戏上用过,后台 BI 上能看到导数数据
    whywhywhy
        6
    whywhywhy  
       2019-12-08 21:34:08 +08:00 via Android
    @Buges 像品牌机的台式机笔记本都是自带的系统和软件(或者大家的软件差不多),是什么原因让渲染有差异呢。。
    est
        7
    est  
       2019-12-08 21:52:19 +08:00   ❤️ 1
    其实我觉得 body unload 之后 disableJavascript, disableNetwork。
    lhx2008
        8
    lhx2008  
       2019-12-08 21:54:12 +08:00 via Android
    @Buges canvas 画图这个真的想不到,不知道好不好实现
    des
        9
    des  
       2019-12-08 21:59:47 +08:00 via Android
    标题看成了 tiktok 偷录用户说话
    westoy
        10
    westoy  
       2019-12-08 22:01:02 +08:00
    @lhx2008 gayhub 上搜 fingerprint js,一大把, 很成熟很悠久了。 最早听说几个大厂玩设备指纹的时候, 亚马逊还在玩弄 flash cooke 呢......
    yankebupt
        11
    yankebupt  
       2019-12-08 22:19:47 +08:00
    @westoy fingerprint 能玩几天算几天吧...等玩到谷歌弄明白这些 ad 模仿者把自己声誉都搞坏了的时候...
    允许哪个设备管理器 app 弄个什么第一方脚本要先过用户黑名单,第三方脚本要在白名单之类的...
    就都没得玩了
    yankebupt
        12
    yankebupt  
       2019-12-08 22:21:18 +08:00
    然后还能玩啥?订阅制?我是真不知道……
    Buges
        13
    Buges  
       2019-12-08 23:05:47 +08:00 via Android
    @whywhywhy 当然差不多,但不会完全相同,当然也有一定碰撞概率。显卡,分辨率,软件设置,版本等等都有所影响,可能你改个设置就变了,但一般情况很少变化再配合 IP 地址追踪用户是完全足够的。
    lhx2008
        14
    lhx2008  
       2019-12-08 23:07:46 +08:00 via Android
    @Buges 一般不会配合 IP 地址吧,这个变动还挺频繁的
    id7368
        15
    id7368  
       2019-12-08 23:37:36 +08:00   ❤️ 1
    这就是为什么要使用 Firefox,火狐从去年开始就在拦截指纹识别了,现在 Microsoft Edge 和 Apple Safari 也在跟进。但市占率最大的 Chrome 已经明确表示不会学 FF 那种做法。
    CoderGeek
        16
    CoderGeek  
       2019-12-09 00:08:37 +08:00
    看下设备指纹 等 我 git 上有个简单的 fingerprint 当然 ad 有更高深的玩法 不过都在大厂商那里
    shansing
        17
    shansing  
       2019-12-09 00:26:34 +08:00
    2 楼说得很清楚了。我再给楼主理一下。canvas (而不是 canvas fingerprinting )是 HTML5 新特性,有人发现可以用来追踪访客,于是有了 canvas fingerprinting 概念; canvas 用于或简单或复杂的图形绘制,并不是设计为追踪指纹的。“栅格化”是指将矢量图转换为位图; canvas 是由代码(方程)绘制图形的,在特定分辨率下将一个个像素记录起来,可以保存为位图,也就是 PNG 一类的格式。
    idhrwb01296
        18
    idhrwb01296  
       2019-12-09 00:36:14 +08:00
    musicx
        19
    musicx  
       2019-12-09 00:51:53 +08:00
    看一下 cent browser 设置页里面不推荐拦截的那些东西,都是用来跟踪用户行为的。
    binux
        20
    binux  
       2019-12-09 01:10:58 +08:00 via Android
    @id7368 #15 Firefox 的拦截就是个地址匹配的黑名单,没卵用
    imn1
        21
    imn1  
       2019-12-09 03:02:07 +08:00   ❤️ 1
    首先你没有明白“浏览器指纹”是怎样的

    以前的浏览器,提交的信息很少,很多人都用,环境参数差别不大,重复数据很多,几乎分不出谁是谁
    但现代的浏览器,有很多功能,也会提交很多这些功能的反馈,把他们组合起来,就可以确定某个人或浏览器
    简单一个例子,在某个地区(假设 10 平方公里)内,很难找到两个人的浏览器装相同的扩展(完全不装扩展或仅有一两个扩展的不在此例),并且所有扩展的参数都相同,如果有读取所有扩展列表这个功能,基本上在某个时间段内,就能分出每个浏览器
    这个例子,ip 范围、扩展列表、时间范围三个字段,可以构成唯一值,和数据库里面的多字段主键一样(假如你知道数据库的话),任一都可能变化或相同 /重复,但共同就唯一了
    例如我 firefox 没有 flash、静音、禁止视频自动播放、一个扩展叫做 floccus,这四条加起来我猜 10 平方公里内都较难找到第二个

    题外,假如你的手机 APP 比较固定,不会经常安装卸载的话,建议没必要的话不要开放读取应用列表这个权限

    如上所述,canvas 只是其中一种“字段”而已,但它也可以单独成为主键

    浏览器指纹其实比较难避免,某些站你封杀的话还可能造成访问困难,例如知乎
    一般人可以对付的,可以做的工作,应该是多清除 cookies,不要让 cookies 里面的数据构成一个完整的 timeline
    当然,只是对开放网站而言,要登陆的网站,没什么可防的

    如果可能,把开放网站和登陆网站分开浏览,这个也很难做到,不过,可以了解一下 firefox 的 container,这个是目前所有浏览器,在这方面做得最好的功能了
    imn1
        22
    imn1  
       2019-12-09 03:10:03 +08:00   ❤️ 1
    有些指纹应用场合是正常的,例如网盘(指下载时,泛指,不是针对某一家),因为网盘提供方要防止爬虫和滥用,可以理解,但它有没有“顺便”收集数据,那就天知道了
    Mithril
        23
    Mithril  
       2019-12-09 07:22:51 +08:00   ❤️ 1
    声音那个是直接在后台调用录音和回放 API,但是并不直接访问录音和回放设备。就是直接录一段空白的音频。因为没有申请调用录音设备,并不会触发浏览器的权限警告。
    但是那个 API 据说是直接走硬件的,每个 DSP 录出来的噪声都会有细微的差别。
    一般来说这些指纹技术都是拿来防爬虫的。字节跳动有没有用来追踪个体用户就不知道了。
    fordoo
        24
    fordoo  
       2019-12-09 09:55:43 +08:00
    正好从事相关行业,主要作用就是判断是否为同一用户,收集信息为用户做画像,最后提供定制化广告;收集信息主要是下列信息
    1. 安卓主要通过 Google Advertising ID(有 google play 的用户)、Android_ID 追踪用户
    2. IOS 通过 IDFA,IDFV 追踪用户;
    3. 设备机型、语言、系统、网络、用户产生行为等信息也会辅助追踪用户。
    通过

    Appsflyer 是第三方归因(跨应用安装、以及应用内变现等)平台,很多平台都需要向 Appsflyer 传递必要的参数以辅助归因;
    用户信息回传给 Facebook 主要是让 Facebook 做用户画像
    argomarz
        25
    argomarz  
       2019-12-09 10:16:01 +08:00
    字节竟然跟小厂一样依赖 appsflyer 和 fb 第三方做广告投放
    cyspy
        26
    cyspy  
       2019-12-09 10:44:34 +08:00
    各种唯一 id 而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   875 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:29 · PVG 04:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.