Reputation: 2101
I will develop a mobile application on Android and iPhone/iPad that will contain a huge number of data (several MB, let's say 50 MB). Thus, these data will be stored on an external storage like a SD card.
Besides, they are critical and user must not be able to read them!!!
I guess how could I crypt/decrypt these data?
Here the main points to keep in mind:
Application is running on mobile device:
These data will be read-only :
Application must quickly react:
Note: just a few amount of these data have to be decrypted according to the user actions:
For point number 3, I think to:
Any other suggestions or methods from other experimented Android and iPhone/iPad developers ?
Upvotes: 0
Views: 230
Reputation: 8990
First of all, there's no way to store data on an external medium like an SD card on the iPhone.
This being said, what you like to achieve is impossible. If some encrypted data is meant to be decrypted on the device (even if only partially), this means the app needs to store the decryption key. This in itself is insecure, even with code obfuscation it is still technically possible for a motivated attacker to retrieve that key by reverse engineering your app.
So, if that data must not be made freely available through a malicious attack, don't store it in the device.
And even if you don't store it locally but instead transmit the decrypted data through a secure channel as needed - there's attacks for that, too.
It all boils down to this: There's always a vulnerability that may be exploited. You can try making it as hard for an attacker as possible to break in, but you must always keep in mind that it might be possible after all.
Upvotes: 1