APK-Signaturen überprüfen: So stellen Sie sicher, dass Ihre App sicher ist
Das Querladen von Apps auf Android bietet Freiheit und Flexibilität, birgt jedoch ein großes Risiko: manipulierte Anwendungen. Böswillige Akteure modifizieren häufig beliebte Apps so, dass sie Spyware oder Adware enthalten, bevor sie sie auf inoffiziellen Websites weiterverbreiten. Wie können Sie sicher sein, dass die APK, die Sie gerade heruntergeladen haben, genau dieselbe ist, die der Entwickler auf Google Play hochgeladen hat?
Die Antwort lautet Digitale APK-Signaturen. Im Folgenden erläutern wir, wie die App-Signierung tatsächlich funktioniert, und führen Sie durch die Verwendung unseres Online-APK-Verifizierer, um den Hash und das Zertifikat eines APK zu überprüfen, bevor Sie sich entscheiden, ihm zu vertrauen.
Die 60-Sekunden-Version:
Android signiert jedes APK mit einem Herausgeberschlüssel. Das Telefon lehnt ein „Update“ ab, dessen Signatur nicht mit der vorhandenen Installation übereinstimmt; Das ist der Hauptschutz des Betriebssystems gegen Identitätsdiebstahl. Um ein seitlich geladenes APK zu verifizieren, berechnen Sie seinen SHA-256-Hash und seinen Signaturzertifikat-Fingerabdruck und vergleichen Sie dann beide mit Werten, denen Sie vertrauen (der vorhandenen Play Store-Installation, dem veröffentlichten Fingerabdruck des Entwicklers oder einer bekanntermaßen funktionierenden früheren Kopie). Eine Übereinstimmung bedeutet, dass die Datei byteidentisch und vom selben Herausgeber signiert ist; Eine Nichtübereinstimmung bedeutet nicht installieren.
Was ist eine APK-Signatur?
Eine digitale Signatur ist ein kryptografischer Identitätsnachweis. Wenn ein Entwickler eine App fertigstellt, „signiert“ er sie mit einem privaten Schlüssel (Keystore). Android verwendet dann den entsprechenden im APK eingebetteten öffentlichen Schlüssel, um Folgendes sicherzustellen:
- Integrität: Die Datei wurde seit dem Signieren nicht geändert.
- Authentizität: Der Entwickler ist der, für den er sich ausgibt.
- Aktualisierungen: Nur APKs, die mit demselben Schlüssel signiert sind, können eine vorhandene App auf Ihrem Telefon aktualisieren.
Entwicklung des Signierens: V1, V2, V3 und V4
Google hat die APK-Sicherheit im Laufe der Jahre kontinuierlich verbessert:
- V1 (Jar-Signierung): Signiert einzelne Einträge im ZIP. Langsam und anfällig für bestimmte Angriffe.
- V2 (APK-Signaturschema): Signiert den gesamten Dateiblock. Viel schneller zu überprüfen und sicherer. (Android 7.0+)
- V3 (Schlüsseldrehung): Ermöglicht Entwicklern, ihren Signaturschlüssel zu ändern und gleichzeitig App-Updates aufrechtzuerhalten. (Android 9.0+)
- V4 (Streaming): Optimiert für inkrementelle Installationen über ADB. (Android 11+)
So überprüfen Sie APK-Signaturen online
Unser APK-Verifizierungstool berechnet nicht nur Hashes; Es führt eine vollständige kryptografische Prüfung der Zertifikatskette durch. So verwenden Sie es:
Schritte zur Überprüfung:
- Navigieren Sie zur Seite APK-Verifizierer.
- Wählen Sie Ihre APK- oder XAPK-Datei aus.
- Unser Tool analysiert das META-INF/-Verzeichnis und extrahiert die Zertifikatsdaten (.RSA, .DSA oder .EC).
- Warten Sie, bis die Analyse abgeschlossen ist (es dauert nur Sekunden).
- Überprüfen Sie Zertifikatsinformationen: Entwicklername, Organisation und Herkunftsland.
- Überprüfen Sie den Hashes: Vergleichen Sie den auf unserer Website angezeigten SHA-256 mit dem Wert, den der Herausgeber auf seiner eigenen offiziellen Website, Projektfreigabeseite oder Signaturmanifest veröffentlicht hat.
Sicherheitswarnung
Wenn der Prüfer ein „Debug-Zertifikat“ oder eine unbekannte „selbstsignierte“ Entität für eine große App wie Facebook oder WhatsApp anzeigt, INSTALLIEREN SIE ES NICHT. Es ist mit ziemlicher Sicherheit kompromittiert.
Prüfsummen verstehen (MD5, SHA-1, SHA-256)
Prüfsummen sind Zeichenfolgen fester Länge, die die gesamte Datei darstellen. Wenn Sie ein einzelnes Pixel im Symbol einer App ändern, ändert sich der SHA-256-Hash vollständig.
| Hash-Typ | Sicherheitsstufe | Notizen |
|---|---|---|
| MD5 | Vermächtnis | Anfällig für Kollisionen. Nicht aus Sicherheitsgründen. |
| SHA-1 | Mäßig | Wird immer noch häufig für schnelle Suchvorgänge verwendet. |
| SHA-256 | Exzellent | Der moderne Standard für die App-Verifizierung. |
Was Ihnen ein Signaturzertifikat tatsächlich sagt
Wenn der Verifizierer ein Zertifikat zurückgibt, sind die Teile, die für die Sideloading-Sicherheit von Bedeutung sind, nicht die bunten Teile der X.509-Metadaten, sondern eine kleine Handvoll Felder. In der Praxis:
- SHA-256-Fingerabdruck des Zertifikats. Dies ist der wichtigste Einzelwert: ein 64-Hex-Zeichen-Hash, der den Signaturschlüssel eindeutig identifiziert. Zwei APKs mit demselben SHA-256-Fingerabdruck wurden mit demselben privaten Schlüssel signiert. Das bedeutet „Signaturkontinuität“ in der Update-Logik des Betriebssystems.
- Distinguished Name des Betreffs. Oft so etwas wie CN=Some App, O=Example Inc., C=US. Nützlich als Hinweis, nicht als Identitätsnachweis, da ein Angreifer jede beliebige Zeichenfolge in den DN seines eigenen selbstsignierten Zertifikats einfügen kann. Überprüfen Sie immer den Fingerabdruck, nicht den Namen.
- Gültigkeitsdauer. Die meisten legitimen Veröffentlichungsschlüssel werden mit einer Gültigkeit von ca. 25 Jahren generiert (die historische Empfehlung liegt bei 10.000 Tagen). Ein Zertifikat, das nächsten Monat abläuft oder dessen Gültigkeit sich bereits mit der Vergangenheit überschneidet, ist ein Warnsignal.
- Signaturalgorithmus. Moderne Apps verwenden SHA256withRSA oder SHA256withECDSA. MD5 ist kaputt; SHA1withRSA ist veraltet. Eine nur mit v1/SHA-1 signierte APK ist im Jahr 2026 verdächtig.
Hash vs. Signatur: Der Unterschied, den die meisten Tutorials überspringen
Menschen verwechseln oft „Hash“ und „Signatur“. Sie dienen ganz unterschiedlichen Zwecken und eine sichere Verifizierung erfordert beides:
- Ein Hash (SHA-256 des gesamten APK) sagt Ihnen, ob die Bytes der Datei mit einer Referenzkopie identisch sind. Wenn Ihr Hash mit dem veröffentlichten Hash des Herausgebers übereinstimmt, wurde die Datei seit der Berechnung dieses Hashs nicht geändert. Ein Hash-Check allein sagt nichts darüber aus, wer die Bytes erstellt hat.
- Ein Unterschrift beweist, wer die Bytes erstellt hat, insbesondere, dass der Inhaber des privaten Schlüssels gepaart mit dem Signaturzertifikat diese Datei erstellt hat. Eine Signaturprüfung allein sagt nichts darüber aus, ob die Datei nach dem Signieren manipuliert wurde (das Betriebssystem erkennt dies und lehnt es ab, aber das Zertifikat selbst „weiß“ nichts über den Dateiinhalt).
Bei einem seitlich geladenen APK kombiniert die stärkste Sicherheit beides: Der Zertifikat-Fingerabdruck stimmt mit dem bekannten Fingerabdruck des Herausgebers überein Und Der SHA-256 der Datei stimmt mit dem Wert überein, den der Herausgeber für genau diesen Build veröffentlicht hat.
Wo Sie einen vertrauenswürdigen Referenz-Fingerabdruck erhalten
Der schwierigste Teil der Verifizierung besteht darin, den richtigen Vergleichswert zu ermitteln. Einige zuverlässige Ansätze, grob nach Vertrauen geordnet:
- Die eigene Website oder Veröffentlichungsseite des Herausgebers. Viele Open-Source-Projekte und sicherheitsbewusste Anbieter veröffentlichen neben ihren Downloads den SHA-256-Fingerabdruck ihres Signaturzertifikats. Das ist der Goldstandard.
- Eine vorhandene Play Store-Installation. Wenn die App bereits auf einem von Play verwalteten Gerät installiert ist, ist ihr Zertifikatsfingerabdruck per Definition der Fingerabdruck des Herausgebers. Vergleichen Sie den Fingerabdruck Ihrer seitlich geladenen APK damit. Tools wie Apk Analyzer (in Android Studio) oder apksigner verify --print-certs lesen es direkt aus einer installierten APK.
- Die erste APK, die Sie jemals von dieser App installiert haben. Wenn Sie die App schon länger verwenden und nie die Meldung „Signaturkonflikt“ erhalten haben, können Sie eine Ihrer älteren Kopien als Referenz verwenden. Nachfolgende Updates desselben Herausgebers müssen denselben Schlüssel verwenden (oder über Version 3 rotieren, wobei die Kette in diesem Fall weiterhin überprüft).
- Ein archivierter öffentlicher Schnappschuss. Das Internetarchiv und ähnliche Dienste bewahren gelegentlich alte APK-Veröffentlichungsseiten zusammen mit ihren deklarierten Hashes auf. Nützlich für sehr alte Builds, bei denen die ursprüngliche Herausgeberseite nicht mehr vorhanden ist.
Häufige Verifizierungsfehler
- Vergleich des falschen Feldes. „MD5 der APK-Datei“ ist nicht dasselbe wie „MD5 des Zertifikats“. Verwenden Sie für die Kandidatendatei und die Referenz das gleiche Feld.
- Den eigenen Metadaten der Datei vertrauen. Ein APK kann jede Versionszeichenfolge, jede Paketbezeichnung und jedes Autoren-Tag in seinem Manifest enthalten. Keines davon ist kryptografisch. Der Signaturblock ist das Einzige, was das Betriebssystem tatsächlich überprüft.
- Die Überprüfung wird übersprungen, da die Datei von einem Freund gesendet wurde. Ein Freund, der sagt: „Dies ist die offizielle APK“, hat sie genauso wenig überprüft wie Sie. Bestehen Sie auf einer Quelle, die einen Fingerabdruck veröffentlicht, den Sie überprüfen können.
- Ein übereinstimmendes Feld wird als ausreichend behandelt. Übereinstimmung sowohl mit dem SHA-256-Fingerabdruck der Datei als auch mit dem SHA-256-Fingerabdruck des Zertifikats; Eine Übereinstimmung mit dem einen, aber nicht mit dem anderen ist ein Zeichen dafür, dass die Bytes geändert wurden oder die Quelle sich als Herausgeber ausgibt.
- Deaktivieren Sie Play Protect aus „Bequemlichkeitsgründen“. Play Protect ist ein Zweitmeinungsscanner und kein Ersatz für die Signaturüberprüfung. Er fängt jedoch tatsächliche Malware ab, die bei der Signaturüberprüfung nicht möglich ist, da Protect bekanntermaßen fehlerhafte Pakete anhand des Inhalts und nicht anhand des Signaturschlüssels erkennt. Lass es an.
Ist Ihre App sicher?
Raten Sie nicht. Überprüfen Sie Ihre seitlich geladenen APKs in Sekundenschnelle anhand offizieller Entwicklerzertifikate.
Starten Sie die APK-VerifizierungHäufig gestellte Fragen (FAQ)
Warum blockiert Android die Installation einer modifizierten APK?
Weil die Signatur des neuen APK nicht mit der bereits installierten übereinstimmt. Dies verhindert, dass Hacker Ihre echte Banking-App mit einer gefälschten „überschreiben“.
Kann ich ein APK erneut signieren, nachdem ich es geändert habe?
Ja, aber Sie werden ein anderer Schlüssel verwenden. Die App wird weiterhin auf einem „sauberen“ Telefon installiert, erhält jedoch keine Updates mehr vom ursprünglichen Entwickler.
Was ist Zertifikat-Pinning?
Dabei handelt es sich um eine erweiterte Sicherheitsfunktion, bei der eine App explizit nach einem bestimmten Zertifikat sucht, bevor sie mit ihren Servern kommuniziert, wodurch manipulierte Apps selbst bei korrekter Installation unbrauchbar werden.
Machen Sie die Signaturüberprüfung zu einem Teil jedes Sideloads
Signaturen leisten bei der modernen Android-Sicherheit einen großen Beitrag. Wenn Sie die zusätzlichen Sekunden aufwenden, um eine Datei über einen APK-Verifizierer auszuführen, können Sie eine manipulierte App kostengünstig von Ihrem Gerät fernhalten, bevor sie überhaupt installiert wird.