API de protección de datos en iPhone no encriptación

Necesito proteger mis datos en el directory de documentos, así que he usado la API de protección de datos de Apple . Apple Asset

  1. Activé Protección de datos en la aplicación de configuration. Configuración-> General-> Bloqueo de contraseña
  2. Escribo el file con la NSDataProtectionKey

    [data writeToFile:imagePath options:NSDataWritingFileProtectionComplete error:nil]; 
  3. El file se escribe con éxito.

  4. Obtengo los attributes del file

      [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:NULL]; 
  5. Devuelve esto los attributes como este, ya que puede ver que NSFileProtectionKey es 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; 

Estoy seguro de que he escrito el file con éxito y leí ese file con éxito. Pero cuando abro este dispositivo en iExplorer (Una aplicación externa de lector de dispositivos iOS para Mac), me muestra el file escrito sin encryption.

Sin medios encriptados escribo un file de image. Pero puedo ver esa image (en el directory de documentos) en iExplorer. Pero mi propósito es cifrar eso. Porque no quiero que los usuarios vean esos files. Soy consciente de otros algorithms AES de encriptación. Pero quiero saber por qué la API de protección de datos no funcionó.

Nota: Uso iPad2 iOS 6.0.1 y loggings registrados en el dispositivo

Pero quiero saber por qué la API de protección de datos no funcionó.

Funcionó, solo esperabas más de lo que hace.

El encryption iOS que se aplica a los files es transparente para cualquier cosa en la zona de usuario. El encryption se realiza a nivel de hardware, para que nadie que robe la memory Flash del dispositivo pueda acceder a los datos. Sin embargo, si la pantalla está desbloqueada y el dispositivo está encendido, el sistema operativo maneja estos files como cualquier otro file, y no parecen estar "encryptions" desde el sistema de files.

Si desea hacer esto, debe codificar el file con algún método de encryption asimétrico, como AES (OpenSSL o GnuTLS).