1

我有一个 iOS 应用程序,它可以存储机密信息,还使用 ​​iCloud 在设备之间同步其核心数据(数据本身在核心数据中加密)。

人们可以用密码保护应用程序,还可以创建两个秘密问题来帮助他们找回丢失的密码。

密码和秘密问题保存在钥匙串中。

我经常收到支持请求,说“嘿,我忘记了密码,我也忘记了我的秘密问题的答案,所以现在我无法访问我的宝贵数据。请帮助”。

有些人还说他们试图删除应用程序并重新安装它(知道数据将从 iCloud 重新同步),假设这会重置他们的密码,这当然不会发生。

目前我没有办法帮助这些人。

现在问题来了。

一方面,我很容易在第一次启动时从钥匙串中清除密码和秘密问题,这样人们可以在删除并重新安装应用程序时创建一个新的。

但是,这似乎会造成安全漏洞。未经授权持有设备的人可以删除应用程序,重新安装它,创建新密码,让应用程序与 iCloud 同步并访问机密数据。

我相信,与试图窃取他人数据的人相比,忘记密码的无辜者要多得多,但我仍然不愿意走“简单的路”。

你怎么看?

4

1 回答 1

1

简短回答:对于可能受影响的少数人,这里有一个想法:尝试首先备份到 iTunes,未选中“加密本地备份”(这会忽略钥匙串)。然后从该 iTunes 备份中擦除并恢复设备。这应该将应用程序及其数据放回设备上,但没有钥匙串。请注意,我还没有尝试过,因此请在联系用户之前使用此解决方案进行测试。有关一些相关说明,请参阅: http: //support.apple.com/kb/TS4108

更长的想法:我认为在首次运行时删除用户钥匙串数据违背了用户的期望。Apple 在应用程序卸载后维护钥匙串,以便用户不会丢失数据。Apple 为用户提供的保护(密码锁定、数据擦除)以及开发人员可以实现的安全功能(钥匙串、文件加密)确实涵盖了安全漏洞问题,因此不应成为如何处理的重要考虑因素。你处理这个。

不幸的是,尽管如此,您仍然会被当前用户困住。Apple 确实需要像在 OS X 上一样提供设备级用户帐户,以便将钥匙串锁定到特定帐户。但回到现实世界,我们仍然坚持要求用户注册时不合时宜的电子邮件地址提供密码重置电子邮件。但是,听起来您的用户帐户存储在本地。

于 2012-11-07T00:50:00.940 回答