SQLite Security in iOS

I am developing app, which uses sqllite db. I want to provide security to DB. Is there any ways to provide security to SQLite DB so that no one can read it by hacking device or something else.

Should we provide any encrytion or apple provides their own security? Which are ways to provide app DB security?

Thanks

Answers


@Quentin's comment is right - as long as someone has physical acces to your device, it's only a matter of time until it's cracked. However, you can make that amount of time take so long that it's not worth it.

If you were to encrypt your database, the decryption key would also have to be stored on the device (assuming you want it to work offline). You could use the keychain to store this key - then they have to crack the iPhone's keychain before they can get access to your data.

The other alternative is to only let your app work while online - store the key on your server and have the user login and authenticate before you pass the key back to the app. This s a bit more work from you but will ensure that the key and the data are stored in different locations.

Finally (and most securely), you could store everything on your server - that way you control the data nd the key yourself and deice theft won't make the slightest bit of difference. however, if your data set is big this might make the ui of your app more complicated. And it won't work offline, obviously :)


Need Your Help

Problem in Fetching Table contents when adding rows in same table

php mysql

Im trying to write a function for adding category:

how to add NSDictionary data to NSMutable Array?

ios objective-c nsmutablearray nsdictionary

I am trying to add aDict data to myData(NSMutable Array), but am not able to add it. whenever I am trying to print it(myData). It is printing null.