我有一个存储在iOS Keychain中的用户pin.对于每次引脚尝试,我使用SecItemCopyMatching来检索引用引脚,然后进行比较.
问题是,在很短的时间内,检索到的参考引脚进入应用程序的工作内存.如果手机受损,可能会读取参考引脚.
有没有办法将引脚尝试传递给Keychain并让Keychain在其安全环境中与引用引脚进行比较? (安全元素可以做那种东西吗?)
解决方法
我认为这可以帮助您达到最终答案,因为1Password面临同样的问题.
https://guides.agilebits.com/kb/security/en/topic/touch-id-pin-code-and-ios-keychain
但根据我所读到的内容,你现在想要实现的目标是不可能的.
我能找到的最接近的信息就是这个:
What is the correct way to clear sensitive data from memory in iOS?
还有这个:
在哪里可以阅读:
If your adversary has the ability to run arbitrary code on your target
machine (with the debug privileges required to dump a process image),
you are all sorts of screwed.
所以我的答案是:不,你不能在不离开iOS钥匙扣的情况下检查别针.