¿Es apropiado cifrar un file usando el identificador ForVendor?

Estoy pensando en la forma correcta de cifrar un file en mi aplicación. Lo siguiente se aplica a los datos almacenados en el file:

  • Los datos no son muy sensibles.
  • Los datos se pueden volver a crear si se pierden (aunque es muy costoso)
  • El file solo debe ser legible por mi aplicación.
  • El file no debe ser legible por mi aplicación cuando se copy en otro dispositivo
  • La aplicación no debe requerir el uso de una contraseña del dispositivo para el llavero.

Una idea que tengo es usar [[UIDevice currentDevice] identifierForVendor] como la key de encryption, ya que esto debería garantizar mis puntos anteriores.

¿Es esta una buena manera de hacerlo? ¡Por favor, dame todas las razones por las que puedas pensar por qué no debería hacer esto!

No recomiendo usarlo directamente.

La razón por la cual es que puede cambiar en varias circunstancias como la actualización.

Aún así puede usarlo en lugar de un generador aleatorio para luego almacenarlo en el llavero para uso futuro.

Referencia

El valor cambia cuando el usuario borra todas las aplicaciones de ese proveedor del dispositivo y luego vuelve a instalar una o más de ellas. El valor también puede cambiar cuando se instalan comstackciones de testing con Xcode o cuando se instala una aplicación en un dispositivo mediante la distribución ad-hoc. Por lo tanto, si su aplicación almacena el valor de esta propiedad en cualquier lugar, debe manejar con gracia las situaciones en las que el identificador cambia.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/#//apple_ref/occ/instp/UIDevice/identifierForVendor