APK Signature Scheme v3 bietet Unterstützung für die Schlüsselrotation

APK Signature Scheme v3 wurde im Android Open Source Project entdeckt und scheint die Schlüsselrotation zu unterstützen.

Wenn Sie Entwickler sind oder in irgendeiner Weise mit dem Dekompilieren, Ändern und/oder Installieren modifizierter APK-Dateien vertraut sind, sind Sie wahrscheinlich mit Anwendungssignaturen vertraut. Um es einfach auszudrücken: Android erfordert eine App muss mit demselben Schlüssel signiert sein, damit das System die Aktualisierung der betreffenden App zulässt. Android überprüft dies, indem es die APK-Signatur überprüft.

APK-Signaturen sind eine sehr grundlegende Sicherheitsmaßnahme in Android, über die wir bereits gesprochen haben. Grundsätzlich sind alle Signaturen für einen bestimmten Entwickler oder eine bestimmte Gruppe von Entwicklern eindeutig. Wenn also die Signatur/das Zertifikat in einem APK ungültig ist oder nicht mit der Original-App übereinstimmt, schlägt die Installation fehl und verhindert so die Installation manipulierter oder gefälschter APK-Dateien auf Ihrem Android Gerät. Auch Signaturschlüssel müssen vom Entwickler sicher aufbewahrt werden, da sie für die Überprüfung und eventuelle Veröffentlichung eines App-Updates von entscheidender Bedeutung sind. Glücklicherweise erhält das Signaturschema zum Signieren von APKs eine weitere Überarbeitung – Version 3 – die anscheinend eine praktische Funktion hinzufügt und gleichzeitig hohe Sicherheitsstandards beibehält.


APK-Signaturschema v1 und v2

Es ist noch nicht allzu lange her, dass die aktuelle Version des APK Signature Scheme, v2, wurde für Entwickler freigegeben. Schließlich wurde es uns mit der Einführung von Android 7.0 Nougat Ende 2016 kaum vorgestellt. Die Verwendung des v2-Signaturschemas in Android 7.0+-Apps wurde dringend empfohlen, da es eine Reihe wichtiger Patches und mit sich brachte Sicherheitsverbesserungen: Während v1 nur das JAR signierte, unternimmt v2 zusätzliche Schritte zum Schutz der Integrität des Ganzen Datei. Signaturschemata sind jedoch nicht abwärtskompatibel und Android Marshmallow und niedriger erfordern v1-Signaturen für Apps.

APK-Validierungsprozess. Quelle: Google.

Sofern Sie sich nicht speziell an Benutzer von Nougat oder höher richten, besteht das ideale Szenario darin, beide Signaturschemata nebeneinander zu verwenden, indem Sie zuerst mit Version 1 signieren und dann mit Version 2 aufhören. Auf diese Weise erkennen Nougat und höher die v2-Signatur, während Marshmallow und niedriger die v1-Signatur erkennen.

Von der ausschließlichen Verwendung von Version 1 wird jedoch aufgrund einer Reihe von Schwachstellen und anderen Sicherheitsproblemen, von denen das bemerkenswerteste ist, dringend abgeraten die Janus-Schwachstelle, was es Angreifern ermöglicht, APKs direkt anzugreifen und zu ändern, ohne die Signaturen zu beeinträchtigen. Beliebte Apps mit seltenen Updates wie Instagram oder Snapchat sind nur mit v1-Signaturen signiert und daher anfällig für diese Probleme.

Überprüfung der APK-Signaturversionen beliebter Social-Media-/Zahlungs-Apps.

APK-Signaturschema v3

Das größte Hauptmerkmal von Version 3, die als Überarbeitung von Version 2 gedacht ist, wird sein Unterstützung der Schlüsseldrehung. Der v3-Signaturschema stellt die APK Signer Lineage vor, die laut einer der Commits, „enthält eine Historie der Unterzeichnung von Zertifikaten, wobei jeder Vorfahre die Gültigkeit seines Nachkommen bescheinigt. Jeder weitere Nachkomme stellt eine neue Identität dar, die zum Signieren eines APK verwendet werden kann. Auf diese Weise enthält die Abstammungslinie einen Rotationsnachweis, mit dem die APK, die sie enthält, anderen gegenüber nachweisen kann Parteien, seine Fähigkeit, sein aktuelles Signaturzertifikat anzuvertrauen, als ob es von einem seiner älteren signiert wäre Einsen."

Die Schlüsselrotation ist in mehrfacher Hinsicht eine großartige Funktion für Entwickler. Dies kann zunächst für Entwickler in Teams nützlich sein, die an einer einzelnen App arbeiten, sodass Entwickler ihre Signaturschlüssel nicht mit dem Team teilen müssen. Da die App für die Aktualisierung dieselbe exakte Signatur benötigt, müssen derzeit alle Apps vom selben Entwickler oder einer Gruppe von Entwicklern kompiliert werden Entwickler arbeiten mit demselben Schlüssel, was die Sicherheit verringert (es besteht ein höheres Risiko, dass der Schlüssel gestohlen wird) und die Entwicklung verlangsamt.

Darüber hinaus kann es auch nützlich sein, wenn einem Entwickler der Signaturschlüssel gestohlen wird oder verloren geht würde normalerweise bedeuten, dass die App unter einem anderen Paket erneut in den Play Store hochgeladen werden müsste Name. Dies ist überhaupt kein ungewöhnlicher Fall, da offenbar sogar Google vor langer Zeit den Signaturschlüssel für die Google Authenticator-App verloren hat, was dazu führte, dass sie es unter einem anderen Paketnamen erneut veröffentlichten. Seitdem stellt Google Möglichkeiten zur sicheren Speicherung Ihrer Signaturschlüssel in der Cloud bereit Signieren von Google Play-Apps, aber die Schlüsselrotation würde es Ihnen ermöglichen, Ihre App im Falle eines hypothetischen Fehlers weiter zu aktualisieren.

Wann kommt es?

Auch wenn Sie es wegen der zusätzlichen Bequemlichkeit vielleicht gerne ausprobieren würden, wurde das v3-Signaturschema im AOSP entdeckt Die Gerrit Code Review-Site und die Commits selbst wurden derzeit noch nicht in den Hauptzweig integriert, daher ist sie noch nicht fertig noch. Wir sollten damit rechnen, dass das v3-Signaturschema mit der kommenden Version von Android P in die Hände der Entwickler gelangt, wenn uns die vorherige v2-Version mit Android Nougat etwas verrät.

Wir sollten auch beachten, dass die Schlüsselrotation höchstwahrscheinlich nicht der einzige Unterschied zu Version 2 ist. APK Signature Scheme v3 ist noch in Arbeit, daher werden wir die tatsächlichen Verbesserungen des v3-Signaturschemas sehen, wenn die vollständige Dokumentation dafür in Zukunft erscheint.