Zusammenfassung: Diese Anleitung richtet sich an IT-Administratoren, die die gebrandete Android-App ihrer Organisation selbst verteilen, beispielsweise über Mobile Device Management (MDM). Sie erklärt, wie Sie die digitale Signatur einer APK- oder AAB-Datei von Speakap mit unseren offiziellen Zertifikat-Fingerprints abgleichen, damit Sie sicherstellen können, dass die Datei authentisch und unverändert ist.
Warnung zur Verwendung: Verwenden Sie diese Anleitung nur, wenn Sie die Verteilung Ihrer App selbst übernehmen (zum Beispiel über MDM, einen sicheren Dateifreigabedienst oder einen privaten Enterprise App Store). Dies gilt nicht für Apps, die direkt von Speakap im Google Play Store veröffentlicht werden, da Google diesen Auslieferungsweg vollständig verwaltet.
Warum überprüfen?
Wenn wir eine App über den Google Play Store verteilen, können wir garantieren, dass die App-Datei, die Nutzer erhalten, genau die ist, die wir erstellt haben. Wenn wir die Verteilung nicht vollständig kontrollieren, ist es technisch möglich, dass eine App-Datei verändert wird, bevor sie Sie oder Ihre Nutzer erreicht.
Um dies zu verhindern, signieren wir alle unsere Builds mit eigenen Zertifikaten. Wenn die Signatur einer App mit unserer übereinstimmt, garantiert das ihre Integrität und Echtheit: Sie wurde von uns erstellt und danach nicht verändert.
Wir stellen unsere öffentlichen Fingerprints frei zur Verfügung, sodass Sie jede von uns erhaltene App-Datei mit einem einfachen Kommandozeilen-Tool überprüfen können. Möglicherweise haben Sie bessere Möglichkeiten, dies automatisch in Ihren eigenen Systemen zu tun, und wir empfehlen Ihnen, die für Sie beste Lösung zu verwenden.
Schritt 1: Holen Sie sich das Kommandozeilen-Tool
Je nach Dateityp benötigen Sie entweder das apksigner oder das keytool Kommandozeilen-Tool von Google.
Schritt 2: Führen Sie den Befehl aus
Öffnen Sie Ihr Terminal und führen Sie den Befehl für Ihren Dateityp aus.
Für eine APK-Datei:
apksigner verify --print-certs your-app.apk
Für eine AAB-Datei:
keytool -printcert -jarfile your-app.aab
Hinweis: Wie bei jedem Kommandozeilen-Tool müssen Sie entweder das Tool zu Ihrem PATH hinzufügen oder den vollständigen Pfad zum Tool beim Ausführen des Befehls angeben.
Schritt 3: Vergleichen Sie die Werte mit den offiziellen Speakap-Zertifikaten
Prüfen Sie die Ausgabe des Befehls und vergleichen Sie die Fingerabdruck-Werte mit den unten stehenden offiziellen Signaturen. Wir verwenden zwei Zertifikate, und Ihre APK/AAB wird mit einem von ihnen signiert. Sie sollten exakt die gleichen Werte wie einer der folgenden erhalten.
Zertifikat 1
- SHA-256: 49:0B:36:AD:7E:A8:7C:CF:C6:45:B1:DB:5A:66:0D:9F:FE:3F:E8:03:4C:81:48:4B:23:C7:3C:4F:44:96:A6:40
- SHA-1: 5F:51:D8:79:F7:02:FE:5D:A6:C2:3E:8D:12:52:4A:31:8C:FE:95:D3
- MD5: 40:51:CE:2F:CD:64:F9:A7:CF:52:3E:03:65:AB:CD:D1
Zertifikat 2
- SHA-256: 15:5D:46:AE:9D:32:A0:0C:2E:25:4F:B5:60:4E:DD:DC:EC:15:B2:0D:80:66:1F:EF:91:54:23:7C:9D:F3:9C:A6
- SHA-1: 39:67:BE:F6:BC:CC:69:9B:58:A0:2B:A4:C2:E1:75:E1:42:E9:D4:E2
- MD5: 53:EE:BB:72:94:3D:32:20:8F:AA:C4:D8:1C:89:26:F1
Beispielausgaben der Befehle
Zur Unterstützung bei der Überprüfung sehen Sie hier, wie eine erfolgreiche Ausgabe für beide Dateitypen aussieht.
Ausgabe für eine mit Zertifikat 1 signierte APK-Datei:
Signer #1 certificate DN: CN=Patrick van der Mijl, OU=Speakap, O=Speakap, L=Amsterdam, ST=Noord-Holland, C=NL
certificate SHA-256 digest: 490b36ad7ea87ccfc645b1db5a660d9ffe3fe8034c81484b23c73c4f4496a640
certificate SHA-1 digest: 5f51d879f702fe5da6c23e8d12524a318cfe95d3
certificate MD5 digest: 4051ce2fcd64f9a7cf523e0365abcdd1
Ausgabe für eine mit Zertifikat 2 signierte AAB-Datei:
Owner: CN=Patrick van der Mijl, O=Speakap, C=NL
Issuer: CN=Patrick van der Mijl, O=Speakap, C=NL
Serial number: 2999e34b
Certificate fingerprints:
SHA1: 39:67:BE:F6:BC:CC:69:9B:58:A0:2B:A4:C2:E1:75:E1:42:E9:D4:E2
SHA256: 15:5D:46:AE:9D:32:A0:0C:2E:25:4F:B5:60:4E:DD:DC:EC:15:B2:0D:80:66:1F:EF:91:54:23:7C:9D:F3:9C:A6
Wo Sie apksigner und keytool finden
Diese Werkzeuge sind Teil des standardmäßigen Android SDK und der JRE.
Standardpfade auf dem Mac:
- apksigner: /Users/user/Library/Android/sdk/build-tools/xx.x.x/apksigner
- keytool (Android Studio): /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/keytool
- keytool (Java): /Users/user/Library/Java/JavaVirtualMachines/jbr-xx.x.xx/Contents/Home/bin/keytool
Offizielle Dokumentation und Downloads:
- apksigner Referenz: https://developer.android.com/tools/apksigner
- Download Kommandozeilen-Tools: https://developer.android.com/studio#downloads
- keytool Referenz: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
Häufig gestellte Fragen
Warum muss ich die App-Datei selbst überprüfen?
Wenn Sie die App über Ihr eigenes MDM oder einen Dateifreigabedienst verteilen, umgehen Sie die eingebauten Prüfungen des Google Play Stores. Der Abgleich der Zertifikat-Fingerprints bestätigt, dass die Datei von Speakap erstellt wurde und auf dem Weg zu Ihnen nicht verändert wurde.
Was soll ich tun, wenn die Werte mit keinem der Zertifikate übereinstimmen?
Verteilen Sie die Datei nicht an Ihre Mitarbeitenden. Wenn die Fingerprints nicht exakt mit den offiziellen Speakap-Werten übereinstimmen, kann die Integrität der Datei nicht bestätigt werden. Legen Sie die Datei beiseite und kontaktieren Sie uns unter technicalimplementations@speakap.nl für einen frischen Build.
Kann ich eine .aab-Datei mit apksigner überprüfen?
Nein. Das Tool apksigner funktioniert nur mit .apk-Dateien. Für eine .aab-Datei verwenden Sie wie in Schritt 2 gezeigt das Java-Tool keytool.
Immer noch Probleme?
Schreiben Sie uns eine E-Mail an technicalimplementations@speakap.nl mit dem Dateinamen, dem genauen Befehl, den Sie ausgeführt haben, und der erhaltenen Ausgabe, und wir helfen Ihnen weiter.