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

Apple 居然在 iCloud 上进一步扩大了端对端加密的范围

  •  
  •   minsheng · 2021-09-05 21:13:26 +08:00 · 4320 次点击
    这是一个创建于 956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在翻 WWDC 2021 的视频,突然发现,iCloud 面向开发者的库,CloudKit,居然支持了端对端加密。

    CloudKit 是一个云数据库,存储的最小单位是 Record,每个 Record 有若干 fields 。从 iOS 15 开始,开发者可以选择给某些 fields 启用加密。加密的密钥会存储在 iCloud Keychain 里;因为 iCloud Keychain 是端对端的,所以 CloudKit 里的加密的数据也是端对端加密的。当然,这种加密是比较弱的,Apple 依然可以知道比如每个 Record 的数量,只是具体内容不可见。看样子之前 Apple 承诺的端对端加密的 iCloud 服务,比如说 Safari 、Home,都是通过这套功能实现的,只是终于暴露给开发者了。

    不知道这套东西的备份密钥会不会被包括在 iCloud 云备份里。

    11 条回复    2021-09-07 16:51:21 +08:00
    cest
        1
    cest  
       2021-09-05 21:50:25 +08:00
    已经不重要了
    想知道什麽,直接要你 device 解密上传好让他人工检查

    多了仪式感,就不一样了呢
    wangkun025
        2
    wangkun025  
       2021-09-05 23:34:36 +08:00
    云贵。
    agagega
        3
    agagega  
       2021-09-06 00:09:19 +08:00
    我的理解,端到端加密有两种:一种是服务端无法解锁,但数据放在本地是明文的;一种是本地也是加密的,用到的时候再向用户请求密码解密。

    虽然我知道 iPhone 的闪存都是全盘加密,但还是很好奇 iCloud Keychain 这样的端到端加密是怎么工作的。我查看密码库的时候只需要 Face ID 就行,那是 Face ID 在认证成功后会从安全位置取出某个密钥来解锁吗?还是说只是 if 判断一下,认证成功就从某个地方拿明文存放的密钥。
    alphatoad
        4
    alphatoad  
       2021-09-06 00:58:15 +08:00
    稍好一点吧,毕竟最重要的 iCloud Photo 没有端到端加密,iMessage 虽有,但是密钥会在 iCloud backups 里,而 iCloud backup 没有端到端加密
    执法机构想查还是随时都可以查
    discrete
        5
    discrete  
       2021-09-06 00:59:17 +08:00
    @alphatoad 所以不用 iCloud backup 不就完了……
    minsheng
        6
    minsheng  
    OP
       2021-09-06 02:56:36 +08:00
    @alphatoad 我估计苹果一开始的计划就是尽快推端对端,然后弄一个 CSAM 满足一下执法部门,结果被反噬

    但其实 Apple 的说法非常含糊,比如说,它们的文档提到 CloudKit 里面的大文件,CKAsset,是自动加密的,可按照这个说法,既然 iCloud Photos 和 iCloud Drive 都改成了 CloudKit 后端,那么这些东西应该也是端对端加密的,但 Apple 并没有这么说。另外一个事情是,我很好奇 iCloud Web 端的实现是啥,应该不至于在浏览器里同步 Keychain 吧。
    minsheng
        7
    minsheng  
    OP
       2021-09-06 03:16:53 +08:00 via iPhone   ❤️ 1
    @agagega 有一类专门的硬件干这个事情,硬件安全模块( HSM ),它会保存密钥,用密钥加密数据,验证通过后用密钥解密,并且没有导出密钥的功能。我不知道显微镜什么的可不可以拿来尝试解密,我不太清楚技术细节,但应该要比硬盘恢复数据这样困难得多。iPhone 上的 Secure Encleave 就是一个 HMS 。

    然后就是一个加密密钥金字塔。比如说 iPhone 文件系统 /硬盘的密钥,存在硬件模块里,这样 iCloud Keychain 的密钥就可以明文存在文件系统里而不用担心华强北把 iPhone 硬盘拆下来解密了。当然,这样会有别的安全隐患,只要 iOS 文件系统沙盒被攻破,密钥就会被泄漏,所以可以把 Keychain 根密钥寸 HMS 里面,而剩下的密钥用根密钥加密过后,存在硬盘里。
    minsheng
        8
    minsheng  
    OP
       2021-09-06 03:19:39 +08:00 via iPhone
    @agagega iCloud 端,Apple 说他们用了一个可编程 HMS 集群,把用户的 iCloud Keychain 密钥存在里面。这样的话,当用户双重验证完自己的身份后,就会把密钥传到新登录的设备上。

    根据 Apple 的白皮书,这些可编程 HMS 的编程认证硬件都被销毁了,所以不用担心 Apple 可以修改程序读取这些信息😂。至于 Apple 的话可不可信,就由大家判断了。
    minsheng
        9
    minsheng  
    OP
       2021-09-06 03:21:10 +08:00 via iPhone
    然后 iCloud 还有一个选项是生成一串密码让大家写在纸上记下来,如果选择这个选项,那么 Apple 就不会把根密钥存到云上的 HMS 里。
    alphatoad
        10
    alphatoad  
       2021-09-06 09:17:05 +08:00
    @minsheng 说是被 FBI 反对,导致只能作罢。
    但是仔细想想这也不是理由,完全可以像 Mac 这个搞个 time machine,备份到自己的 NAS
    moooookey
        11
    moooookey  
       2021-09-07 16:51:21 +08:00
    没卵用,iCloud 云服务对于审查是开放的,就连设备端,也在谋划着扫描了……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   982 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.