iOS应用安全最佳实践(API密钥,常量,WS URL,凭据)

W.S*_*W.S 8 security encryption gdb decompiling ios

在iOS App中添加额外安全性的最佳做法是什么,因此攻击者/黑客无法在代码中轻松找到安全私钥,常量字符串.

PS:我发现了一些其他相关的问题,这些问题已得到部分解答或遗漏了这个问题的某些方面,所以我在下面添加了一些详细的问题和一些调查结果,这样任何人都可以在以后从这个帖子中获益.

任何应用程序的100%安全性是不可能的,但我们可以尝试通过实现更高的安全性来尽可能地使攻击/破解iOS应用程序,以便无法轻松破解/攻击应用程序.

以下是一些应该更安全的数据

  • 所有用户凭据(用户名,密码等)
  • API密钥,私钥,令牌,WebService URL/EndPoints等(常量/硬编码变量)
  • WebService请求,响应(网络层)

我已经在KeyChain上存储了所有用户凭据,

1.是否有任何加密.ipa文件的方法,因此iOS二进制应用程序的反编译/逆向工程变得更难?

.

2.如何存储任何Constant HardCoded API Key/Token,即使应用程序被破解者成功反编译/破解; Constant API密钥/令牌应该很难检索.(假设我们已经对密钥进行了编码/加密,我们在使用前每次都对其进行解码)

以下是我目前的一些发现,但我不确定哪种方法更好,或者如果有任何其他标准方法,那么请提出建议:

  • 在加密/编码后存储所有硬编码常量API密钥,当需要时,必须按需解密/解码.
  • 将机密常量变量存储为HEX /哈希值,并且不会直接在常量中存储任何纯文本.
  • 困惑
  • main(int argc, char * argv[])如果有人试图使用一些反编译/调试工具调试它,则添加以下代码行以终止应用程序.(不确定Apple是否会因此而拒绝该应用)

    disable_gdb();

期待任何建议或最佳实践,以使iOS App更安全.