检查别针而不离开iOS钥匙扣

Ran*_*lue 8 security keychain ios

我有一个存储在iOS Keychain中的用户pin.对于每个引脚尝试,我SecItemCopyMatching用来检索参考引脚,然后进行比较.

问题是,在很短的时间内,检索到的参考引脚进入应用程序的工作内存.如果手机受损,可能会读取参考引脚.

有没有办法将引脚尝试传递给Keychain并让Keychain在其安全环境中与引用引脚进行比较?(安全元素可以做那种东西吗?)

Mar*_*ams 6

通常,您使用salt存储密码的单向哈希,而不是实际密码.要验证,添加salt,散列字符串,与存储的散列进行比较,如果匹配,则验证.

那么,强度就是算法,盐和密码的强度.

  • 非常的.很奇怪你会把PIN称为密码.不过,它总比没有好.看起来像是[xy问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). (2认同)

Mik*_*ael 2

我认为这可以帮助您找到最终答案,因为 1Password 也面临着同样的问题。

https://guides.agilebits.com/kb/security/en/topic/touch-id-pin-code-and-ios-keychain

但根据我读到的内容,你想要实现的目标目前是不可能的。我能找到的最接近的信息是这个:

在 iOS 中清除内存中的敏感数据的正确方法是什么?

和这个:

内存中的敏感数据

您可以在哪里阅读:

如果您的对手能够在您的目标计算机上运行任意代码(具有转储进程映像所需的调试权限),那么您就完蛋了。

所以我的答案是:不,如果不离开 iOS 钥匙串,您就无法检查 PIN 码。