全栈算力,加速行业AI落地 了解详情
写点什么

苹果:我要保护用户隐私,谷歌:你是舍不得自己的蛋糕

  • 2020-07-15
  • 本文字数:2134 字

    阅读完需:约 7 分钟

苹果:我要保护用户隐私,谷歌:你是舍不得自己的蛋糕

近日,苹果拒绝了将 16 个 Web API 部署在 Safari 浏览器中的请求,苹果觉得这些 API 会对用户的隐私构成威胁。

苹果拒绝部署 16 个 Web API

苹果已经表示,不会在其 Safari 浏览器的 WebKit 引擎中实现 16 个 Web API,部分原因是它们构成了隐私威胁。但苹果的批评者,包括谷歌等竞争对手,都将苹果的立场视为对竞争威胁的一种防御手段。


这些 API 都是最近几年开发的,它们让 Web 开发人员可以访问很多原本只对原生移动平台程序员开放的功能;但这些 API 可能会被滥用,用来识别设备指纹:这是一种侵犯隐私权的技术,能够从可读的设备特征中构造出唯一的标识符,以实现对用户踪迹的跨网站追踪,标识符之间还可关联起来以跨设备追踪用户。


WebKit 团队最近更新的有关跟踪预防的文章解释说:“WebKit 抵御设备指纹的第一道防线,是拒绝实现那些可增强指纹能力,并且不提供安全的方法来保护用户的 Web 特性。”


https://webkit.org/tracking-prevention/


被拒绝的的 16 个 API 分别为:


  • Web Bluetooth

  • Web MIDI API

  • Magnetometer API(磁力计)

  • Web NFC API

  • Device Memory API

  • Network Information API

  • Battery Status API

  • Web Bluetooth Scanning

  • Ambient Light Sensor(环境光传感器)

  • HDCP Policy Check extension for EME(HDCP 协议检查扩展)

  • Proximity Sensor(距离传感器)

  • WebHID

  • Serial API

  • Web USB

  • Geolocation Sensor (background geolocation)(位置传感器)

  • User Idle Detection


独立研究人员兼顾问 Lukasz Olejnik 在给 The Register 的一封邮件中,声称这一决定是隐私保护的一次胜利,并指出他在 2015 年与他人共同发表的针对 Battery Status API 的隐私风险的研究,以及之后针对其他浏览器指纹威胁的分析或许影响了苹果的政策决定。


https://blog.lukaszolejnik.com/battery-status-not-included-assessing-privacy-in-w3c-web-standards/


对于滥用 Battery Status API 的担忧(网站和基于浏览器的应用程序可使用这个 API 来检查访问者 / 用户移动设备的电池电量),促使 Mozilla 在 2016 年 10 月取消了对它的支持。大约在同一时间,苹果公司已经在代码中实现了这个 API,但从未激活它。最后苹果还是选择了拒绝。


与此同时,谷歌在 2015 年 7 月 10 日首次亮相的 Chrome 45 中实现了 Battery Status API。今年 5 月份,这家互联网巨头承诺对其进行调整,允许开发人员在其应用和第三方组件中禁用该 API,但并不会移除它。

试图控制市场?苹果:我没有

对苹果表示沮丧的人群中恰好就有谷歌的工程师,他们觉得苹果在扯 Web 平台的后腿。


苹果要求 iOS 设备上的所有 Web 浏览器都使用 Safari 的 WebKit 渲染引擎,这让 iOS 上的移动浏览器趋于同质化。有开发者表示:“苹果强制要求使用 WebKit 使 iOS 上的浏览器变成了一种“单一文化”,我以为我可以将 Chrome 设置为默认浏览器,但最后我还是在使用 Safari。”


在过去的几年中,苹果在 Safari 中部署 API 的节奏颇为悠闲(或谨慎),这意味着渐进式 Web 应用(PWA,可离线运行的可安装 Web 应用)在 iOS 设备上无法正常工作。


结果,Web 开发人员,特别是那些对 PWA 感兴趣的开发人员,指责苹果试图限制 Web 应用以保护其在原生 iOS 应用中的既有利益:苹果根据自己制订的 AppStore 规则获得了 30%的收入分成。这些规则现在已成为欧盟反托拉斯调查的目标。


https://www.theregister.com/2020/06/16/eu_apple_competition_investigations/


谷歌高级软件工程师 Alex Russell,主要从事 Chrome、Blink 和 Web 标准开发工作,他在 Twitter 上发了一篇帖子:“永远不要忘记苹果之所以限制浏览器引擎的选择权,主要是防止 Web 成为符合新标准内容的有吸引力的开发目标”。



Russell 认为,苹果的目标是确保 Web 平台的功能无法与原生应用相提并论。


Russell 指出,苹果支持其他很多可能被滥用的 API,例如与方向 / 加速度、地理位置、相机访问、GPU 图形加速、游戏手柄以及文件和目录上传相关的那些 API。


就像 Stratechery 的技术分析师 Ben Thompson 在周一的一篇博客文章中所说的那样:“拖累 Web 会提升应用的吸引力,苹果就能从中获益;同样值得注意的是,苹果公司正在扩展自己的应用产品线,并不在乎行业对手的损失。”


https://stratechery.com/2020/apple-and-facebook/


当被问及这些关于竞争的指控是否有依据时,Olejnik 承认有些人是会从这个角度看待苹果的技术决策。他说:“不管怎样,一些隐私担忧是合理的。”


另外作为参考,PWA 面对的技术壁垒正在消减。


https://love2dev.com/pwa/ios/


以前,广告商想追踪用户信息,大多依靠第三方的 Cookie。近年来,各大浏览器的开发商致力于部署反追踪功能,第三方 Cookie 的能力和使用范围越发遭到限制。于是,用户指纹技术“应运而生”。据悉,在过去的三年里,用户指纹已经成为在线广告技术市场上追踪用户的标准方法。


浏览器开发商也有相应的对策,即通过一些常见的操作来防止指纹操作,例如字体,HTML5 canvas 和 Web GL 等,不过这也不是万全之策,部分用户指纹向量无法通过这些方法阻止。


目前,苹果已经将这 16 个 API 列为严重的“违规者”。不过苹果表示,如果这些技术在未来可以降低隐私安全隐患,则会重新考虑是否将其添加到 Safari 中。

延伸阅读

https://www.theregister.com/2020/06/29/apple_web_developers


2020-07-15 18:431963

评论 2 条评论

发布
用户头像
web开发者看了觉得很头疼 👨🏻‍🦲
2020-07-17 14:09
回复
用户头像
苹果在以一家之力试图阻挡Web延伸的趋势,这几乎是螳臂当车,历史会一步一步把Safari扫进垃圾堆的。。。
2020-07-16 17:35
回复
没有更多了
发现更多内容

程序员最容易读错的单词,听到status我炸了

艾小仙

Java 前端

架构实战营 毕业总结

Gor

golang实战之flag包

程序员欣宸

golang 8月月更

Excelize 发布 2.6.1 版本更新,支持工作簿加密保护

xuri

开源 数据分析 Go 语言 Excelize Excel工具

《博弈论》— 人生何处不博弈

蔡农曰

读书笔记 博弈论

RocketMQ高可用设计之消息重试机制

急需上岸的小谢

8月月更

[JS真好玩] 遇到表格,手动翻页太麻烦?我教你写脚本,一页展示所有数据

HullQin

CSS JavaScript html 前端 8月月更

基于STM32L431设计的云端绿化管理系统(ESP8266+腾讯物联网云平台)

DS小龙哥

8月月更

阿里云林小平:如何实现应用的持续发布?

阿里云弹性计算

持续发布 应用 自动化运维

网信办将全面规范打赏连麦等功能,必须监督好平台和MCN机构

石头IT视角

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

okokabcd

LeetCode 算法与数据结构

数据治理(六):编译Atlas安装包

Lansonli

数据治理 8月月更

最新版MySQL8 绝对有用的lag函数实现同比、环比、均差计算

知识浅谈

MySQL 8月月更

Kubernetes 真的在蚕食云吗

CTO技术共享

为什么说:被观察者是 push 数据,迭代者是 pull 数据?

掘金安东尼

前端 函数式编程 8月月更

电商秒杀系统设计(架构实战营 毕业设计项目)

Gor

软件测试中的树莓酱定律

BY林子

软件测试 敏捷测试 质量内建

Kubernetes中API安全加固

CTO技术共享

Teambition是什么软件?优缺点是什么?

PingCode

项目协作工具

SpringBoot 整合 Junit

springboot junit5 8月月更

【Java】:二维数组的定义、初始化、长度以及循环遍历等...

翼同学

Java 学习 编程语言 分享 8月月更

C++多态之析构和纯虚析构分析与示例(三)

CtrlX

c++ 后端 面向对象思想 8月月更

Latex安装教程(附美赛论文latex模板)

乌龟哥哥

8月月更

一对一语音直播系统源码——如何解决音视频直播技术难点

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播源码 一对一语音直播

【Gopher 学个函数】边学边练,简单为 Go 上个分

梦想橡皮擦

Python 爬虫 8月月更

P6项目管理系统的优缺点是什么?

PingCode

项目管理 项目管理软件

kubernetes镜像构建和扫描

CTO技术共享

【算法实践】| 手把手带你实现快速排序算法

迷彩

快速排序 算法实践 8月月更

头脑风暴:最大子序和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

Curve Testing Camp Time|万元大奖等你来拿!

张慧

分布式存储 curve

来聊聊 OpenJDK 和 JVM 虚拟机

HoneyMoose

苹果:我要保护用户隐私,谷歌:你是舍不得自己的蛋糕_安全_李俊辰_InfoQ精选文章