爲什麼我們不應該在iPhone應用程序的源代碼中存儲用於加密的密碼或密鑰?爲什麼我們不應該在iPhone應用程序的源代碼中存儲用於加密的密碼或密鑰?
有沒有可能讓人們逆向工程代碼並找到存儲的密鑰?或者如果硬代碼值存儲在易於訪問的位置?
爲什麼我們不應該在iPhone應用程序的源代碼中存儲用於加密的密碼或密鑰?爲什麼我們不應該在iPhone應用程序的源代碼中存儲用於加密的密碼或密鑰?
有沒有可能讓人們逆向工程代碼並找到存儲的密鑰?或者如果硬代碼值存儲在易於訪問的位置?
如果你在源代碼中存儲密鑰,是的,他們可以被反向設計。通過生成器函數生成密鑰可以使這更加困難,但這仍然是一個額外的混淆等級。一個真正積極的攻擊者可以通過這一點。這種方法的另一個缺點是,除非生成器函數生成從某些硬件常量派生的密鑰,否則相同的密鑰將適用於應用程序的所有實例。
同樣,您必須分析您希望應用程序的安全性以及您想要投入安全性的多少努力。安全始終是一種折衷。當攻擊的可能性或成本極不可能發生時,花費大量精力在安全上是不值得的。
更安全的方法是創建一個隨機密鑰,然後將其存儲在設備上的安全存儲中。我不太熟悉iOS Api,並且提供了這種功能。例如,在Windows上有一個叫DPAPI的東西提供了這個功能。
任何進入用戶手中的東西都是可訪問的。密鑰的模糊處理是工作的一部分,但並不能完全消除問題。
是的,可能會有。 – jtbandes