iOS Keychain解锁存储的密码在哪里

时间:2014-05-01 22:51:57

标签: ios encryption keychain

我们知道OS X需要主密码来解锁钥匙串并解密存储在那里的所有数据。一般来说,主密码存储在用户的大脑中,所以没有任何直接的IT方法来破坏这个密码 与此同时,iOS进行了一些简化,并且不需要仅由用户知道的主密码。所以我开始对如何实现iOS钥匙串解锁和数据解密的逻辑感兴趣,并在Apple docs中找到了这样的解释:

  

在iOS中,应用程序始终可以访问自己的钥匙串项目   无法访问任何其他应用程序的项目。 系统   为密钥链生成自己的密码,并将密钥存储在密钥链上   设备以任何应用程序都无法访问

据我所知,iOS自己生成主密码并将其存储在某个特定的地方。

我的问题是:是否有人知道或有任何想法用于存储主密码的位置或方式,以确保防止任何IT攻击或第三方访问?

(我发现了类似问题,如this,但没有任何具体信息。)

1 个答案:

答案 0 :(得分:1)

您可以在Apple iOS Security Whitepaper

中找到大量信息

基本上,密码与设备特定ID“缠结”,该ID不可用于执行代码以生成密钥。用于解锁文件和钥匙串的密钥在手机解锁时(或在首次解锁某些保护类后)保存在内存中,但在锁定或重启时丢弃(再次取决于保护类)但密码本身从不存储在内存或代码可访问的文件系统。