2016-03-14 48 views
2

我注意到几个教程的大部分社交网络的主要参与者在源在那里与您的帐户API密钥嵌入(通常在计划文本)的例子码。例如,Google Maps APIs Premium Plan。该密钥用于为您的公司开票。为什么是安全的把密钥到iOS的二进制

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

这种做法是否确实安全?如果是这样,为什么?在应用

+0

你在寻找什么更多的东西不包括在你链接的问题的意见?将纯文本键放入代码中并不安全,就像注释状态一样。 – rmaddy

+0

理想情况下,你不应该有任何硬编码的密钥。如果你有,你需要混淆它们。 – Krypton

+0

@Krypton混淆是安全的?请解释。 – zaph

回答

2

嵌入API密钥是不安全的,通常不是一个好的做法,但确实需要大量的工作因素,以获得他们来说,是不平凡的。除了要执行的操作系统之外,没有工具可以解密可执行文件。

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

您需要确定谁是攻击者,攻击者将有多大的本事和时间花费和成本给你。

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

只要键具有执行的任何部分很容易受到期间处于该应用存储器。

将API密钥放在源代码中可能会满足安全需求。

相关问题