2011-03-15 82 views
2

如何在iPhone應用程序中保護密鑰?iPhone應用程序和安全性?

我有一個客戶端應用程序使用的API密鑰,並且不希望任何人看到它,只有應用程序應該能夠讀取它。

1)如何安全地將其存儲在我的應用程序中?存儲到一個變量?夠好嗎?

2)如果有人解密我的應用程序會發生什麼? (這可能嗎?)

回答

7

有很多的問題,在這裏,所以讓我回答一次一個:

你如何確保關鍵到您的iPhone應用程序?

我假定您正在嘗試從您的應用程序的用戶獲取它。這是不可能的,除非你使用的是trusted computing平臺,即。一個可信賴的平臺而不是服從其所有者的訂單(因此有時稱爲treacherous computing)。 iPhone並不是我所知道的這樣一個平臺。

我有一個客戶端應用程序使用的API密鑰,不希望任何人看到它,只有應用程序應該能夠讀取它。

如果您的應用程序可以讀取它,那麼運行您的應用程序的平臺的所有者也可以讀取它。 (例外將是一個值得信賴的計算平臺 - 請參閱上文。)

如何安全地將其存儲在我的應用程序中?

你不能。

將它存儲到一個變量?

你可能會。

夠好嗎?

如果有人解密我的應用程序,會發生什麼號?

然後他得到你的鑰匙。

這可能嗎?

是的。

如果你不想讓你的用戶知道你的鑰匙,那麼不要把它放在首位。設置一個代理服務器,您的應用程序將連接並保留您的祕密。

有一句老話說每個祕密都必須像公衆知識一樣對待,除非它不超過兩個人才知道。這也適用於軟件。

-1

我同意格雷格湯普森,蘋果建議使用鑰匙串來存儲安全數據,如憑證。

另一方面,網絡上有一些文章說,鑰匙串不再是「更安全的區域」,因爲有些人能夠解碼其數據(並且非常快)。

使用iOs 4.0及更高版本,在安全性方面進行了一些改進,即所謂的數據保護(您可以像google那樣:iOs數據保護)。如果您對此主題感興趣,您會發現會話209 - 從2010年的WWDC保護應用數據會話影片很有趣...你可以通過iTunes商店這個視頻免費 - iTunes U專區

希望這有助於

+1

鑰匙串用於存儲用戶的數據,並且可供用戶訪問。無論如何,任何應用程序數據都必須包含在應用程序源代碼或文件中 – user102008 2011-09-22 02:10:38

相關問題