将敏感数据添加到iOS应用程序构建
问题描述:
将敏感数据添加到iOS应用程序的最佳做法是什么? 对于敏感数据,我指的是与某些外部服务器进行通信的密钥或令牌。将敏感数据添加到iOS应用程序构建
我们可以在应用程序中编译证书,并且iOS可以在安装时删除它吗?
我觉得我们不能100%保证它的安全性,但是我们可以添加的最佳实践层是什么。
答
没有任何机制可以确保服务器只允许您的应用程序与其通话。所以如果这是你的目标,那么它是无法解决的。这已经在SO上讨论过死亡。短短数:
- Secure Communication Between iPhone and Server?
- Store an encryption key in Keychain while application installation process
- Secure https encryption for iPhone app to webpage
(而这些帖子中的诸多环节。)
和其他地方:
您无法验证设备或软件。您只能验证用户身份。这意味着登录。如果没有部分存储在用户大脑中的登录信息(或者至少与iPhone分离),这只是模糊处理。
现在,这并不意味着混淆无用。事实并非如此。您可以从简单的身份验证令牌(如客户端密钥)中获得一些里程数,但不要期望它能够在攻击中幸存下来。这并不意味着你不应该这样做;它只是意味着你不应该花很多时间/金钱,因为它会很快失败。
在任何情况下,您都不应该执行支付给客户的东西。阅读上面链接的几个线程(以及从这些线程链接的几个线程)。如果在那之后,你仍然绝对需要一个解决方案,那么你需要聘请一个人来跟踪裂缝,并在每次出现新裂缝时修复它们。它永远不会停止。