1
YuiTH 2021-11-23 16:30:16 +08:00
为什么不能是 passcode 作为密钥加密服务器上备份的私钥呢。
|
3
Leonard 2021-11-23 16:41:15 +08:00
理论上无论私钥有没有服务器备份,Apple 从技术上来说都有能力获取你保存的任何信息,毕竟 Apple 不开源,你不知道他在操作系统里做了什么。如果没有实锤,质疑第一方厂商本质上没有任何意义。
|
4
justaname OP @Leonard 如果可以仅通过 passcode 来 recover 数据的话必然意味着 iCloud 可以直接恢复数据,我写这个并不是质疑什么,也并不是很在意 apple 究竟“原则上”能不能看到。只是希望给一部分不理解 iCloud 钥匙串机制的人解答一下,因为很多人对 iCloud 钥匙串为什么会消失以及为什么要求提供以前以前设备的 passcode 感到迷惑
|
5
gps949 2021-11-23 17:05:33 +08:00
这背后机制苹果有公开吗?可能可行的密钥管理模式有很多种,随便举其中一种例子如下:
最初:对每个 icloud 账户生成一个密钥对作为主密钥,并将私钥用账户口令运算加密。 钥匙串存储:每次本地钥匙串上云时都在本地用主密钥公钥加密上传一份。 钥匙串使用:主密钥私钥的密文会在登录时根据 icloud 账户名申请取回,并采用二次认证 PIN (那个弹出框或短信验证码等)做随机化防重放保护,再在本地使用二次认证 PIN 和口令才能解密(在安全芯片内)。同时在安全芯片内生成设备密钥对,使用设备公钥加密主密钥私钥(产生设备版主密钥私钥密文),设备私钥在安全芯片内被设备 PIN (即你说的 passcode )或生物识别保护。在使用钥匙串时,用设备 PIN 或生物特征解锁安全芯片使用设备私钥解锁设备版主密钥密文,并用解出的主密钥私钥解锁钥匙串密文。 当然以上只是随便瞎想的一个例子,不一定是真实情况也肯定有纰漏,但我想苹果工程师整个还算安全的版本应该问题不大。 |
6
Leonard 2021-11-23 17:36:52 +08:00
看到一篇讲这个的,说实话没太明白,不知道对不对:
http://zixun.cmen.cc/zixun/202102/6848.html |
7
justaname OP @gps949 苹果声称使用的加密方案是 end-to-end 的,并且在 iCloud 上是无法解锁的。从实际的行为来看需要本地设备密钥+passcode 联合才能访问到 iCloud 中的钥匙串,我觉得安全性应该是有保障的。
不过这跟很多密码软件云上保存的密码库通过默认安全且无法破解的主密码进行访问在设计上差异很大。苹果更多的依赖所谓的本地可信任设备+passcode 来保证秘密信息的安全性,并没有一个很强的主密码来保护密码库。这也意味着不能把 iCloud 钥匙串当作备份或者中心服务器来使用,其作用仅限于同步,本地失效则云失效。如果按照 Lastpass/1Password 的思路进行管理就很容易掉坑里 |
8
Leonard 2021-11-23 17:38:55 +08:00
|
9
justaname OP @Leonard 这文章是机翻的吧,感觉和我说的差不多一个意思,本质上来说 iCloud 并不“存储”密码,只用来同步端到端数据
|
10
dingwen07 2021-11-23 17:47:59 +08:00 via iPhone
|
11
Borden 2021-11-23 17:50:02 +08:00 via iPhone
我并不在意 passcode 存在 iCloud 上,我只在意是否存在云上贵州,而我觉得这是肯定的,如果是国内账号的话。
|
12
dingwen07 2021-11-23 17:54:14 +08:00 via iPhone
根据这两篇文章,我想到了一个更有趣的东西:只要开启了 iCloud 钥匙串,苹果是不是可以知道你的 iPhone 设备密码?通过不断地尝试密码来解密云端存储的 iCloud钥匙串。
|