2
votes

I'm creating an app that relies quite heavily on Core Data. It is a content-driven app that primarily delivers question/answers to the user.

On its first load, the app delegate pulls through lots of data from an SQLite into the app's persistent store. The data is basically lots of content that is not only in-app purchasable, but is also copyright-protected.

Normally, developers requiring encryption/protection for Core Data need it for storing sensitive user-data. However, as in this (my) case, I would need to protect the persistent store from external access from anyone or any source (including the user), purely due to the fact that I don't want someone to be able to download the app's entire Intellectual Property from the persistent store.

I noticed on the iPhone Simulator that locating the persistent store and opening it (with an SQLite browser) was no trouble at all. This is a little worrying, and so, if this is also as easily possible for a release installation on a device, then I would like to know:

I don't necessarily want to go all-out on encryption, as I've found ways to do this row-by-row (lazily), so is there a quick way to obfuscate/scramble a persistent store?

1
This only seems to encrypt the persistent store when the user has enabled a passcode lock? - Sarreph
Yes, anyway you could encrypt the storage file with your own encrypt methods. Performance could be a problem but you need to experiment a little bit. - Lorenzo B
Yeah so I was wondering what the quick encryption/protection methods for this sort of case would be? - Sarreph

1 Answers

0
votes

This article shows how to encrypt individual attibutes(of course you can encrypt all attributes).