Du undrar säkert varför vi skulle signera en APK, eller hur? En digital signatur är en metod för att visa äktheten hos en digital fil, till exempel ett dokument, en körbar fil eller, i det här fallet, en APK, som bara är en samling filer. Vi kan praktiskt taget garantera att den som använder en APK kommer att få en verifierbar kopia av filen de förväntade sig genom att signera APK:n. Eftersom ingen annan kan ändra den här filen samtidigt som signaturen bibehålls, finns det tydliga säkerhetsfördelar.
För att uppnå detta integrerar vi nu PKCS # 11 bibliotek, vilket gör det möjligt för oss att använda förbättrad säkerhet genom att lagra nycklar på Hårdvarusäkerhetsmoduler (HSM) eller någon form av nyckelvalv. Den här artikeln kommer att guida dig genom processen att använda APKSigner med vår (Encryption Consulting) PKCS#11 Wrapper på Ubuntu och MacOS för dina APK-signeringsåtgärder.
Översikt över PKCS#11-integration
När det gäller APK-signeringsoperationer spelar PKCS#11 API:er en mycket viktig roll. PKCS#11 är en mycket känd och allmänt använd standard. API vilket gör att programvara kan interagera mycket smidigt med HSM:er. Genom att integrera PKCS#11 i APKSigner kan du eller dina utvecklare signera Android APK:er samtidigt som de privata nycklarna aldrig lämnar en säker miljö (HSM:er). På detta sätt skyddas dina nycklar från eventuella onlinehot.
PKCS#11 Wrapper från Encryption Consulting ger dig extra mycket tillförlitlighet och förtroende. Vi garanterar enastående prestanda, sömlös integration och – framför allt – hashing på klientsidan. Med hjälp av vår PKCS#11 Wrapper kan du:
- Skydd mot nyckelläckage: Din organisations privata nycklar lämnar aldrig HSM. Alla kryptografisk Operationer utförs direkt inom HSM.
- Hårdvarubaserad säkerhet: Alla dina signeringsåtgärder kommer att utföras med manipulationssäker hårdvara, vilket garanterar både fysisk och logisk säkerhet. Du måste dock följa CA/B-forumet riktlinjen från juni 2023 och ha en FIPS 140-2 nivå 2 HSM på din sida.
- Ökat förtroende för dina applikationer: Dina signerade APK-filer uppfyller Androids säkerhetskrav och säkerställer att slutanvändaren har förtroende för din applikations integritet.
- Hög prestanda Signering med klientsidig hashing: Vår PKCS#11 Wrapper stöder klientsidig hashning, vilket säkerställer att din APK:s integritet förblir intakt. Detta kommer också att drastiskt förbättra hastigheten på signeringsprocessen, vilket gör den idealisk för din organisations högkapacitetsscenarier som CI / CD rörledningar.
Konfiguration av PKCS#11 Wrapper i Windows
Installation på klientsystem
Steg 1: Gå till EC CodeSign Secures v3.01 Signeringsverktyg avsnittet och ladda ner PKCS11 Wrapper för Windows.

Steg 2: Generera sedan ett P12-autentiseringscertifikat från Systeminställningar > Användare > Generera autentiseringscertifikat falla ner.

Steg 3: Gå till ditt Windows-klientsystem och redigera konfigurationsfilerna (ec_pkcs11client.ini och pkcs11properties.cfg) laddades ner i PKCS11-omslaget.



Förutsättningar för Windows-systemet
Nu ska vi installera några förutsättningar i ditt klientsystem för att köra PKCS11 Wrapper.
Steg 1: Installera Java 22 från Oracle's officiella webbplatsen och följ instruktionerna i msi-filen.



Steg 2: Ställ in Java 22 som aktiv version genom att lagra bin-sökvägen i PATH-variabeln.

Steg 3: Installera kommandoradsverktygen för Android SDK från den här länken här..

Steg 4:
- Extrahera filerna till en "cmdline-tools"-mapp.
- Skapa en undermapp med namnet senaste.
- Flytta bin och lib mappar till den senaste mappen.

Steg 5: Ställ in en miljövariabel som heter ANDROID_HOME och sätt den till sökvägen där du extraherade kommandoradsverktygen.

Steg 6: Installera byggverktyg med SDKManager, som innehåller APKSigner: .\bin\sdkmanager –channel=0 –install “byggverktyg;34.0.0”

Steg 7: Se till att APKSigner finns: Apksigner.bat –version

Utför signering och verifiering med PKCS11 Wrapper
Nu när alla konfigurationer och förutsättningar har installerats, låt oss först utföra signeringsåtgärden.
Signeringskommandot kommer att se ut ungefär så här (se till att du bara kör det här kommandot i mappen där din PKCS11 Wrapper är installerad):
apksigner signera –leverantörsklass sun.security.pkcs11.SunPKCS11 –leverantörsarg –ks INGEN –ks-typ PKCS11 –ks-pass pass:abcd1234 –ks-nyckelalias -i -ut
Till exempel: apksigner signera –provider-klass sun.security.pkcs11.SunPKCS11 –provider-arg C:\Användare\riley\Downloads\PKCS11_Wrapper-Windows\pkcs11properties.cfg –ks INGA –ks-typ PKCS11 –ks-pass pass:secretpassword –ks-key-alias gpg2 –in Sample.apk –out signed.apk

Efter att du har signerat APK-filen, låt oss verifiera den med det här kommandot:
apksigner verifiera -utförlig
Till exempel: apksigner verifiera -verbose signed.apk

Konfiguration av PKCS#11 Wrapper på Ubuntu
Förutsättningar
Här är förutsättningarna för att använda vår PKCS#11 Wrapper i ditt system. Innan du börjar, se till att följande är klart (du kan se KONFIGURERA PKCS#11 WRAPPER avsnitt för stegen):
- Ubuntu-version: Ubuntu version 22.04 eller senare (testmiljön är Ubuntu 24.02)
- beroenden: Installera liblog4cxx-dev och curl.
- JDK: Oracle/OpenJDK 8 eller högre måste vara installerat och konfigurerat.
Installera EC:s PKCS#11-omslag
Steg 1: Gå till EC CodeSign Secures v3.01 Signeringsverktyg avsnittet och ladda ner PKCS#11 Wrapper för Ubuntu.

Steg 2: Generera sedan ett P12-autentiseringscertifikat från Systeminställningar > Användare > Generera autentiseringscertifikat falla ner.

Steg 3: Gå till ditt Ubuntu-klientsystem och redigera konfigurationsfilerna (ec_PKCS#11client.ini och PKCS#11properties.cfg) laddades ner i PKCS#11 Wrapper.

Konfigurera PKCS#11-omslag
Nu ska vi konfigurera ditt klientsystem för att köra PKCS#11 Wrapper.
Steg 1: Installera Java 8: sudo apt installera openjdk-8-jdk

Steg 2: Ställ in Java 8 som aktiv version: sudo uppdateringsalternativ –konfiguration java

Steg 3: Installera kommandoradsverktygen för Android SDK: sudo apt installera google-android-cmdline-tools-13.0-installer


Steg 4: Se till att SDK Manager för Android Studio har installerats korrekt: sdkmanager –version

Steg 5: Installera byggverktyg med SDKManager, som innehåller APKSigner: sdkmanager “byggverktyg;34.0.0”

Steg 6: Se till att APKSigner finns: apksigner –version

Steg 7: Två paket krävs för att köra PKCS#11 Wrapper på ditt system. Installera först liblog4cxx-dev med: sudo apt-get install liblog4cxx-dev

Steg 8: Den sista förutsättningen är att installera curl-paketet: sudo apt-get installera curl

Signera och verifiera en APK
Nu när alla konfigurationer och förutsättningar har installerats, låt oss först utföra signeringsåtgärden.
Signeringskommandot kommer att se ut ungefär så här (se till att du bara kör det här kommandot i mappen där din PKCS#11 Wrapper är installerad):
apksigner signera –leverantörsklass sun.security.PKCS#11.SunPKCS#11 –leverantörsarg –ks INGEN –ks-typ PKCS#11 –ks-pass pass:abcd1234 –ks-nyckelalias -i -ut
Till exempel: apksigner signera –provider-klass sun.security.PKCS#11.SunPKCS#11 –provider-arg /home/administrator/PKCS#11_Wrapper-Ubuntu/PKCS#11properties.cfg –ks INGA –ks-typ PKCS#11 –ks-pass pass:abcd1234 –ks-nyckelalias gpg2 –in Exempel.apk –ut signed.apk

Efter att du har signerat APK-filen, låt oss verifiera den med det här kommandot:
apksigner verifiera -utförlig
Till exempel: apksigner verifiera -verbose signed.apk

Konfiguration av PKCS#11 Wrapper på MacOS
Förutsättningar
Här är förutsättningarna för att använda vår PKCS#11 Wrapper i ditt system. Innan du börjar, se till att följande är klart (du kan se KONFIGURERA PKCS#11 WRAPPER avsnitt för stegen):
- MacOS-version: MacOS version 13 (Ventura) eller senare (testmiljön är MacOS 15.1 Sequoia)
- beroenden: Installera liblog4cxx-dev och curl.
- JDK: Oracle/OpenJDK 17 eller högre måste vara installerat och konfigurerat.
Installera EC:s PKCS#11-omslag
Steg 1: Gå till EC CodeSign Secures v3.01 Signeringsverktyg avsnittet och ladda ner PKCS11 Wrapper för MacOS.

Steg 2: Generera sedan ett P12-autentiseringscertifikat från Systeminställningar > Användare > Generera autentiseringscertifikat falla ner.

Steg 3: Gå till ditt MacOS-klientsystem och redigera konfigurationsfilerna (ec_pkcs11client.ini och pkcs11properties.cfg) laddades ner i PKCS11-omslaget.

Konfigurera PKCS#11-omslag
Nu ska vi konfigurera ditt klientsystem för att köra PKCS11 Wrapper.
Steg 1: Installera Java 17: brygginstallation openjdk@17

Steg 2: Ställ in Java 17 som aktiv version:
- För Zsh: nano ~/.zshrc
- För Bash: nano ~ / .bash_profile
Lägg till dessa rader: exportera JAVA_HOME=$(/usr/libexec/java_home -v 17)
exportera PATH=$JAVA_HOME/bin:$PATH
Och kör sedan: källa ~/.zshrc # eller ~/.bash_profile


Steg 3: Installera kommandoradsverktygen för Android SDK från detta plats.


Steg 4: Se till att SDK Manager för Android Studio har installerats korrekt: sdkmanager –sdk_root=/Användare/subhayuroy/PKCS11_Wrapper-Mac –version

Steg 5: Installera byggverktyg med SDKManager, som innehåller APKSigner: sdkmanager –sdk_root=/Användare/subhayuroy/PKCS11_Wrapper-Mac “byggverktyg;34.0.0”


Steg 6: Se till att APKSigner finns: ls /Användare/subhayuroy/PKCS11_Wrapper-Mac/byggverktyg/34.0.0/apksigner

Steg 7: Två paket krävs för att köra PKCS11 Wrapper på ditt system. Installera först liblog4cxx-dev med: brygginstallationslog4cxx

Steg 8: Den sista förutsättningen är att installera curl-paketet: brygga installera curl

Steg 9: Du måste se till att alla relativa sökvägar läggs till i din PATH-variabel (~/.zshrc-fil):
exportera PATH=/Användare/subhayuroy/PKCS11_Wrapper-Mac/cmdline-tools/bin:$PATH
exportera JAVA_HOME=$(/usr/libexec/java_home -v 17)
exportera PATH=$JAVA_HOME/bin:$PATH
exportera ANDROID_SDK_ROOT=/Användare/subhayuroy/PKCS11_Wrapper-Mac
exportera PATH=$PATH:/Användare/subhayuroy/PKCS11_Wrapper-Mac/byggverktyg/34.0.0

Signera och verifiera en APK
Nu när alla konfigurationer och förutsättningar har installerats, låt oss först utföra signeringsåtgärden.
Signeringskommandot kommer att se ut ungefär så här (se till att du bara kör det här kommandot i mappen där din PKCS11 Wrapper är installerad):
java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALLA-NAMNLODA -jar signera –provider-klass sun.security.pkcs11.SunPKCS11 –provider-arg –ks INGEN –ks-typ PKCS11 –ks-pass pass:abcd1234 –ks-nyckelalias -i -ut
Till exempel: java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALL-UNAMNLIGEN \ -jar /Användare/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0/lib/apksigner.jar \ signera \ –provider-klass sun.security.pkcs11.SunPKCS11 \ –provider-arg /Användare/subhayuroy/PKCS11_Wrapper-Mac/pkcs11properties.cfg \ –ks INGA \ –ks-typ PKCS11 \ –ks-pass pass:abcd1234 \ –ks-nyckelalias gpg2 \ –in Sample.apk \ –out signed.apk

Efter att du har signerat APK-filen, låt oss verifiera den med det här kommandot:
apksigner verifiera -utförlig
Till exempel: apksigner verifiera -verbose signed.apk

Slutsats
Vår PKCS#11 Wrapper erbjuder oöverträffad prestanda, inklusive klientsidig hashning för snabbare prestanda och smidig integration i dina befintliga arbetsflöden. Med vår kodsigneringslösning – CodeSign Secure v3.01, kan du lita på slutanvändare och säkra dina appar på ett säkert sätt.
Genom att arbeta med Encryption Consulting investerar du i en lösning som utvecklare och organisationer världen över litar på för att skydda deras programvaruleveranskedja, snarare än att bara välja ett verktyg. Detta är din möjlighet att använda våra kodsigneringstekniker för att avancera din APK-signering.
Besök vår officiella hemsida eller kontakta vår supportpersonal för mer information eller hjälp.
