Claves seguras en el escenario de la aplicación iOS, ¿es seguro?

Estoy tratando de ocultar 2 secretos que estoy usando en una de mis aplicaciones.

Como entiendo, el llavero es un buen lugar, pero no puedo agregarlos antes de enviar la aplicación.

Pensé en este escenario -

Pre sembre los secretos en la base de datos CoreData de mi aplicación, difundiéndolos en otras entidades para ocultarlos. (Ya tengo un DB semilla en esa aplicación).Cuando la aplicación se inicie por primera vez, genere y luego mueva a las teclas del llavero.Eliminar los registros de CoreData.

¿Es seguro o el pirata informático puede ver que esto sucede y obtener esas claves?

* TERCERA EDICIÓN ** Lo siento por no explicar este escenario desde el principio: la aplicación tiene muchos niveles, cada nivel contiene archivos (audio, video, imágenes). El usuario puede comprar un nivel (IAP) y una vez finalizada la compra, necesito descargar los archivos a su dispositivo.

Para iOS6, los archivos se almacenan con la nueva función "Contenido alojado" de Apple. Para iOS5 los archivos se almacenan en amazon S3.

Así que en todo este proceso tengo 2 claves: 1. Clave IAP, para verificar la compra en Apple IAP. 2. Teclas S3, para obtener los archivos de S3 para usuarios de iOS5:

NSString *secretAccessKey = @"xxxxxxxxx";
NSString *accessKey = @"xxxxxxxxx";

¿Necesito proteger esas llaves en absoluto? Me temo que la gente podrá obtener los archivos de S3 sin comprar los niveles. O que los hackers podrán construir una versión pirateada con todos los niveles pre-descargados dentro.

Respuestas a la pregunta(3)

Su respuesta a la pregunta