OStack程序员社区-中国程序员成长平台

标题: ios - 为什么将 key 放入 iOS 二进制文件是安全的 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:55
标题: ios - 为什么将 key 放入 iOS 二进制文件是安全的

我注意到社交网络中大多数主要参与者的一些教程都有示例,其中与您的帐户相关联的 API key (通常在计划文本中)嵌入到源代码中。例如,Google Maps APIs Premium Plan .此 key 用于向您的公司收费。

我在 Is it safe to put private API keys in your .m files when exporting to the appstore? 中发现了一个类似的问题1 - 值得注意的是,任何拥有越狱手机的人都可以看到未加密的可执行文件

这种做法实际上是否安全,如果是,为什么?



Best Answer-推荐答案


在应用程序中嵌入 API key 并不安全,通常也不是一个好的做法,但确实需要大量的工作因素才能获得它们,这并非易事。除了操作系统执行之外,没有工具可以解密可执行文件。

RE:“任何拥有越狱手机的人都可以看到未加密的可执行文件。”不是真的。只是越狱不会解密应用程序二进制文件,它只是在二进制文件加载到 RAM 中执行并且 key 不可用时解密,它在 DMA 路径中的硬件中解密。需要添加调试工具,并在二进制加载到内存后捕获执行。

您需要确定攻击者是谁、攻击者将花费多少技能和时间以及对您造成的损失。

没有 100% 安全的解决方案,只会增加工作系数。 另一种方法是在登录服务器时第一次运行时获取 API key ,然后将它们移动到钥匙串(keychain)。但这也只是增加了工作因素,因为如上所述,可执行文件在发送到服务时可以在运行时进行检查。

只要 key 在执行的任何部分都必须在应用内存中,它就很容易受到攻击。

将 API key 放在源中可能会满足安全需求。

关于ios - 为什么将 key 放入 iOS 二进制文件是安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978943/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4