2016-08-18 4 views
2

Bevor Sie eine Android App bei Google Play veröffentlichen können, muss sie mit einem Freigabeschlüssel signiert sein. Es soll Sicherheit geben. Beim Generieren des Schlüssels muss ein Passwort eingegeben werden.Was passiert, wenn jemand meinen Freischaltcode für Android-Apps stiehlt?

Worum geht es hier? Lassen Sie mich fragen, was passieren würde, wenn mein Freigabeschlüssel gestohlen/kopiert würde. Angenommen, jemand könnte es sogar schaffen, diesen Schlüssel zu verwenden, um Apps von sich selbst zu signieren. Was schlechtes würde das bedeuten?

Ich würde argumentieren, wenig bis gar nicht, richtig? (in Anbetracht der Tatsache, dass meine Entwickleraccount/Konsole Anmeldeinformationen nicht gestohlen wurden)
Vielleicht würde das größte/einzige Risiko würde entstehen, wenn jemand App unterzeichnet mit dem gestohlenen Release-Schlüssel würde in der Lage, direkter Zugriff auf Daten meiner App (auf den Geräten der Nutzer).

+0

CommonsWare zu verwenden gibt die r esult, aber wenn Sie die Mechanik kennen wollen, sehen Sie sich die Verschlüsselung mit dem privaten/öffentlichen Schlüssel an. Sie verteilen den öffentlichen Schlüssel durch Signieren, der dann verwendet wird, um festzustellen, ob eine neue Version von einem Besitzer des privaten Schlüssels stammt. – NameSpace

Antwort

3

Sie können Ihr APK (öffentlich lesbar auf allen Android-Geräten) abrufen, ändern (z. B. Malware hinzufügen), signieren und verteilen. Unter der Annahme, dass sie die stoßen, wird jeder, der versucht, ihre gehackte Version Ihrer App zu installieren, erfolgreich sein, aus Sicht von Android ist es ein gültiges Upgrade. Wenn der Hacker Ihre Anmeldeinformationen für Ihren Vertriebskanal abrufen kann (z. B. Ihr Google-Konto für den Play Store kompromittieren), kann er das Update an alle Ihre Nutzer senden.

Oder sie können ihre eigene separate APK erstellen und sie mit Ihrem Signaturschlüssel signieren. Jetzt sind Ihre App und ihre mit demselben Schlüssel signiert. Das eröffnet andere Angriff Alleen bis:

  • Wenn Sie android:sharedUserId verwendet werden, können sie an allen App-Dateien auf internen Speichern erhalten, die von anderen Anwendungen normalerweise geschützt ist (außerhalb von verwurzelten Geräten)

  • wenn Sie die Berechtigungen mit einem signatureprotectionLevel verwendet werden, können ihre App die gleichen Berechtigungen halten und vielleicht mit Ihrer App in einer Weise interagieren, die Sie wurden nur Ihre eigene Suite von Anwendungen erwarten

+0

Auch ohne den Freigabeschlüssel könnten sie das gleiche tun, das heißt, sie könnten das APK immer noch erfassen, sie könnten es modifizieren (Malware) und sie könnten es neu verteilen, unter Verwendung eines neu erzeugten Freigabeschlüssels. Wo wurde die Situation schlimmer? Um sie sinnvoll zu verteilen, würden sie mein Google Developer Console-Konto trotzdem gestohlen haben. – humanityANDpeace

+0

@humanityANDpeace: Android hält es nicht für ein Upgrade für bestehende App-Nutzer. Wenn der Hacker also Ihre Verteilungsdaten erhalten hat, konnte er kein Update an alle Benutzer verteilen. Stellen Sie sich eine Zwei-Faktor-Authentifizierung für die Verteilung von App-Updates vor: Ein Angreifer benötigt etwas, das Sie haben (Ihren Release-Keystore) und etwas, das Sie kennen (z. B. die Anmeldedaten Ihres Google-Kontos). – CommonsWare

+0

Ja, es gibt ein wenig Sinn zu sehen (zwei Faktoren), und auch der Punkt beim Zugriff auf App-Interna (d. H. Das Teilen von Zugriffen zwischen Apps mit demselben Release-Schlüssel) macht den Release-Schlüssel nicht völlig sinnlos. – humanityANDpeace

Verwandte Themen