# App Signaturschlüssel auslesen



## wer112 (21. Dez 2021)

Ich würde gerne den Signaturschlüssel von meiner App bzw. andere App bzw. APK auslesen wollen.
Möchte das unter anderem als Sicherheitmerkmal benutzen.

Um sich einloggen/registrieren zu können, muss:

- der PackageName übereinstimmen
- der Sicherheitskey übereinstimmen
- Signaturschlüssel übereinstimmen

die Daten(Lösung) kommen in eine speziellen PHP Datei und die App übergibt seine Antworten.
Wenn alles Stimmt, dann darf man sich einloggen...

Auch wichtig ist, das man wenn ein Entwickler ein Update hochladen möchte, dass der Signaturschlüssel gleich sein muss.

Wie lest der Playstore diesen aus?
Wie kann ich in der App die Schlüssel auslesen(mein eigener, andere Apps...)?

Leider finde ich zu diesem Thema nix.

Sicherheit geht vor 

Danke im Vorraus!


----------



## osion (11. Feb 2022)

Dafür ist der Signaturschlüssel nicht gedacht. Der Schlüssel wird als Verifizierung zwischen dir und Google gebraucht.





						Signing Builds for Release  |  Android Open Source Project
					






					source.android.com
				




Ich denke, dass du dich nochmals informieren solltest.
----
Als zweites solltest du deinen Login-Prozess nochmals überdenken.


----------



## Robert Zenz (16. Feb 2022)

wer112 hat gesagt.:


> Um sich einloggen/registrieren zu können, muss:
> 
> - der PackageName übereinstimmen
> - der Sicherheitskey übereinstimmen
> ...


Aber das sind alles Daten welche dir der Client schickt, und damit kannst du diesen Informationen nicht vertrauen.

Also um auszuholen. Du hast deinen Server, an deinem Server soll sich nur deine App anmelden koennen. Jetzt ist hier aber ein groszes Problem: Die App laeuft auf einem nicht von dir kontrollierten System. Das bedeutet du kannst nicht wissen ob es deine App ist, oder ein Programm welches deine App echt gut nachahmen kann. Also du erreichst hier keine Huerde, sondern nur eine Verzoegerung. Also wenn sich jemand an dem Server anmelden will, muss er halt nicht nur Benutzername/Passwort uebergeben, sondern auch diese zusaetzlichen Informationen, und die sind ja leicht zugaenglich in deiner App. Aber vom Server aus kannst du ja nicht mehr feststellen *wer* dir da diese Werte uebergibt. Nichtmal mit Public/Private-Key Verfahren kommst du weiter, denn irgendetwas muss auf dem Client sein, ein System welches du nicht kontrollierst. Nichts hindert mich daran mir das APK der App zu nehmen, es zu zerlegen und den Schluessel einfach rauszuholen um diesen bei der Anmeldung mitzuschicken.

Was du hier an Sicherheitsmechanismus suchst ist nur mit Hardware-Attestierung moeglich, und auch nur dann wenn du der Hardware vertraust und diese nicht zerbrochen ist (zugegeben, im Falle von Android ist das der Fall). SafetyNet waere da das Stichwort. Aber, wenn du das "einfach nur so" in deine App einbaust weil du glaubst du brauchst es, werden dich einige Benutzer am Ende hassen (LineageOS, gerootete Geraete und so weiter) weil sie deine App dann nicht mehr, oder nur mit teilweise erheblichem zusaetzlichem Aufwand, verwenden koennen. Das beste Beispiel hierfuer ist die McDonalds App, welche nur funktioniert wenn man ein Stock-Android ohne Root hat...weil...die McDonalds App in der man einen Burger bestellt aus irgendeinem Grund speziell gesichert sein muss...weil Gruende. Also im Zweifelsfall eher lassen.


----------

