2010-12-01 21 views
33

Ich muss sehen, wer die Anwendung signierte, die ich auf meinem Gerät installiert habe. Ist dies generell am Gerät oder am PC möglich?Wie kann ich die Identität der Person anzeigen, die die App auf Android-Geräten signiert hat?

+0

Nun verwenden, nicht jede App hat About-Seite, nicht wahr? Außerdem kann ich als Entwickler der App alles auf der About-Seite schreiben, die nicht mit den Informationen im Zertifikat übereinstimmt, mit dem ich die App signiert habe ... –

+0

Auf Android können Sie mit PackageManager alle Apps auflisten und den X509 erhalten Signaturzertifikat, siehe [link] http://stackoverflow.com/a/16305427/2225646. Es gibt auch eine kostenlose App in Google Play: Indenile Signature. – Yojimbo

Antwort

54

(vorausgesetzt, Sie können Zugriff auf die rohe apk-Datei bekommen - was Sie normalerweise können, wenn Sie wissen und schätzen Sie seinen Namen und Standort, obwohl Sie nicht den Inhalt von/Daten auf einer nicht auflisten können -bewurzelte Telefon)

Sie konnten die apk als Zip-Datei öffnen und den ASCII-Text aus dem binären Inhalt des META-INF/CERT.RSA

oder mit einem tatsächlichen Werkzeug filtern,

jarsigner -verify -certs -verbose some_application.apk 

Natürlich ist der einzige Weg zu überprüfen, ob der Unterzeichner ist, wer er ist etwas anderes mit demselben Schlüssel von dieser Partei über direkte oder verifizierte Mittel signieren und die Fingerabdrücke der Signierungsschlüssel vergleichen - so überprüft Android selbst, dass App-Upgrades und App-ID-Sharing von der gleichen Partei kommen wie die APK, auf die sie abzielen.

+0

Danke für den Hinweis! Vielleicht wissen Sie auch, wie Sie dasselbe Ziel nur mit dem Gerät erreichen können? Meine Identität mag für Endanwender meiner Anwendung wichtig sein, aber sie sind normalerweise zu faul, um Manipulationen am PC durchzuführen .... –

+2

Ich wäre nicht überrascht, wenn Jarsigner in Java implementiert wäre, also könnte man es wahrscheinlich auf Android portieren. Der erste Vorschlag zum Extrahieren des ASCII-Texts durch Herausfiltern der nicht druckbaren Dateien ist jedoch möglicherweise einfacher. Aber wenn dies Ihre Anwendung ist, was ist der Sinn? Wenn der Benutzer Ihrem Code vertraut, um die Unterzeichnerinformationen zu extrahieren, vertrauen Sie vermutlich auch Ihrem About-Bildschirm. Beachten Sie auch, dass das Extrahieren der Unterzeichnerinformationen nicht beweist, dass diese Entität sie wirklich signiert hat. Sie müssten beweisen, dass das verwendete Zertifikat ihnen gehört. –

+0

Running jarsigner auf einer apk von Google veröffentlicht (scheinbar) gibt (viele) diese Nachrichten: 'X.509, CN = Android, OU = Android, O = Google Inc., L = Mountain View, ST = Kalifornien, C = US [Zertifikat ist gültig vom 22-08-08 01:13 bis 08-01-36 00:13] [CertPath nicht validiert: Pfad kettet nicht mit einem der Vertrauensanker] '. Wie erhalte ich das Google-Zertifikat, um zu bestätigen, dass es sich wirklich um den Unterzeichner handelt? (Ich denke, es ist wichtig, diese Antwort hinzuzufügen, aber lassen Sie es mich wissen, wenn Sie möchten, dass ich eine separate Frage stelle.) – mgd

Verwandte Themen