本文转载自公众号“读芯术”(ID:AI_Discovery)。
就像苹果砸在牛顿头上改变了人们理解万有引力的方式,增强型网页应用通过提供web形式的类似应用程序的体验,正在改变人们对应用程序的理解方式。
增强型网页应用是谷歌最初提出的技术之一。“渐进式网页应用”(progressive web app)是由弗朗西斯·贝里曼(Frances Berriman)和亚历克斯·拉塞尔(Alex Russell)于2015年首次提出的。
它是一种描述应用程序的方法,这种应用程序利用了现代浏览器支持的新特性,例如service worker和web应用程序清单,无论何种本机操作系统,用户都能将web应用程序升级为增强型网页应用。
PWAs也能够联网,谷歌公司称它有如下的特征:
- 可靠性:加载迅速,即使在不确定的网络条件下也不会显示那只霸王龙(Chrome断网界面)。
- 迅速:快速响应用户交互,动画如丝绸般顺滑,不会卡顿。
- 参与性强:就像一个设备上自然的应用程序,具有身临其境的用户体验。
你可能已经读过PWA的相关信息了,大家都觉得它未来可期。但很可能你并没有意识到它也有不常被提及的阴暗面。其隐患不少,但本文将主要集中在一项上:指纹识别。
指纹识别是什么?
“没有两个人的指纹是相同的,包括同卵双胞胎。”指纹让人类变得独一无二,相互区分开来。类似地,指纹技术也可以应用于其他实体,用于识别独一无二的个体。浏览器指纹就是一个例子。
浏览器指纹是网站通过配置设置或其他可注意的属性,从而识别或重新识别访问者、用户代理或设备的能力。浏览器指纹可作为一种安全措施,如用户身份验证。在某些情况下,指纹识别可用于:
- 辨认用户
- 跟踪并关联用户在会话内和跨会话的浏览活动
- 收集信息,从中得出关于用户的推测等
可能会导致何种危害?
指纹识别的最大威胁在于其可能威胁用户隐私。
(1) 用户辨认
用户可能需要匿名上网,这出自不同的原因,例如担心被监视和个人人身安全。浏览器的指纹识别可以与个人识别信息相关联,应用程序或服务提供商能很容易地识别是否匿名的用户。
(2) 浏览活动的意外关联
即使不需个人信息识别,浏览也会被检测。网络平台可以根据浏览器指纹来保存个人资料,所以这种情况完全有可能。这可能会导致在没有用户授权或内容的情况下对用户进行跟踪,清除cookie等行为不会阻止或重置已经通过浏览器指纹获得的关联。
(3) 关于用户的推论
即使没有上述的需要,仅基于很少的浏览器指纹相关特征,用户也会被辨认出来或归类。操作系统版本和设备细节可以用来推断用户的购买力。假如用户为匿名,他们绝对不希望使用这种扣除方法。由于设备指纹识别技术,已经有一些相关事例,例如,Mac用户会被指引到更贵的酒店消费。
PWA如何辅助指纹识别?
PWAs需要一个清单文件,是一个JSON格式的文件,包含描述应用程序的各种特征的键。清单文件中的一个值是start_url。这个值决定了当用户启动web应用程序时应该加载的首选URL(例如用户从设备的应用程序菜单或主屏幕点击web应用程序的图标时)。
W3C团队认为这种机制包含了设备或浏览器指纹识别和用户与浏览器活动关联的潜在威胁。他们认为这将导致一种新的类似cookie的本地机制。
有可能 start_url用来表示应用程序是从浏览器外部启动的 (例如, "start_url":"index.html?launcher=homescreen")。这对于分析或其他定制可能很有用。然而,开发人员也可以将字符串编码到唯一标识用户的 start_url中(例如服务器分配的UUID)。这是用户可能没有意识到的指纹/隐私敏感信息。
即使在撰写本文时,这个问题仍有待讨论,适当的解决方案尚未提出。而且正如W3C团队提到的,它甚至达到了Github问题已经被解决的程度。
“我们同意,我在承认这个问题的同时已经关闭了它,但这个问题是不可解决的,因为它是url固有的。我们让实现者知道这是一个问题,并提供通过UI进行缓解的可能性。”
安全研究员Lukasz Olejnik对排名前1万的网页进行了一项研究,以检查网页指纹的使用情况。他的研究发现:
- 1672页包括manifest.json
- 828个使用了专用的start_url
- 274个使用了参数
- 没有网页使用随机生成的标识符
他还指出,虽然他确实看到了明显唯一标识符(例51606102_9527_7259_7770),但它们似乎并不是为每个新用户随机生成的。这个适度的测试结果相当谨慎:技术上可能的跟踪目前似乎未被使用。
虽然情况暂时让人松一口气,跟踪方法还没有在当前的PWAs中实现。但它是一颗定时炸弹,因为正如我们所知,它可能很快就会成为针对用户隐私的无声杀手。
苹果将如何反击?
图源:unsplash
苹果以安全的设备生态系统闻名,这主要归因于比其他任何设备制造商更严格的规则和政策。虽然一方面损失了产品的可定制性,但另一方面增加了系统的安全性。苹果公司更倾向于代表用户做决定,而非用户自己做决定。
由于PWAs试图像本地应用程序那样执行操作,它们需要访问设备硬件特性,如蓝牙、NFC、磁场等。通过引入一些Web API,如Web蓝牙API、Web NFC API、磁强计API等提供了这些功能,这已经成为可能。
但苹果最近拒绝在基于safari的浏览器中使用16个Web API,这表明了这样一种事实,即它们为指纹识别提供了途径,对用户隐私构成了威胁。这些API已经在Chromium系统中实现了,其中部分在Mozilla系统中得以实现。
苹果还声称,在线广告商和数据分析公司可以操纵这些API,从而对用户和他们的设备进行指纹识别。
以上情况给PWAs带来了麻烦,这将成为开发人员试图构建利用本机特性的应用程序的障碍。WebKit对指纹的第一道防线是不执行增加指纹可操作性的web功能,也不使用安全的方法来保护用户。
苹果还表示,如果这些新技术中的任何一项“在未来降低了指纹识别能力”,它将重新考虑将其添加到Safari上。但PWAs是一项很有发展潜力的技术,以上提及的隐私问题不应该让客户们远离能根据他们喜好提供F.I.R.E的PWAs。