当我们谈论保护iOS应用程序时,我们经常忘记保护最关键的敏感信息,如密钥,密钥,令牌,加密密钥.此信息存储在iOS二进制文件中.所以您的服务器端安全协议都不会帮助您.
有很多建议,我们不应该将这些信息存储在应用程序中,而是存储在服务器中,并通过SSL安全的Web服务调用获取.但这是不可能的所有应用程序.例如如果我的应用程序根本不需要Web服务.
在iOS应用中,我们有以下选项存储信息.
> UserDefault:不适合这种情况
> String Constant:不适用于这种情况.可以反向
工程师检索或使用strings command
>安全数据库:存储在安全和加密的数据库中.但是再次有责任保护数据库用户名和密码.
KeyChain:最好存储关键信息.但是,在安装应用程序之前,我们无法保存信息.要存储在钥匙扣中,我们首先需要打开应用程序,从一些源代码读取并存储在钥匙扣中.也不适合我们的情况.
>自定义哈希字符串常量:不要直接使用来自服务提供商(mixpanel,paypal)的秘密,而是使用自定义密钥的哈希版本的信息.这也不是完美的解决方案.但是在黑客攻击中增加复杂性.
请给这个问题发一些很棒的解决方案.
解决方法
如果您不想使用自己的后端,那么请使用Apple.您可以配置按需资源,并在Apple服务器上使用密钥,秘密保留数据文件.首次下载后,您可以将数据写入Keychain,这样就足够安全了.我猜测iOS和Apple服务器之间的网络也足够安全.