Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

隐私追踪攻防战, 详解新版 Safari 智能反追踪技术 #86

Open
chunpu opened this issue Jun 9, 2017 · 3 comments
Open

隐私追踪攻防战, 详解新版 Safari 智能反追踪技术 #86

chunpu opened this issue Jun 9, 2017 · 3 comments

Comments

@chunpu
Copy link
Owner

chunpu commented Jun 9, 2017

北京时间6月6日的 WWDC 2017 发布会上, 苹果介绍了新系统 High Sierra

新版 safari 除了性能重大突破外还有两点重要改动

  • 禁止视频自动播放
  • 启用智能反追踪技术

"no one is tracking you", Tim 说道

用户们受够了看一篇手机评测就满屏幕的手机广告, 他们对这次更新满怀希望

那什么是智能反追踪技术, 它真的有效吗?

image

我们先来回顾一下之前的浏览器反追踪技术

DNT 协议

DNT(Do Not Track) 是一个协议, 需要浏览器和服务器双方遵守才能有效

技术原理

在HTTP请求的 header field 里加了一行 DNT header

DNT: 1

0 表示用户允许被追踪

IE 10 曾默认打开 DNT, 但受到了媒体商的一致反对

W3C工作组认为任何浏览器都不得将DNT服务设置为默认开启

Twitter 曾表态自己支持 DNT 协议, 但在国内, 基本没有服务器会遵守这个协议

可以想象, 就算企业的社会责任感再强, 也不会愿意自己买砖头砸自己的脚, DNT 协议的出现对用户基本没有任何隐私保护

社会责任感最强的 Twitter 市值已经被微博超越 ←_←

image

阻止第三方 Cookie

什么是第一方 cookie?

访问一个网站A时,网站A算作第一方, A 的 cookie 是第一方 cookie

什么是第三方 cookie?

如果网站A中引用了另一个网站B(网站B的域名与网站A的域名不同)的资源, 那B就是第三方, B 的 cookie 是第三方 cookie

第三方 cookie 即跨域 cookie

Chrome 可以通过在隐私保护中选择 "阻止第三方 Cookie 和网站数据" 来禁止第三方 cookie

为什么我们不应该直接屏蔽第三方 cookie?

屏蔽第三方 cookie 对用户带来很多不便, 对于使用SSO单点登录平台也是致命的, 比如登录了 yule.iqiyi.com, 可能上 news.iqiyi.com 还需要再登录一遍

直接屏蔽第三方 cookie 是一刀切的做法, 是对用户不负责任的方法, 万一用户就是对推荐的广告有兴趣呢?

image

(配图来自互联网)

既然 DNT 和 阻止第三方 cookie 都不行, 怎么办呢?

智能反追踪

ITP 全称 Intelligent Tracking Prevention, 中文名智能反追踪, 以下简称 ITP

Webkit 在保护用户隐私上不遗余力, 号称使用了机器学习的方法来做到智能反追踪

实现方案

假设 ad.com 是一家广告联盟公司, 放在各大平台中追踪用户数据

image

  1. 浏览器默认支持发送第三方 cookie
  2. 第一天
    1. 如果用户在24小时内和 ad.com 交互
      1. ad.com 的 cookie 被认为是可发送的第三方 cookie
    2. 否则用户24小时内没有和 ad.com 交互
      1. ad.com 的 cookie 无法发送第三方 cookie, 但 cookie 不会被删除
  3. 第一个月
    1. 如果用户30天没有直接和 ad.com 交互
      1. ad.com 的 cookie 会被删除
      2. 之后加上的 ad.com 的 cookie 会被继续删除

Webkit 认为用户与 ad.com 交互表示对 ad.com 的广告有兴趣

交互的定义: 直接访问 ad.com 域名的网站, 并触发文字输入, 点击, 触摸等操作

为什么不能访问 ad.com 就算交互呢?

因为这样的话 ad.com 可以通过点击跳转 ad.com 再 302 到 target.com 或者在平台塞入 ad.com 的 iframe 来激活自己的第三方 cookie

ITP 解决登录问题

前文提到直接屏蔽第三方 cookie 会使某些登录失效, 但 ITP 可以有效解决此类登录问题

yule.iqiyi.comnews.iqiyi.com 会被同时存在 iqiyi.com 的浏览器存储中, 因此即便第三方 cookie 被阻止了, 直接访问 *.iqiyi.com 也可以照样发送 cookie, 使用户保持登录状态

行业分析

Twitter 上有朋友看到智能反追踪非常高兴, 大喊 "Fuck you, Facebook", 但事实恰恰相反, 对于大平台商, ITP 对他们不会有任何影响

ITP 万一普及, Google, Facebook, Baidu, Alibaba, JD 或成最大赢家, 他们可以既当平台又当联盟, 他们的 cookie 将长久不衰

ITP 打击的是第三方广告公司

追踪的正确姿势

浏览器 cookie 的本意是用户登录, 而非广告追踪的温床

如果想要追踪用户的参数, 可以在请求链接的 query 中加上参数, 而不是通过种 cookie 来跟踪数据

存储用户信息也应该通过服务端, 这样我们还可以做到跨平台的用户追踪与记录, 事实上智能反追踪只会加速服务端跟踪技术

其他追踪方式

flashcookie 依然无视第三方 cookie 限制

参考文档

@yutingzhao1991
Copy link

66666 大神终于又出新作了。

那秒针和admaster岂不是💊。

@chunpu
Copy link
Owner Author

chunpu commented Jun 12, 2017

没准秒针他们有很全的 cookie mapping 数据呢

@arrowing
Copy link

mark 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants