• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何检测 iCloud 钥匙串(keychain)的更改

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:10:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

有没有办法在 iCloud(或任何)钥匙串(keychain)更改(项目被添加/删除/更改)时获得通知?

类似于 KVS 中的 NSUbiquitousKeyValueStoreDidChangeExternallyNotification 的东西。

我想我可以在 OSX 上查看 $HOME/Library/Keychains 文件夹,但有更好的选择吗? (这甚至可以在 iOS 上运行吗?)



Best Answer-推荐答案


AFAIK 钥匙串(keychain)服务,无论钥匙串(keychain)是本地的还是 iCloud 钥匙串(keychain),都不会宣布更改。您应该如何使用钥匙串(keychain)的方式也让人怀疑这样做。

存储在钥匙串(keychain)中的密码数据受到保护,因为它始终被加密。只有当您请求该数据时,它才会被临时解密,仅供您使用,解密后的副本会传递给您的应用程序,然后被丢弃。您应该将该解密副本用于您需要的任何任务,然后也将其丢弃。

为什么要丢弃它?因为当你把它放在你的应用程序中时它是不安全的。根进程可以转储应用程序的所有内存,然后此转储还将包含所有缓存的纯文本密码。并且使用 iOS 中的一个安全漏洞,也许我们甚至还不知道,攻击者可能能够以 root 权限运行代码(毕竟,所有越狱都基于这样一个漏洞,所以你看,它们确实存在)。

当您再次需要它时?然后你再次从钥匙串(keychain)中获取它。每次需要时,您都应从钥匙串(keychain)中获取密码。那么为什么需要检测变化呢?当你获取它时,你要么会得到一个结果,在这种情况下,你总是有存储到钥匙串(keychain)的最新密码,不管最近几分钟更新的频率如何,或者你没有得到任何结果,因此知道有钥匙串(keychain)中没有这样的密码,因为要么从来没有,要么已被删除。无论如何,您都需要在您的应用程序中处理“从未有密码”的情况,通常您可以处理相同的“密码已删除”的情况。 p>

关于ios - 如何检测 iCloud 钥匙串(keychain)的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35291528/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap