Tiktok 跟踪用户的技术到底说的是甚,有点不懂 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhenzinian
V2EX    Android

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

  •  
  •   zhenzinian 2019 年 12 月 8 日 19138 次点击
    这是一个创建于 2314 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    Appsflyer 是第三方归因(跨应用安装、以及应用内变现等)平台,很多平台都需要向 Appsflyer 传递必要的参数以辅助归因;
    用户信息回传给 Facebook 主要是让 Facebook 做用户画像
    argomarz
        25
    argomarz  
       2019 年 12 月 9 日
    字节竟然跟小厂一样依赖 appsflyer 和 fb 第三方做广告投放
    cyspy
        26
    cyspy  
       2019 年 12 月 9 日
    各种唯一 id 而已
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3710 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 04:32 PVG 12:32 LAX 21:32 JFK 00:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86