2012-09-15 66 views
1

我有一个可以存储机密信息的iOS应用程序,并且也使用iCloud的到它的核心数据设备之间同步(数据本身的核心数据中加密)。密码钥匙链 - 人们忘记密码

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

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

很多时候我得到的支持请求是说:“嘿,我忘了我的密码,我也忘了回答我的秘密问题,所以现在我不能访问我的宝贵的数据。请帮助”。

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

目前我无法帮助这些人。

现在问题来了。

一方面,它很容易让我清除密码,并从第一次启动钥匙串秘密问题,所以,如果他们删除并重新安装App的人可以创造一个新的。

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

我相信还有更多无辜的人谁忘记了自己的密码比人试图窃取其他人的数据,但我还是觉得舍不得走“的简单方法”。

您认为如何?

回答

1

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

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

不幸的是,无论如何,这仍然会让你停留在目前的用户身上。苹果真的需要像在OS X上一样提供设备级别的用户帐户,以便将钥匙串锁定到特定帐户。但在现实世界中,我们仍然坚持要求用户注册时间不合时宜的电子邮件地址来提供密码重置电子邮件。这听起来像你的用户帐户存储在本地,但是。