Inner Data Encryption (Android)

To solve the problem of crypto-assets safety Multy team has developed a Master Key – a key with the help of which application’s data is encrypted in the local storage. Detailed descryption of the idea you can find in this article.

We have prepared 2 additional arcticles for you. One – describing Master Key Generation procedure for iOS platform, and the second (this one) – Android.

F1() – BINDING MK AND INSTALLATION LIFE-CYCLE

We need a value that will remain unchanged after user manipulations (close/open application, update operation system, update application).

Unified solution (iOS/Android) for this goal is Instance ID from Google. Instance ID provides a unique identifier for each app instance and a mechanism to authenticate and authorize actions (for example, sending a GSM message). Since Instance ID suits to authorization actions, then it can be used for Master Key generation.

To realize this function we studied Instance ID Implementation techniques for Android. These instructions are provided here.

The result is:

InstanceID.getInstance(context).getId();
F2() – BINDING MK AND LOCAL PASSWORD / FINGERPRINT

For the protection improvement one can add application’s password/fingerprint protection.

Code will be published here later.

F3() – BINDING MK AND A  SPECiFiC DEVICE

Here you can find Documentation about Android_ID.

Master Key can be bined to a specific device (e.i. the device on which an application has been installed, and consequently local storage encrypted). To do this you have to write:

Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID);

 

 

3 Replies to “Inner Data Encryption (Android)”

Leave a Reply

Your email address will not be published.