[英]Data Protection API in iPhone Not Encrypting
我需要在Documents Directory中保護我的數據,因此我使用了Apple Data Protection API 。 Apple資產
我使用NSDataProtectionKey編寫文件
[data writeToFile:imagePath options:NSDataWritingFileProtectionComplete error:nil];
文件已成功寫入
我得到了文件屬性
[[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:NULL];
它會返回這樣的屬性,因為您可以看到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;
我確信我已成功寫入文件並成功讀取該文件。 但是當我在iExplorer ( Mac的外部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.