有没有办法在 iCloud(或任何)钥匙串(keychain)更改(项目被添加/删除/更改)时获得通知?
类似于 KVS 中的 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 的东西。
我想我可以在 OSX 上查看 $HOME/Library/Keychains 文件夹,但有更好的选择吗? (这甚至可以在 iOS 上运行吗?)
Best Answer-推荐答案 strong>
AFAIK 钥匙串(keychain)服务,无论钥匙串(keychain)是本地的还是 iCloud 钥匙串(keychain),都不会宣布更改。您应该如何使用钥匙串(keychain)的方式也让人怀疑这样做。
存储在钥匙串(keychain)中的密码数据受到保护,因为它始终被加密。只有当您请求该数据时,它才会被临时解密,仅供您使用,解密后的副本会传递给您的应用程序,然后被丢弃。您应该将该解密副本用于您需要的任何任务,然后也将其丢弃。
为什么要丢弃它?因为当你把它放在你的应用程序中时它是不安全的。根进程可以转储应用程序的所有内存,然后此转储还将包含所有缓存的纯文本密码。并且使用 iOS 中的一个安全漏洞,也许我们甚至还不知道,攻击者可能能够以 root 权限运行代码(毕竟,所有越狱都基于这样一个漏洞,所以你看,它们确实存在)。
当您再次需要它时?然后你再次从钥匙串(keychain)中获取它。每次需要时,您都应从钥匙串(keychain)中获取密码。那么为什么需要检测变化呢?当你获取它时,你要么会得到一个结果,在这种情况下,你总是有存储到钥匙串(keychain)的最新密码,不管最近几分钟更新的频率如何,或者你没有得到任何结果,因此知道有钥匙串(keychain)中没有这样的密码,因为要么从来没有,要么已被删除。无论如何,您都需要在您的应用程序中处理“从未有密码”的情况,通常您可以处理相同的“密码已删除”的情况。 p>
关于ios - 如何检测 iCloud 钥匙串(keychain)的更改,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/35291528/
|