2016-03-14 41 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密鑰放在源代碼中可能會滿足安全需求。

相關問題