I applied SQLCipher in my Android app to make it database safe. SQLCipher needs a key to encrypt the database file. The problem I ran into is key protection, if my application is used on the root device or reverse engineering, then my key will be open and the database can be decrypted.
Please note that my application does not ask for a password every time a user opens it, and therefore the user's password cannot be used as a key. I want to implement behavior like facebook, whatsapp applications that encrypt data using private-key / key without asking for a password and allow users to register all the time. Where and how do these applications store their key?
Please suggest a solution / algorithm that will protect the key. In addition, does the Android infrastructure support any such feature for data protection / management?
android public-key-encryption sqlcipher-android
Syed taruf naqvi
source share