簡體   English   中英

iPhone中的數據保護API不加密

[英]Data Protection API in iPhone Not Encrypting

我需要在Documents Directory中保護我的數據,因此我使用了Apple Data Protection API Apple資產

  1. 我在設置應用程序中啟用了數據保護。 設置 - >常規 - >密碼鎖定開啟
  2. 我使用NSDataProtectionKey編寫文件

     [data writeToFile:imagePath options:NSDataWritingFileProtectionComplete error:nil]; 
  3. 文件已成功寫入

  4. 我得到了文件屬性

      [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:NULL]; 
  5. 它會返回這樣的屬性,因為您可以看到NSFileProtectionKey是NSFileProtectionComplete

     NSFileCreationDate = "2013-01-22 06:10:48 +0000"; NSFileExtensionHidden = 0; NSFileGroupOwnerAccountID = 501; NSFileGroupOwnerAccountName = mobile; NSFileModificationDate = "2013-01-22 06:10:48 +0000"; NSFileOwnerAccountID = 501; NSFileOwnerAccountName = mobile; NSFilePosixPermissions = 420; NSFileProtectionKey = NSFileProtectionComplete; NSFileReferenceCount = 1; NSFileSize = 8964; NSFileSystemFileNumber = 335997; NSFileSystemNumber = 16777218; NSFileType = NSFileTypeRegular; 

我確信我已成功寫入文件並成功讀取該文件。 但是當我在iExplorerMac的外部iOS設備閱讀器應用程序)中打開此設備時,它會向我顯示未加密的文件。

沒有加密意味着我寫了一個圖像文件。 但我能夠在iExplorer中查看該圖像(在文檔目錄中)。 但我的目的是加密它。 因為我不希望用戶看到這些文件。 我知道其他加密AES算法。 但是想知道為什么Data Protection API不起作用。

注意:我使用iPad2 iOS 6.0.1和設備中記錄的日志

但是想知道為什么Data Protection API不起作用。

它確實有效,你只是期望它比它做的更多。

適用於文件的加密iOS對userland中的任何內容都是透明的。 加密是在硬件級別完成的,因此竊取設備閃存的任何人都無法訪問數據。 但是,如果屏幕已解鎖且設備已打開,則操作系統將像處理所有其他文件一樣處理這些文件,並且它們似乎不會從文件系統中“加密”。

如果要執行此操作,則必須使用某種非對稱加密方法對文件進行編碼,例如AES(OpenSSL或GnuTLS可以很好地完成工作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM