G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

admin 2024年3月22日23:11:34评论7 views字数 2018阅读6分43秒阅读模式

最近Apple可不太顺,在欧盟的压力下各种破功,美国司法部也开始准备要起诉它垄断,被老大哥整治也就算了,居然还遇到了大卫公开叫板挑战哥利亚的,让我们看看今天这个大卫与哥利亚之战是怎么回事:

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

今天推荐的这篇文章来自一家叫做FingerprintJS的公司,注册在蝙蝠侠的老家芝加哥,从它的名字看就知道它是提供用户识别服务的。如果是在人民当家做主的国家,这种公司早就被一网打尽了,或者如果遇到拥有地表最强法务部的老任(也可能遇到南山必胜客),也可能被告到破产。然而很神奇的是,FingerprintJS不但没有被干掉,还公开发表技术文章挑战Apple,我们今天要介绍的这篇技术文章How We Bypassed Safari 17’s Advanced Audio Fingerprinting Protection中,FingerprintJS就展示了“技术即正义”。

首先说一下背景,目前浏览器网页端会通过一种叫做audio fingerprinting的技术来区分用户(这不是最近不让用cookie了吗,虽然国内的网站从来不会弹出提示问用户是否允许)。关于这个技术的具体细节,FingerprintJS在此前的一篇博客文章中进行了详细的介绍:

https://fingerprint.com/blog/audio-fingerprinting/

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

简单地说,所谓的audio fingerprinting就是利用了浏览器的Audio API(谁要现在浏览器什么都能做,就是个套着皮的OS)来渲染一段音频(人听不到的频段,通过OfflineAudioContext接口,调用振荡器oscillator来产生一段特定的波形)。在不同浏览器、不同CPU等环境下,这段音频的特征是高度环境相关而且稳定不变的,就可以被用来标记特定的设备及用户。

为了对抗这种采样,作为最重视用户隐私的Apple自然要出手了,在Safari 17中引入了一套保护机制:

https://www.apple.com/au/newsroom/2023/06/apple-announces-powerful-new-privacy-and-security-features/

具体针对音频信号,Safari 17会往每段音频里面加入一些扰动(加入的是符合均匀分布也就是uniform distribution的随机值):

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

而且针对不同的Audio API,加入噪声的权重也不同:

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

为了对抗这种干扰,这里就需要我们拿出概率论的课本,复习一下正太正态分布、中心极限定理和均值(mean)。在这里,由于加入的扰动是均匀分布的,那么这个噪声就会是一个符合正态分布(也就是高斯分布,那个钟形曲线大家有印象吗)的信号。如果能把这个符合正态分布的信号的均值求出来,就得到了去掉噪声的fingerprint了

是不是已经把概率论知识还给老师了?没事,在FingerprintJS的文章中提供了详细的代码,直接去抄代码就好了。但是这个攻击的关键是要收集到足够多的噪声信号(注意不是之前那种主动去生成的信号),这里需要通过反复调用AudioBuffergetChannelData方法来获取。特别需要注意的是,由于随机值是和AudioBuffer对象的实例对应的,所以不能只创建一个AudioBuffer对象,而是要创建许许多多的AudioBuffer,然后分别调用它们的getChannelData方法来收集信号。

读到这里你有没有想到另一门课程——《信号与系统》里面提到的那个奈奎斯特定理呢?上面提到的方法,有一个很大的问题是创建许多AudioBuffer对象的实例要花很多时间。FingerprintJS于是搞了个很tricky的办法,大概就是先创建一段信号让它反复播放,然后再叠加上getChannelData方法产生的噪声,具体的细节请大家去研究文章吧。

作者再接再厉,又去研究怎么让浏览器产生振幅更大的信号,结果还真让他们研究出来了(如下描述)。振幅更大的信号会让不同环境之间的audio fingerprint的差别更加明显,然后你有没有回想起来有一门课程叫做《信息论》以及有一个名叫克劳德·香农的老爷爷给你定义了什么是信噪比?

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

最后就是总结一下,不同的精度需要的开销:

G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

总结一下,今天我们发现读书还是有点用的,在《概率论》、《信号与系统》和《信息论》的加持下,道高一尺魔高一丈用户隐私又一次遭到了侵犯,不过这里还是很佩服Apple,它并没有使用那个很多公司都会用的、经典的“解决不了问题,就解决那些制造问题的人”的绝招。


文章:https://fingerprint.com/blog/bypassing-safari-17-audio-fingerprinting-protection/


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJS

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月22日23:11:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2024-03-22 Apple vs. FingerprintJShttp://cn-sec.com/archives/2597446.html

发表评论

匿名网友 填写信息