我有一个 iOS 应用程序,它可以存储机密信息,还使用 iCloud 在设备之间同步其核心数据(数据本身在核心数据中加密)。
人们可以用密码保护应用程序,还可以创建两个秘密问题来帮助他们找回丢失的密码。
密码和秘密问题保存在钥匙串中。
我经常收到支持请求,说“嘿,我忘记了密码,我也忘记了我的秘密问题的答案,所以现在我无法访问我的宝贵数据。请帮助”。
有些人还说他们试图删除应用程序并重新安装它(知道数据将从 iCloud 重新同步),假设这会重置他们的密码,这当然不会发生。
目前我没有办法帮助这些人。
现在问题来了。
一方面,我很容易在第一次启动时从钥匙串中清除密码和秘密问题,这样人们可以在删除并重新安装应用程序时创建一个新的。
但是,这似乎会造成安全漏洞。未经授权持有设备的人可以删除应用程序,重新安装它,创建新密码,让应用程序与 iCloud 同步并访问机密数据。
我相信,与试图窃取他人数据的人相比,忘记密码的无辜者要多得多,但我仍然不愿意走“简单的路”。
你怎么看?