V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  iCloud

谁能科普下 iCloud+ Private Relay 的技术?

  •  
  •   FaiChou · 2021-06-09 11:52:26 +08:00 · 1354 次点击
    这是一个创建于 1042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过搜索, 发现好多知识盲区, Cloudflare/WARP/WARP+.

    平时正常的网络请求, 先 DNS 查询 ip, 本机到路由器再经过中间的一些节点到 DNS 服务器, 再返回服务器 ip 地址,再一节一节到跳转到目标 ip.

    如果平时使用科学上网工具, 通过 socks/vemss 等协议到达节点服务器, 节点服务器帮你请求目标 ip, 目标服务器看到的是节点服务器的 ip.

    如果使用了 iCloud+ Private Relay :

    It ensures that the traffic leaving your device is encrypted and uses two separate internet relays so no one can use your IP address, location, and browsing activity to create a detailed profile about you.

    离开设备的请求都是加密的, 没人知道你的 ip. 那从自己家路由器到中间的 relay 肯定是透明的吧, 中间的 relay 最终会去请求目标服务器.

    从路由器到中间 relay, 这里面的请求都应该能被 hack 吧? 如果是 https 协议, 信任了中间的服务器的证书, 那中间服务器也能 MitM 解析 https 里面内容吧?

    第 1 条附言  ·  2021-06-09 14:45:28 +08:00
    我大概了解了:

    开启了 Private Relay 的设备 信任了局域网下另一台设备的证书, 那么局域网下这台设备可以解 https 内容, 但它解锁出的内容也是被苹果加密了的, 任何三方都无法解密.

    并且当中间 relay 接收到请求后, 会将一些无关的私密信息(比如 header 字段的原始 ip 等)剔除掉, 这样目标服务器不知道你的 ip, 就无法定向广告推送, 没法画出用户画像.

    当然对于平常用的登录信息(token 之类的), 目标服务器还是能够知道这请求是你给我的.
    第 2 条附言  ·  2021-06-09 14:47:51 +08:00
    刚才的 Append 漏掉了一个条件, 设置代理:

    "开启了 Private Relay 的设备 信任了局域网下另一台设备的证书, 并设置其代理, 那么局域网下这台设备可以解 https 内容, 但它解锁出的内容也是被苹果加密了的, 任何三方都无法解密. "
    23 条回复    2021-06-09 21:45:08 +08:00
    codehz
        1
    codehz  
       2021-06-09 12:14:56 +08:00 via Android
    这不就是普通的中转->落地的配置吗,用户到中转节点怎么能不加密呢(
    苹果说的顾虑也不是这个问题,它想表达的双重 relay 大概是一个入口节点看到到你的 ip (即使被 isp 监控),但是看不到你所连接的目标 ip,出口节点看的到你所连接的目标 ip,但不知道你的 ip (即使被 isp 监控),这个意思,至于原理,那大概就是两次加密了(
    ZRS
        2
    ZRS  
       2021-06-09 12:30:50 +08:00 via iPhone
    运营商和服务商不能同时获取你的信息,运营商不知道你在访问什么,服务商不知道你真实的地址。
    swulling
        3
    swulling  
       2021-06-09 12:50:44 +08:00 via iPhone
    这个是四层代理,不涉及 http 中间人的问题。
    morize
        4
    morize  
       2021-06-09 13:01:59 +08:00
    楼上说的差不多了,不过有的人看到代理条件反射就觉得是翻墙再去扯政治真是令人无语。
    我比较关心的是套了两层,网络速度会受到多大影响,还有 isp 和服务商的 py 交易只是光靠 ip 信息吗?我们现在人均固定 ip 了?见识少想了解一下这方面我们是怎么被画像的。
    learningman
        5
    learningman  
       2021-06-09 13:06:27 +08:00 via Android
    @morize 所以本来也不是给你用的。。。不过 ipv6 可能确实有点这个问题
    alfchin
        6
    alfchin  
       2021-06-09 13:07:21 +08:00 via iPhone
    @morize 多了大概 50ms
    winddweb
        7
    winddweb  
       2021-06-09 14:12:59 +08:00
    Safari 加密目标链接->连接到 Apple 中转服务器(知道 IP 不知道目标链接)->第三方代理服务器连接到目标地址(看到的是苹果服务器的 IP )。可以选择匿名 IP 的范围,是同城市,或者更广(比如美国同一个州内)

    解决的问题就是 ISP 和 VPN 提供商对你的数据监控。
    totoro625
        8
    totoro625  
       2021-06-09 14:14:36 +08:00   ❤️ 2
    1 、从路由器到中间 relay, 这里面的请求能被 hack,但是你套了一层加密,没密钥很难破解
    2 、https 协议, 信任了中间的服务器的证书, 能 MitM 解析 https 里面内容

    破解办法两个:1 、获取加密密钥; 2 、强迫你安装描述文件; 3 、强迫你信任证书;

    Apple 的方法是:你的数据加密后发给 Apple,Apple 去除 ip 信息后发给第三方公司托管的服务器之后解密,最后传出到各个内容提供商
    Apple 的主要目的是减少广告追踪,保护隐私,这样是没问题的

    我们的上网工具是,通过 XX 协议到达节点服务器, 节点服务器帮你请求目标 ip, 目标服务器看到的是节点服务器的 ip+可能携带的客户端 ip (类似于 CDN 服务商传递 ip,将你的 IP 通过约定的方式告诉目标服务器)(例如:X-Forwarded-For,个人愚见)
    其中的各个环节都可能出卖你的数据,如:1 、工具; 2 、协议; 3 、节点服务器; 4 、目标服务器

    官方说法:“现在,当有人访问 Internet 时,网络提供商和第一个代理( Apple )都只能看到客户端 IP 地址。
    第二个代理(第三方托管的服务器)只看到用户请求的名称并使用它来建立到服务器的连接。
    需要注意的是,这条链中的任何人,甚至苹果,都不能同时看到客户端 IP 地址和用户正在访问的内容。”
    kera0a
        9
    kera0a  
       2021-06-09 14:21:03 +08:00 via iPhone
    https 为啥要信任中间服务器证书?
    如果仅是转发,应该可以不用中间人攻击吧,就像我们连个 VPN 一样
    anguiao
        10
    anguiao  
       2021-06-09 14:24:52 +08:00
    只是中转的话,中间服务器不需要解析内容,所以客户端也不需要信任。
    totoro625
        11
    totoro625  
       2021-06-09 14:32:59 +08:00   ❤️ 1
    早些年免费的节点大行其道的时候就流行过一段时间的二级(前置)代理
    具体就是你先加密,再通过一个你不信任的人传递数据给自己的服务器,自己的服务器解密后发往目标地点
    好处是传递数据不费劲,数据安全有保障
    但是没考虑到隐私问题,目标服务器能看到你的源 ip 和服务器 ip
    目前就是不知道 Apple 的隐私数据处理是什么逻辑了,以后正式版发布后大佬们肯定会研究的

    Apple 的 iCloud+ Private Relay 中自己充当了一个低信誉的人来传递并修改了部分数据(而不仅仅是中转流量),找一个第三方的服务器解密充当可信出口,在保护隐私方面效果不大,在安全上不如自建服务器

    深究一下 Apple 的隐私数据处理:
    1 、隐私保护力度大了必然要分析用户数据,这个时候自身就是一个大的隐私泄露源
    2 、隐私保护力度小了那就是一个普通的中转服务器,两层服务器也只是为了防止服务器泄露数据,还不如自建安全
    FaiChou
        12
    FaiChou  
    OP
       2021-06-09 14:37:33 +08:00
    @kera0a 我的意思是, 抓包还能正常抓不.. 答案已经知道了, 套了几层加密, 抓到后解密内容也是被苹果加密过的.
    FaiChou
        13
    FaiChou  
    OP
       2021-06-09 14:38:13 +08:00
    @anguiao 嗯, 了解.
    cxe2v
        14
    cxe2v  
       2021-06-09 15:22:29 +08:00   ❤️ 1
    iCloud+ 的 Private Relay 功能(加密所有网络访问)在以下国家不提供:

    中国、白俄罗斯、哥伦比亚、埃及、哈萨克斯坦、沙特阿拉伯、南非、土库曼斯坦、乌干达、菲律宾。

    可惜了,用不上了
    FaiChou
        15
    FaiChou  
    OP
       2021-06-09 15:37:50 +08:00
    @cxe2v 这个无所谓, 就是探讨技术而已
    crystone
        16
    crystone  
       2021-06-09 15:51:29 +08:00
    @cxe2v 有办法用的有人试过了
    txydhr
        17
    txydhr  
       2021-06-09 15:58:40 +08:00 via iPhone
    我很好奇这个服务 apple 要付出多大的基础设施投资
    wvwking
        18
    wvwking  
       2021-06-09 16:01:31 +08:00
    相當於少了一層的 tor
    Coioidea
        19
    Coioidea  
       2021-06-09 16:11:01 +08:00
    @cxe2v 这个东西不能代替 tizi 吧。
    主要是隐私方面的考量?
    cxe2v
        20
    cxe2v  
       2021-06-09 16:21:28 +08:00
    @Coioidea #19 你 @我干什么?
    FaiChou
        21
    FaiChou  
    OP
       2021-06-09 16:27:01 +08:00
    @Coioidea 这就是不给用的原因.
    Mitt
        22
    Mitt  
       2021-06-09 16:41:56 +08:00   ❤️ 1
    @totoro625 #11 推测就是客户端在 relay 之前加密的数据只有落地( cloudflare 等)才能解开,苹果服务器不能解,所以苹果看到的是你的 IP,而 cloudflare 看到的是你访问的网站和苹果的 IP,所以隐私上无论是运营商、苹果、cloudflare 等都没办法把你的 IP 和你访问的网站对应起来,以此保护你的隐私,跟我们使用的前置代理确实没啥区别,这些都是建立在 TLS 基础上的,所以只要证书信任体系不坍塌就不会有问题,而苹果的做法更好的一点是他的出口 IP 是随机的,不仅是随机 IP,更是随机提供商,这样作恶(分析隐私)成本更大。
    Kanna
        23
    Kanna  
       2021-06-09 21:45:08 +08:00   ❤️ 1
    苹果自己的解释,两层中转

    使用 Safari 浏览器浏览时,Private Relay 确保离开用户设备的所有流量都是加密的,因此用户和他们访问的网站之间没有人可以访问和读取它,即使是苹果或用户的网络提供商也无法访问和阅读它。然后,所有用户的请求都通过两个单独的互联网中继发送。第一个为用户分配一个匿名 IP 地址,该 IP 地址映射到他们的区域,但不映射到他们的实际位置。第二个解密他们想要访问的网址,并将其转发到目的地。这种信息分离保护了用户的隐私,因为没有一个实体可以同时识别用户是谁以及他们访问的网站。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3517 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:25 · PVG 19:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.