Sie fragen sich wahrscheinlich, warum wir eine APK signieren sollten? Eine digitale Signatur ist eine Methode zum Nachweis der Authentizität einer digitalen Datei, beispielsweise eines Dokuments, einer ausführbaren Datei oder in diesem Fall einer APK, die lediglich eine Sammlung von Dateien ist. Wir können praktisch garantieren, dass jeder, der eine APK verwendet, eine überprüfbare Kopie der Datei erhält, die er durch die Signierung der APK erwartet hat. Da niemand sonst diese Datei ändern kann, während die Signatur erhalten bleibt, bietet dies klare Sicherheitsvorteile.
Um dies zu erreichen, integrieren wir PKCS # 11 Bibliotheken, die es uns ermöglichen, durch das Speichern von Schlüsseln eine erhöhte Sicherheit zu nutzen Hardware-Sicherheitsmodule (HSMs) oder eine Art Schlüsseltresor. Dieser Artikel führt Sie durch den Prozess der Verwendung von APKSigner mit unserem (Encryption Consulting) PKCS#11 Wrapper auf Ubuntu und MacOS für Ihre APK-Signaturvorgänge.
Übersicht über die PKCS#11-Integration
Bei APK-Signaturvorgängen spielen PKCS#11-APIs eine sehr wichtige Rolle. PKCS#11 ist ein sehr bekannter und weit verbreiteter Standard API Dadurch kann Software reibungslos mit HSMs interagieren. Durch die Integration von PKCS#11 in APKSigner können Sie oder Ihre Entwickler Android-APKs signieren und gleichzeitig sicherstellen, dass die privaten Schlüssel niemals eine sichere Umgebung (HSMs) verlassen. So sind Ihre Schlüssel vor möglichen Online-Bedrohungen geschützt.
Der PKCS#11 Wrapper von Encryption Consulting bietet Ihnen ein Höchstmaß an Zuverlässigkeit und Vertrauen. Wir garantieren herausragende Leistung, nahtlose Integration und vor allem clientseitiges Hashing. Mit unserem PKCS#11 Wrapper können Sie:
- Schutz vor Schlüsselverlust: Die privaten Schlüssel Ihrer Organisation verlassen niemals das HSM. Alle kryptographisch Operationen werden direkt innerhalb des HSM durchgeführt.
- Hardwaregestützte Sicherheit: Alle Ihre Signaturvorgänge werden in manipulationssicherer Hardware durchgeführt, die sowohl physische als auch logische Sicherheit gewährleistet. Sie müssen jedoch die folgenden Bedingungen einhalten: CA/B-Foren Richtlinie vom Juni 2023 und verfügen Sie über ein FIPS 140-2 Level 2 HSM auf Ihrer Seite.
- Verbessertes Vertrauen für Ihre Anwendungen: Ihre signierten APKs erfüllen die Sicherheitsanforderungen von Android und stellen sicher, dass der Endbenutzer Vertrauen in die Integrität Ihrer Anwendung hat.
- Hochleistung Signieren mit clientseitigem Hashing: Unser PKCS#11 Wrapper unterstützt clientseitiges Hashing und stellt sicher, dass die Integrität Ihrer APK erhalten bleibt. Dies verbessert auch die Geschwindigkeit des Signiervorgangs drastisch und ist ideal für Hochdurchsatzszenarien in Ihrem Unternehmen wie CI / CD Rohrleitungen.
Konfiguration des PKCS#11-Wrappers unter Windows
Installation auf dem Client-System
Schritt 1: Gehen Sie zu EC CodeSign Secure v3.01 Signiertools Abschnitt und laden Sie den PKCS11 Wrapper für Windows herunter.

Schritt 2: Anschließend generieren Sie ein P12-Authentifizierungszertifikat aus dem System-Setup > Benutzer > Authentifizierungszertifikat generieren Dropdown-Liste.

Schritt 3: Gehen Sie zu Ihrem Windows-Clientsystem und bearbeiten Sie die Konfigurationsdateien (ec_pkcs11client.ini und pkcs11properties.cfg) im PKCS11-Wrapper heruntergeladen.



Voraussetzungen für das Windows-System
Installieren wir nun einige Voraussetzungen in Ihrem Clientsystem, um den PKCS11-Wrapper auszuführen.
Schritt 1: Installieren Sie Java 22 von Orakels offiziellen Site und folgen Sie den Anweisungen in der MSI-Datei.



Schritt 2: Legen Sie Java 22 als aktive Version fest, indem Sie den Bin-Pfad in der Variable PATH speichern.

Schritt 3: Installieren Sie die Android SDK-Befehlszeilentools über diesen Link werden auf dieser Seite erläutert.

Schritt 4:
- Extrahieren Sie die Dateien in einen Ordner „cmdline-tools“.
- Erstellen Sie einen Unterordner mit dem Namen neuesten.
- Bewegen Sie den Kasten und lib Ordner in den neuesten Ordner.

Schritt 5: Legen Sie eine Umgebungsvariable namens ANDROID_HOME fest und legen Sie sie auf den Pfad fest, in den Sie die Befehlszeilentools extrahiert haben.

Schritt 6: Installieren Sie Build-Tools mit SDKManager, das den APKSigner enthält: .\bin\sdkmanager –channel=0 –install “build-tools;34.0.0”

Schritt 7: Stellen Sie sicher, dass APKSigner vorhanden ist: Apksigner.bat –Version

Führen Sie die Signierung und Überprüfung mit dem PKCS11-Wrapper durch
Nachdem nun alle Konfigurationen und Voraussetzungen installiert wurden, führen wir zunächst den Signiervorgang durch.
Der Signierbefehl sieht ungefähr so aus (Stellen Sie sicher, dass Sie diesen Befehl nur in dem Ordner ausführen, in dem Ihr PKCS11-Wrapper installiert ist):
apksigner sign –provider-class sun.security.pkcs11.SunPKCS11 –provider-arg –ks KEINE –ks-Typ PKCS11 –ks-Pass Pass:abcd1234 –ks-Schlüsselalias -In -aus
Zum Beispiel: apksigner sign –provider-class sun.security.pkcs11.SunPKCS11 –provider-arg C:\Benutzer\riley\Downloads\PKCS11_Wrapper-Windows\pkcs11properties.cfg –ks NONE –ks-type PKCS11 –ks-pass pass:geheimesPasswort –ks-key-alias gpg2 –in Sample.apk –out signed.apk

Nachdem wir die APK erfolgreich signiert haben, überprüfen wir sie mit diesem Befehl:
apksigner überprüfen -verbose
Beispielsweise: apksigner verify -verbose signed.apk

Konfiguration des PKCS#11 Wrappers unter Ubuntu
Voraussetzungen:
Hier sind die Voraussetzungen für die Verwendung unseres PKCS#11 Wrappers in Ihrem System. Stellen Sie vor dem Start sicher, dass Folgendes bereit ist (Sie können sich auf die PKCS#11-WRAPPER KONFIGURIEREN Abschnitt für die Schritte):
- Ubuntu-Version: Ubuntu Version 22.04 oder höher (getestete Umgebung ist Ubuntu 24.02)
- Abhängigkeiten: Installieren Sie liblog4cxx-dev und curl.
- JDK: Oracle/OpenJDK 8 oder höher muss installiert und konfiguriert sein.
Installieren des PKCS#11-Wrappers von EC
Schritt 1: Gehe zu EC CodeSign Secure Version 3.01 Signiertools Abschnitt und laden Sie den PKCS#11 Wrapper für Ubuntu herunter.

Schritt 2: Anschließend generieren Sie ein P12-Authentifizierungszertifikat aus dem System-Setup > Benutzer > Authentifizierungszertifikat generieren Dropdown-Liste.

Schritt 3: Gehen Sie zu Ihrem Ubuntu-Clientsystem und bearbeiten Sie die Konfigurationsdateien (ec_PKCS#11client.ini und PKCS#11properties.cfg) im PKCS#11 Wrapper heruntergeladen.

Konfigurieren des PKCS#11-Wrappers
Konfigurieren wir nun Ihr Clientsystem für die Ausführung des PKCS#11-Wrappers.
Schritt 1: Installieren Sie Java 8: sudo apt installiere openjdk-8-jdk

Schritt 2: Legen Sie Java 8 als aktive Version fest: sudo update-alternatives –config java

Schritt 3: Installieren Sie die Android SDK-Befehlszeilentools: sudo apt installiere Google-Android-Cmdline-Tools-13.0-Installer


Schritt 4: Stellen Sie sicher, dass der SDK Manager für Android Studio ordnungsgemäß installiert wurde: sdkmanager –version

Schritt 5: Installieren Sie Build-Tools mit SDKManager, das den APKSigner enthält: sdkmanager „build-tools;34.0.0“

Schritt 6: Stellen Sie sicher, dass APKSigner vorhanden ist: apksigner –version

Schritt 7: Zum Ausführen des PKCS#11-Wrappers sind zwei Pakete erforderlich. Installieren Sie zunächst liblog4cxx-dev mit: sudo apt-get installiere liblog4cxx-dev

Schritt 8: Die letzte Voraussetzung ist die Installation des Curl-Pakets: sudo apt-get installieren locken

Signieren und Verifizieren einer APK
Nachdem nun alle Konfigurationen und Voraussetzungen installiert wurden, führen wir zunächst den Signiervorgang durch.
Der Signaturbefehl sieht ungefähr so aus (stellen Sie sicher, dass Sie diesen Befehl nur in dem Ordner ausführen, in dem Ihr PKCS#11-Wrapper installiert ist):
apksigner sign –provider-class sun.security.PKCS#11.SunPKCS#11 –provider-arg –ks KEINE –ks-Typ PKCS#11 –ks-Pass Pass:abcd1234 –ks-Schlüsselalias -In -aus
Zum Beispiel: apksigner sign –provider-class sun.security.PKCS#11.SunPKCS#11 –provider-arg /home/administrator/PKCS#11_Wrapper-Ubuntu/PKCS#11properties.cfg –ks NONE –ks-type PKCS#11 –ks-pass pass:abcd1234 –ks-key-alias gpg2 –in Sample.apk –out signed.apk

Nachdem wir die APK erfolgreich signiert haben, überprüfen wir sie mit diesem Befehl:
apksigner überprüfen -verbose
Zum Beispiel: apksigner verify -verbose signed.apk

Konfiguration des PKCS#11 Wrappers unter MacOS
Voraussetzungen:
Hier sind die Voraussetzungen für die Verwendung unseres PKCS#11 Wrappers in Ihrem System. Stellen Sie vor dem Start sicher, dass Folgendes bereit ist (Sie können sich auf die PKCS#11-WRAPPER KONFIGURIEREN Abschnitt für die Schritte):
- MacOS-Version: MacOS Version 13 (Ventura) oder höher (getestete Umgebung ist MacOS 15.1 Sequoia)
- Abhängigkeiten: Installieren Sie liblog4cxx-dev und curl.
- JDK: Oracle/OpenJDK 17 oder höher muss installiert und konfiguriert sein.
Installieren des PKCS#11-Wrappers von EC
Schritt 1: Gehen Sie zu EC CodeSign Secure v3.01 Signiertools Abschnitt und laden Sie den PKCS11 Wrapper für MacOS herunter.

Schritt 2: Anschließend generieren Sie ein P12-Authentifizierungszertifikat aus dem System-Setup > Benutzer > Authentifizierungszertifikat generieren Dropdown-Liste.

Schritt 3: Gehen Sie zu Ihrem MacOS-Clientsystem und bearbeiten Sie die Konfigurationsdateien (ec_pkcs11client.ini und pkcs11properties.cfg) im PKCS11-Wrapper heruntergeladen.

Konfigurieren des PKCS#11-Wrappers
Konfigurieren wir nun Ihr Clientsystem für die Ausführung des PKCS11-Wrappers.
Schritt 1: Installieren Sie Java 17: brew install openjdk@17

Schritt 2: Legen Sie Java 17 als aktive Version fest:
- Für Zsh: nano ~/.zshrc
- Für Bash: nano ~ / .bash_profile
Fügen Sie diese Zeilen hinzu: export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
Und dann führen Sie aus: Quelle ~/.zshrc # oder ~/.bash_profile


Schritt 3: Installieren Sie die Android SDK-Befehlszeilentools von fehlen uns die Worte. Website.


Schritt 4: Stellen Sie sicher, dass der SDK Manager für Android Studio ordnungsgemäß installiert wurde: sdkmanager –sdk_root=/Benutzer/subhayuroy/PKCS11_Wrapper-Mac –version

Schritt 5: Installieren Sie Build-Tools mit SDKManager, das den APKSigner enthält: sdkmanager –sdk_root=/Benutzer/subhayuroy/PKCS11_Wrapper-Mac „build-tools;34.0.0“


Schritt 6: Stellen Sie sicher, dass APKSigner vorhanden ist: ls /Benutzer/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0/apksigner

Schritt 7: Zum Ausführen des PKCS11-Wrappers sind zwei Pakete erforderlich. Installieren Sie zunächst liblog4cxx-dev mit: brew install log4cxx

Schritt 8: Die letzte Voraussetzung ist die Installation des Curl-Pakets: brew installieren curl

Schritt 9: Sie müssen sicherstellen, dass alle relativen Pfade zu Ihrer PATH-Variablen (Datei ~/.zshrc) hinzugefügt werden:
export PATH=/Benutzer/subhayuroy/PKCS11_Wrapper-Mac/cmdline-tools/bin:$PATH
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=/Benutzer/subhayuroy/PKCS11_Wrapper-Mac
export PATH=$PATH:/Benutzer/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0

Signieren und Verifizieren einer APK
Nachdem nun alle Konfigurationen und Voraussetzungen installiert wurden, führen wir zunächst den Signiervorgang durch.
Der Signierbefehl sieht ungefähr so aus (Stellen Sie sicher, dass Sie diesen Befehl nur in dem Ordner ausführen, in dem Ihr PKCS11-Wrapper installiert ist):
java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALL-UNNAMED -jar Zeichen –Anbieterklasse sun.security.pkcs11.SunPKCS11 –Anbieterarg –ks KEINE –ks-Typ PKCS11 –ks-Pass Pass:abcd1234 –ks-Schlüsselalias -In -aus
Zum Beispiel: java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALL-UNNAMED \ -jar /Benutzer/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0/lib/apksigner.jar \ sign \ –provider-class sun.security.pkcs11.SunPKCS11 \ –provider-arg /Benutzer/subhayuroy/PKCS11_Wrapper-Mac/pkcs11properties.cfg \ –ks NONE \ –ks-type PKCS11 \ –ks-pass pass:abcd1234 \ –ks-key-alias gpg2 \ –in Sample.apk \ –out signed.apk

Nachdem wir die APK erfolgreich signiert haben, überprüfen wir sie mit diesem Befehl:
apksigner überprüfen -verbose
Beispielsweise: apksigner verify -verbose signed.apk

Fazit
Unser PKCS#11 Wrapper bietet unübertroffene Leistung, einschließlich clientseitigem Hashing für schnellere Leistung und reibungslose Integration in Ihre bestehenden Workflows. Mit unserer Code-Signing-Lösung – CodeSign Secure v3.01können Sie den Endbenutzern vertrauen und Ihre Apps sicher schützen.
Durch die Zusammenarbeit mit Encryption Consulting investieren Sie in eine Lösung, der Entwickler und Organisationen weltweit vertrauen, um ihre Software-Lieferkette zu schützen, anstatt nur ein Tool auszuwählen. Nutzen Sie unsere Code-Signing-Technologien, um Ihre APK-Signierung zu verbessern.
Besuchen Sie unsere offizielle Website oder wenden Sie sich an unser Support-Team, um weitere Informationen oder Hilfe zu erhalten.
