icloud private relay ========================= https://www.apple.com/privacy/docs/iCloud_Private_Relay_Overview_Dec2021.PDF https://blog.cloudflare.com/icloud-private-relay ios15 推出。 不是VPN,使用2层relay。 - device使用relay2的公钥加密website name,relay1无法知道website name。 - device通过relay1代理与relay2的连接,relay2无法知道device IP address。 - relay2代理与website的连接。 选择relay2的address: - 直接使用device ip所在的country & timezone选择对应的relay2 address。 - Device从relay1获取geohash,基于geohash选择relay2 address。 使用MASQUE中的SECURE PROXYING实现proxying connections。 device校验TLS hanshake中提供的raw public key,并与预设内容进行比较,确认proxy可信。——TLS ESNI。 Relay1发tls client hello,relay2解密website name后连接website,website返回tls handshake。 device使用 oDoH 对relay1隐藏domain name。——ODoH查询结果用于tls esni。 隐私风险:device从relay1获得device自身的public subnew,用于odns查询时提供给最终的dns server。——此时,相当于泄漏client subnet到dns权威。 Safari & HTTP 无需使用oDoH,直接通过proxy连接,而非device。 Device -> relay1 :采用account attestation认证,再分发anonymous token(RSA blind signature)—— privacy pass。 通过token限制访问。 安全分析 --------- - ESNI可能被屏蔽,或反向识别。 - 往odoh里加client subnet的隐私风险。 - geohash的风险(较小),仅用于select server。 - Relay1 + relay2 合谋风险。