如何在iPhone應用程序中保護密鑰?iPhone應用程序和安全性?
我有一個客戶端應用程序使用的API密鑰,並且不希望任何人看到它,只有應用程序應該能夠讀取它。
1)如何安全地將其存儲在我的應用程序中?存儲到一個變量?夠好嗎?
2)如果有人解密我的應用程序會發生什麼? (這可能嗎?)
如何在iPhone應用程序中保護密鑰?iPhone應用程序和安全性?
我有一個客戶端應用程序使用的API密鑰,並且不希望任何人看到它,只有應用程序應該能夠讀取它。
1)如何安全地將其存儲在我的應用程序中?存儲到一個變量?夠好嗎?
2)如果有人解密我的應用程序會發生什麼? (這可能嗎?)
有很多的問題,在這裏,所以讓我回答一次一個:
你如何確保關鍵到您的iPhone應用程序?
我假定您正在嘗試從您的應用程序的用戶獲取它。這是不可能的,除非你使用的是trusted computing平臺,即。一個可信賴的平臺而不是服從其所有者的訂單(因此有時稱爲treacherous computing)。 iPhone並不是我所知道的這樣一個平臺。
我有一個客戶端應用程序使用的API密鑰,不希望任何人看到它,只有應用程序應該能夠讀取它。
如果您的應用程序可以讀取它,那麼運行您的應用程序的平臺的所有者也可以讀取它。 (例外將是一個值得信賴的計算平臺 - 請參閱上文。)
如何安全地將其存儲在我的應用程序中?
你不能。
將它存儲到一個變量?
你可能會。
夠好嗎?
如果有人解密我的應用程序,會發生什麼號?
然後他得到你的鑰匙。
這可能嗎?
是的。
如果你不想讓你的用戶知道你的鑰匙,那麼不要把它放在首位。設置一個代理服務器,您的應用程序將連接並保留您的祕密。
有一句老話說每個祕密都必須像公衆知識一樣對待,除非它不超過兩個人才知道。這也適用於軟件。
考慮將密鑰存儲在iPhone的鑰匙串存儲庫中。看看蘋果在這裏提供的鑰匙扣示例應用程序:
http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Introduction/Intro.html
希望這有助於。祝你好運。
我同意格雷格湯普森,蘋果建議使用鑰匙串來存儲安全數據,如憑證。
另一方面,網絡上有一些文章說,鑰匙串不再是「更安全的區域」,因爲有些人能夠解碼其數據(並且非常快)。
使用iOs 4.0及更高版本,在安全性方面進行了一些改進,即所謂的數據保護(您可以像google那樣:iOs數據保護)。如果您對此主題感興趣,您會發現會話209 - 從2010年的WWDC保護應用數據會話影片很有趣...你可以通過iTunes商店這個視頻免費 - iTunes U專區
希望這有助於
鑰匙串用於存儲用戶的數據,並且可供用戶訪問。無論如何,任何應用程序數據都必須包含在應用程序源代碼或文件中 – user102008 2011-09-22 02:10:38
鑰匙扣用於存儲用戶的數據,並且是可訪問用戶。任何應用程序數據都必須包含在應用程序源代碼或文件中。 – user102008 2011-09-22 02:11:20