To add the answer above (which is very good) to mgorbach, Core Data can store data in four forms:
- SQLite3 Database (most common)
- .plist file (e.g. XML)
- Binary file
- Internal memory (volatile storage)
Neither .plist, Binary File, or SQLite are protected. .Plist files can be easily read. The binary will be more complex, but AFAIK does not use any encryption, and any Objective-C encoder can easily extract its contents. SQLite is also not safe. Tools such as SQLite Manager for FireFox, or Base for Mac, make it trivial to read SQLite SQL Server data.
Since no methods for storing basic data are protected, it is best to encrypt the data before transferring it to disk.
This does not account for attacks within the memory. Of course, for this to be successful, the system, as a rule, should already be compromised.
If the end user has FileVault enabled (encryption of the entire home folder), protected virtual memory, firewall and strong password, they are safe enough for many attacks.
source share