2011-09-22 56 views
1

iPhone應用程序可以加密其存儲的數據嗎?因此,即使是使用Jailbroken iOS設備的用戶也無法訪問該文件。例如,遊戲中心可能會與本​​地數據同步,您不希望用戶操縱分數。你不希望你的IAP被繞過。iOS如何通過加密存儲持久數據?

在寫入設備之前是否有簡單的方法來加密數據?

也許我的問題不是很清楚。他們是:

  1. 當我使用像這樣的東西:[array writeToFile:path atomically:YES];有沒有任何自動加密,以確保只有我的應用程序可以正確訪問文件?

  2. 如果不是,實現它的最簡單方法是什麼?

PS:現在我發現的NSData可以做的工作,但NSDataWritingFileProtectionComplete標誌要求#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED。我想知道在不支持的設備上會發生什麼?

+0

即使在正常的iOS設備上,用戶也可以訪問所有數據(只讀)。帶有像iPhoneExplorer這樣的應用程序。 – rckoenes

回答

2

更多信息,@ GrahamLee的回答this question和其他iOS標籤的問題上security.stackexchange.com

基本概述 - 基於iPhone單獨控制:

  • 如果有人有設備並沒有被鎖定,就可以訪問所有的數據
  • 如果有人有設備,並將其鎖定,他們可以得到大部分數據,以及可能所有(有一些例外可能適用)

你可以混淆,並且存儲數據時,你的應用程序中使用加密,但是攻擊者可以反向工程的加密代碼解密。

您需要計算出此類DRM技術的價值,並決定在這種情況下它們是否值得。

+0

+1如果蘋果對這個問題投入巨大的預算以及對硬件,固件和操作系統的完全控制不能防止設備被越獄,那麼您可以在更高層創建一些東西是不可思議的,將更加牢不可破。這並不意味着一層混淆不值得,但不要指望它是一顆銀彈。 –