我有一个可以存储机密信息的iOS应用程序,还使用iCloud在设备之间同步其核心数据(数据本身在核心数据中加密)。
人们可以使用密码保护应用程序,还可以创建两个秘密问题来帮助他们恢复丢失的密码。
密码和密码问题保存在钥匙串中。
我经常得到支持请求,说“嘿,我忘记了密码,我也忘记了我的秘密问题的答案,所以现在我无法访问我的宝贵数据。请帮助”。
有些人还说他们试图删除应用程序并重新安装它(知道数据将从iCloud重新同步),假设这将重置他们的密码,这当然不会发生。
目前我无法帮助这些人。
现在问题就在这里。
一方面,我很容易在首次启动时清除密钥链中的密码和密码问题,以便人们可以在删除并重新安装应用程序时创建一个新密码。
然而,这似乎造成了一个安全漏洞。未经授权的人员可以删除该设备,重新安装,创建新密码,让应用程序与iCloud同步并访问机密数据。
我相信有更多无辜的人会忘记他们的密码,而不是那些试图窃取他人数据的人,但我仍然觉得不愿意采取“简单的方式”。
您怎么看?
答案 0 :(得分:1)
简短回答:对于受影响的人数可能很少,这里有一个想法:首先尝试备份到iTunes,“加密本地备份”未经检查(这样就省去了钥匙串)。然后从该iTunes备份中擦除并恢复设备。这个应将应用程序及其数据放回设备上,但没有关键链。请注意,我还没有尝试过,所以请在联系用户之前先测试一下这个解决方案。有关相关说明,请参阅:http://support.apple.com/kb/TS4108。
更长的想法:我认为在首次运行时删除用户钥匙串数据会违背用户的期望。 Apple会在卸载应用程序后维护钥匙串,以便用户不会丢失数据。 Apple为用户提供的保护 - 密码锁定,数据擦除 - 以及开发人员可以实现的安全功能 - 密钥链,文件加密 - 确实涵盖了安全漏洞问题,因此不应该如何考虑你处理这件事。
不幸的是,无论如何这一切仍然让你不知所措。 Apple确实需要在OS X上提供设备级用户帐户,以便将钥匙串锁定到特定帐户。但回到现实世界,我们仍然需要用户注册的不合时宜的电子邮件地址来提供密码重置电子邮件。但是,听起来您的用户帐户存储在本地。