'License Verification' auch offline

  • Antworten:2
  • OffenNicht stickyBentwortet

20.06.2012 13:35:58

Liebe Sicherheitsexperten. Ich bitte um ein Review meines 'License Verification' Konzepts :-)

Ziel : Es soll auch Offline funktionieren

Beschreibung : Nachdem die Lizenz online verifiziert wurde, wird die ANDROID_ID ( Eindeutige ID für das Gerät ) verschlüsselt ( eigener Verschlüsselungscode ) lokal abgelegt. In meinem Pseudocodebeispiel unten, speichere ich das in eine Preference-Variable. Falls die App offline ist, wird geprüft ob die verschlüsselte ANDROID_ID vorhanden ist und ob sie mit der richtigen ANDROID_ID übereinstimmt.

Was denkt Ihr zu diesem vorhaben ?

PSEUDOCODE :
Licencecheck(){

if ( online ) {
if ( Licence_OK ){
setsharedpreference ( "encrypted_android_id" , encrypt(ANDROID_ID) )
start_main_app;
}else{
setsharedpreference ( "encrypted_android_id" , "" )
finish();
}
}else{
String Androidid = decrypt ( getsharedpreference( "encrypted_android_id" ) )
if (Androidid == ANDROID_ID){
start_main_app;
}else{
setsharedpreference ( "encrypted_android_id" , "" )
finish();
}

}

}

20.06.2012 13:42:12

Ist das denn überhaupt nötig?
Die normale Policy der Google LVL ist doch so ausgelegt, dass nach einem erfolgreichen Check die App 7 Tage lang auch Offline läuft.

Ansonsten kannst das halt so machen, wobei ich eine Hash-Funktion nehmen würde, statt einer 2-Wege Verschlüsselung.
Es reicht ja beim ersten Check einen HashWert aus der Geräte-Id + Salt + X zu bilden und beim nächsten Check einfach denselben Hash-Wert zu bilden und zu prüfen ob er identisch ist.
Wenn NEIN, können die Eingaben nicht gleich sein, also hat sich ein Teil der Eingabe geändert.

EDIT:
Wobei dir bewusst sein sollte, dass Apps aus dem Market eben NICHT an die Device-ID gebunden sein sollen,
sondern an den Google-Account. Mit der o.g. Logik sperrst du User aus deiner eigenen App zu Unrecht aus.

— geändert am 20.06.2012 13:51:07

04.07.2012 12:49:41

Vielen Dank für eure Antworten. Das mit dem Hashcode ist eine gute Idee. Das kann man auch für andere Situationen gebrauchen. Da wäre ich nicht draufgekommen. Danke für den Tip.
Danke auch für den Review. Ich werde meine Lösung bauen, da ich nicht möchte, dass nach 7 Tagen eine Aufforderung kommt um online zu gehen.

viele Grüsse und Danke