9月23日, iOS15测试版正式发布,其中iCloud Private Relay功能是通过采用双跳架构,有效地屏蔽用户的IP地址、位置和来自网站、网络服务提供商的DNS请求,从而提高网络上的隐蔽性。
通过将用户在Safari浏览器上的互联网流量通过两个路由进行代理,以掩盖浏览和数据的来源,这可以被视为简化版的Tor(浏览器)。
FingerprintJS(浏览器指纹库)研究员Mostsevenko称:如果从服务器收到的HTTP请求中读取 IP 地址,能够获得出口代理的IP地址,也可以直接通过 WebRTC 获取真实的客户端IP。
WebRTC 是 Web Real-Time Communication 的缩写,是一项开源计划,旨在通过API,为Web浏览器和移动应用程序提供实时通信,这些API支持点对点音频和视频通信,且无需安装专用插件或应用。
两个端点之间实时媒体交换,通过信号传递的发现并建立协商过程,该过程使用交互式连接建立 (ICE) 框架,该框架详细说明了两个对等端可以使用的方法(又名candidates),无论网络拓扑如何,都可以相互查找并建立连接。
FingerprintJS发现的漏洞与“服务器反射候选”的特定candidates有关,当来自端点的数据需要通过 NAT(网络地址转换器)传输时,STUN 服务器会生成candidates。 STUN(即 NAT 会话遍历实用程序)是一种用于检索位于 NAT 后面IP 地址和端口号的工具。
具体来讲,该漏洞源于此类STUN请求未通过 iCloud Private Relay 进行代理,导致在信号传递过程中交换 ICE candidates时暴露客户端的真实 IP 地址。
FingerprintJS表示已经这个问题反馈给苹果公司,苹果已经在最新的macOS Monterey测试版中推出了修复程序。 但在iOS 15上使用 Cloud Private Relay 时,泄露问题仍未修复。
漏洞事件表明 iCloud Private Relay 永远无法替代虚拟专用网,担心IP地址泄露的用户应该使用真正的虚拟专用网或通过Tor网络浏览互联网,并完全禁用Safari浏览器的JavaScript,关闭WebRTC相关功能。