Extrahieren von raw-X. 509-Zertifikat von einer signierten APK oder JAR
Habe ich eine Bibliothek von MD5-hashes der öffentlichen Schlüssel, die zum signieren von verschiedenen Gläsern, und eine Zuordnung zu Ihrer jeweiligen keystores, die wir verwenden, zu Unterschreiben verschiedenen APKs. Was möchte ich tun können, ist identifizieren Sie die keystore zum signieren einer APK, aber ohne Verwendung von Versuch und Irrtum. (Auch, leider, viele unserer Schlüssel teilen ähnliche oder identische DNs.)
Meine Lösung, denn ich kenne das META-INF/FOO.RSA (oder FOO.DSA) das Zertifikat enthält, war zu extrahieren Sie das Zertifikat aus der APK-s RSA-Datei und direkt ermitteln des MD5-hash. (Ich weiß, das Zertifikat ist da, weil es ist zugänglich für eine android-Anwendung, und das jarsigner-Dokumentation sagt mir, es ist da.)
Aber ich finde keine tool, das gibt mir die tatsächlichen bytes der Bescheinigung. Ich kann die DN und die Metadaten des Zertifikats, wenn ich jarsigner -verbose -verify -certs my.apk
, aber nicht, dass mir die bytes.
InformationsquelleAutor Jeff DQ | 2012-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Extrahieren Sie die JAR-dann verwenden Sie "openssl" zur Ausgabe des Zertifikats:
Vorausgesetzt 'foo.jar" ist in Ihrem aktuellen Verzeichnis, ist etwas wie:
FOO.RSA
zuFOO.p7b
und doppelklicken Sie auf es. Windows hat eine eingebaute Werkzeug zum Lesen der PKCS #7-Datei.InformationsquelleAutor frederikdebacker
Hexdump FOO.RSA. Die letzten n bytes der Signatur selbst, wo n hängt von der Schlüssellänge (z.B. 1024 bit RSA). Wenn Sie etwas Unterschreiben, zweimal mit dem gleichen key, können Sie diff .RSA-Dateien und sehen, dass nur die letzten n bytes ändern; der statische Teil der Datei wird die cert und die bits, die sich ändern sind die Signatur der hash-Wert von FOO.sf. Es kann ein Trennzeichen zwischen dem cert und Unterschrift, dass würde Sie auch entfernen müssen.
InformationsquelleAutor Jeremy