gps949
2021-11-23 17:05:33 +08:00
这背后机制苹果有公开吗?可能可行的密钥管理模式有很多种,随便举其中一种例子如下:
最初:对每个 icloud 账户生成一个密钥对作为主密钥,并将私钥用账户口令运算加密。
钥匙串存储:每次本地钥匙串上云时都在本地用主密钥公钥加密上传一份。
钥匙串使用:主密钥私钥的密文会在登录时根据 icloud 账户名申请取回,并采用二次认证 PIN (那个弹出框或短信验证码等)做随机化防重放保护,再在本地使用二次认证 PIN 和口令才能解密(在安全芯片内)。同时在安全芯片内生成设备密钥对,使用设备公钥加密主密钥私钥(产生设备版主密钥私钥密文),设备私钥在安全芯片内被设备 PIN (即你说的 passcode )或生物识别保护。在使用钥匙串时,用设备 PIN 或生物特征解锁安全芯片使用设备私钥解锁设备版主密钥密文,并用解出的主密钥私钥解锁钥匙串密文。
当然以上只是随便瞎想的一个例子,不一定是真实情况也肯定有纰漏,但我想苹果工程师整个还算安全的版本应该问题不大。