Zum Inhalt

47-Tage-Zertifikate sind in Planung. Bist du bereit?

Jetzt handeln →

Signieren Sie Android Package Kit (APK)-Dateien mit ApkSigner unter Verwendung der PKCS#11-Bibliothek.

Sichern Sie APK mit ApkSigner

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.

Signaturtools

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

P12-Authentifizierungszertifikat generieren

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

Konfigurationsdatei bearbeiten
Konfigurationsdatei bearbeiten
Konfigurationsdatei bearbeiten

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. 

Java installieren
Java-Assistent installieren
Java-Assistent installieren

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

füge Java zum Pfad hinzu

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

Installieren Sie die Befehlszeilentools des Android SDK

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.
Dateien extrahieren

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. 

Legen Sie eine Umgebungsvariable fest

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

Build-Tools installieren

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

Stellen Sie sicher, dass apkisigner vorhanden ist

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

Signierbefehl

Nachdem wir die APK erfolgreich signiert haben, überprüfen wir sie mit diesem Befehl: 

apksigner überprüfen -verbose

Beispielsweise: apksigner verify -verbose signed.apk

Überprüfungsbefehl

 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. 

Abschnitt „Signaturtools“ in CodeSign Secure

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

Authentifizierungszertifikat generieren

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.

Bearbeiten Sie die Konfigurationsdateien

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 

Installieren Sie Java 8

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

Java 8 als aktive Version festlegen

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

Installieren Sie die Android SDK-Befehlszeilentools
Installieren Sie die Android SDK-Befehlszeilentools

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

Sicherstellen der Installation

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

Installieren Sie Build-Tools mit SDKManager

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

Stellen Sie sicher, dass APKSigner vorhanden ist

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 

Installieren Sie liblog4cxx-dev

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

Installieren Sie das Curl-Paket

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

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 

Führen Sie den APK-Signaturvorgang durch

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

Überprüfen Sie die APK-Signatur

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.

Abschnitt „Signaturtools“ in CodeSign Secure

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

Authentifizierungszertifikat generieren

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

Konfigurationsdateien bearbeiten

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

macOS Java installieren

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

Java 17 als aktives macOS festlegen
set java 17

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

Android-Befehlszeilentools
Befehlszeilenwerkzeuge macOS

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

Stellen Sie sicher, dass der SDK Manager unter macOS installiert ist.

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“

Build-Tools unter macOS installieren
sdkManager install tools macos

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

Stellen Sie sicher, dass ApkSigner für macOS verfügbar ist.

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

brew install macos

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

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

relative Pfade in macOS sicherstellen

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

APK-Signatur für macOS

Nachdem wir die APK erfolgreich signiert haben, überprüfen wir sie mit diesem Befehl:

apksigner überprüfen -verbose

Beispielsweise: apksigner verify -verbose signed.apk

Überprüfung der APK-Datei unter macOS

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.