钥匙串使用什么键控选项?

时间:2010-01-25 01:39:54

标签: iphone keychain

我已阅读钥匙串并发现它使用Triple DES。我找不到的是它使用的键控选项。我猜/希望它的键控选项1所有3个密码都是唯一的,但如果是这样的话,我只能想到它可以使用的两个密码(用户密码和来自你的开发证书的App ID)那么第三个来了从?这对Apple来说是私密的吗?

如果它的键控选项2(第一个和第三个键相同),它可能不足以让我们公司依赖。虽然这可能听起来很偏执,但我必须向我们的安全部门证明它足够安全。

1 个答案:

答案 0 :(得分:0)

由于没有答案,我想我可能会回答到目前为止所发现的事情。

我查看了可用于OS X钥匙串的source code,虽然我不是100%肯定,因为它有很多,但钥匙串确实在API类中使用了3DES - >第141行的KeyItem.cpp。它还在导入/导出中有注释 - >第150行的SecWrappedKeys.cpp,至少只有DES和3DES用于此类。有很多私人课程缺失,所以我只能继续我所看到的。

在Apples keychain docos和其他随机技术支持文章中,它指出有一个应用程序密码和一个系统生成的密钥链密码。如果您更改了应用程序的开发证书,则会丢失钥匙串条目,如果您还原到新手机,则钥匙串不起作用。

从我所看到的钥匙串使用键控选项1(最强的所有3个键都不同)三个密码将是您解锁手机/默认密码的密码或随机密码如果没有锁定,设备UDID或iPhone的其他一些等效的唯一标识符,以及第三个的App ID(忘记了它的名字)。

编辑:根据最近在某些网站上演示的漏洞,即使用户有手机密码,也会显示所有3个密码都是系统生成的。