如何在iOS应用程序中存储危险的敏感信息,如秘密,密钥,令牌,加密密钥

当我们谈论保护iOS应用程序时,我们经常忘记保护最关键的敏感信息,如密钥,密钥,令牌,加密密钥.此信息存储在iOS二进制文件中.所以您的服务器端安全协议都不会帮助您.

有很多建议,我们不应该将这些信息存储在应用程序中,而是存储在服务器中,并通过SSL安全的Web服务调用获取.但这是不可能的所有应用程序.例如如果我的应用程序根本不需要Web服务.

在iOS应用中,我们有以下选项存储信息.

> UserDefault:不适合这种情况
> String Constant:不适用于这种情况.可以反向
工程师检索或使用strings command
>安全数据库:存储在安全和加密的数据库中.但是再次有责任保护数据库用户名和密码.
KeyChain:最好存储关键信息.但是,在安装应用程序之前,我们无法保存信息.要存储在钥匙扣中,我们首先需要打开应用程序,从一些源代码读取并存储在钥匙扣中.也不适合我们的情况.
>自定义哈希字符串常量:不要直接使用来自服务提供商(mixpanel,paypal)的秘密,而是使用自定义密钥的哈希版本的信息.这也不是完美的解决方案.但是在黑客攻击中增加复杂性.

请给这个问题发一些很棒的解决方案.

解决方法

如果您不想使用自己的后端,那么请使用Apple.您可以配置按需资源,并在Apple服务器上使用密钥,秘密保留数据文件.首次下载后,您可以将数据写入Keychain,这样就足够安全了.我猜测iOS和Apple服务器之间的网络也足够安全.

On-Demand Resources Essentials

Accessing and Downloading On-Demand Resources

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...