Je vraagt je waarschijnlijk af waarom we een APK zouden ondertekenen, toch? Een digitale handtekening is een methode om de authenticiteit van een digitaal bestand aan te tonen, zoals een document, uitvoerbaar bestand of, in dit geval, een APK, wat gewoon een verzameling bestanden is. We kunnen vrijwel garanderen dat iedereen die een APK gebruikt, een verifieerbare kopie van het verwachte bestand ontvangt door de APK te ondertekenen. Omdat niemand anders dit bestand kan wijzigen met behoud van dezelfde handtekening, zijn er duidelijke beveiligingsvoordelen.
Om dit te bereiken integreren we PKCS # 11 bibliotheken, die ons in staat stellen om een verbeterde beveiliging te gebruiken door sleutels op te slaan Hardware-beveiligingsmodules (HSM's) of een soort sleutelkluis. Dit artikel leidt je door het proces van het gebruik van APKSigner met onze (Encryption Consulting's) PKCS#11 Wrapper op Ubuntu en macOS voor je APK-ondertekeningsbewerkingen.
Overzicht van PKCS#11-integratie
PKCS#11 API's spelen een zeer belangrijke rol bij APK-ondertekening. PKCS#11 is een zeer bekende en breed geaccepteerde standaard. API Hierdoor kan software zeer soepel met HSM's communiceren. Door PKCS#11 in APKSigner te integreren, kunnen jij en je ontwikkelaars Android APK's ondertekenen, terwijl je ervoor zorgt dat de privésleutels nooit een beveiligde omgeving (HSM's) verlaten. Je sleutels worden op deze manier beschermd tegen mogelijke online bedreigingen.
De PKCS#11 Wrapper van Encryption Consulting biedt u extra betrouwbaarheid en vertrouwen. Wij garanderen uitstekende prestaties, naadloze integratie en – bovenal – client-side hashing. Met behulp van onze PKCS#11 Wrapper kunt u:
- Bescherming tegen sleutellekken: De privésleutels van uw organisatie verlaten de HSM nooit. Alle cryptografische Bewerkingen worden rechtstreeks binnen de HSM uitgevoerd.
- Hardware-ondersteunde beveiliging: Al uw ondertekeningsoperaties worden uitgevoerd op fraudebestendige hardware, wat zowel fysieke als logische beveiliging garandeert. U moet echter wel voldoen aan de CA/B Forum's Richtlijn van juni 2023 en zorg dat u een FIPS 140-2 Level 2 HSM aan uw zijde hebt.
- Meer vertrouwen voor uw applicaties: Uw ondertekende APK's voldoen aan de beveiligingsvereisten van Android en zorgen ervoor dat de eindgebruiker vertrouwen heeft in de integriteit van uw applicatie.
- High-performance Ondertekenen met client-side hashing: Onze PKCS#11 Wrapper ondersteunt client-side hashing, waardoor de integriteit van uw APK intact blijft. Dit verbetert ook de snelheid van het ondertekeningsproces aanzienlijk, waardoor het ideaal is voor de high-throughput-scenario's van uw organisatie, zoals CI / CD pijpleidingen.
Configuratie van PKCS#11 Wrapper op Windows
Installatie op clientsysteem
Stap 1: Ga naar EC CodeSign Secure's v3.01 Ondertekeningshulpmiddelen sectie en download de PKCS11 Wrapper voor Windows.

Stap 2: Genereer daarna een P12-authenticatiecertificaat van de Systeeminstellingen > Gebruiker > Authenticatiecertificaat genereren dropdown.

Stap 3: Ga naar uw Windows-clientsysteem en bewerk de configuratiebestanden (ec_pkcs11client.ini en pkcs11properties.cfg) gedownload in de PKCS11 Wrapper.



Vereisten voor Windows-systeem
Nu gaan we een aantal vereisten in uw clientsysteem installeren om de PKCS11 Wrapper te kunnen uitvoeren.
Stap 1: Java 22 installeren vanaf Oracle's officiële site en volg de instructies in het msi-bestand.



Stap 2: Stel Java 22 in als de actieve versie door het bin-pad op te slaan in de PATH-variabele.

Stap 3: Installeer de Android SDK-opdrachtregeltools via deze link hier.

Stap 4:
- Pak de bestanden uit in de map “cmdline-tools”.
- Maak een submap met de naam laatste.
- Verplaats de bak en lib mappen naar de nieuwste map.

Stap 5: Stel een omgevingsvariabele in met de naam ANDROID_HOME en geef deze het pad waar u de opdrachtregelprogramma's hebt uitgepakt.

Stap 6: Installeer Build Tools met behulp van SDKManager, dat de APKSigner bevat: .\bin\sdkmanager –kanaal=0 –installeer “build-tools;34.0.0”

Stap 7: Zorg ervoor dat APKSigner aanwezig is: Apksigner.bat –versie

Ondertekening en verificatie uitvoeren met PKCS11 Wrapper
Nu alle configuraties en vereisten zijn geïnstalleerd, kunnen we eerst de ondertekening uitvoeren.
Het ondertekeningscommando zal er ongeveer zo uitzien (zorg ervoor dat u deze opdracht alleen uitvoert in de map waar uw PKCS11 Wrapper is geïnstalleerd):
apksigner sign –provider-class sun.security.pkcs11.SunPKCS11 –provider-arg –ks GEEN –ks-type PKCS11 –ks-pass pass:abcd1234 –ks-key-alias -in -uit
Bijvoorbeeld: apksigner sign –provider-class sun.security.pkcs11.SunPKCS11 –provider-arg C:\Users\riley\Downloads\PKCS11_Wrapper-Windows\pkcs11properties.cfg –ks GEEN –ks-type PKCS11 –ks-pass pas:geheimwachtwoord –ks-sleutel-alias gpg2 –in Sample.apk –out signed.apk

Nadat u de APK succesvol hebt ondertekend, kunt u deze verifiëren met behulp van de volgende opdracht:
apksigner verify -verbose
Bijvoorbeeld: apksigner verify -verbose signed.apk

Configuratie van PKCS#11 Wrapper op Ubuntu
Voorwaarden
Dit zijn de vereisten voor het gebruik van onze PKCS#11 Wrapper in uw systeem. Zorg ervoor dat het volgende klaar is voordat u begint (raadpleeg hiervoor de PKCS#11 WRAPPER CONFIGUREREN sectie voor de stappen):
- Ubuntu-versie: Ubuntu versie 22.04 of later (geteste omgeving is Ubuntu 24.02)
- Bijgebouwen: Installeer liblog4cxx-dev en curl.
- JDK: Oracle/OpenJDK 8 of hoger moet geïnstalleerd en geconfigureerd zijn.
Installatie van EC's PKCS#11 Wrapper
Stap 1: Ga naar EC CodeSign Secure v3.01 Ondertekeningshulpmiddelen sectie en download de PKCS#11 Wrapper voor Ubuntu.

Stap 2: Genereer daarna een P12-authenticatiecertificaat van de Systeeminstellingen > Gebruiker > Authenticatiecertificaat genereren dropdown.

Stap 3: Ga naar uw Ubuntu-clientsysteem en bewerk de configuratiebestanden (ec_PKCS#11client.ini en PKCS#11eigenschappen.cfg) gedownload in de PKCS#11 Wrapper.

PKCS#11 Wrapper configureren
Laten we nu uw clientsysteem configureren om de PKCS#11 Wrapper uit te voeren.
Stap 1: Java 8 installeren: sudo apt installeer openjdk-8-jdk

Stap 2: Stel Java 8 in als actieve versie: sudo update-alternatieven –config java

Stap 3: Installeer de opdrachtregelhulpprogramma's van de Android SDK: sudo apt install google-android-cmdline-tools-13.0-installer


Stap 4: Zorg ervoor dat de SDK Manager voor Android Studio correct is geïnstalleerd: sdkmanager –versie

Stap 5: Installeer Build Tools met behulp van SDKManager, dat de APKSigner bevat: sdkmanager “build-tools;34.0.0”

Stap 6: Zorg ervoor dat APKSigner aanwezig is: apksigner –versie

Stap 7: Er zijn twee pakketten nodig om de PKCS#11 Wrapper op uw systeem te draaien. Installeer eerst liblog4cxx-dev met: sudo apt-get install liblog4cxx-dev

Stap 8: De laatste vereiste is de installatie van het curl-pakket: sudo apt-get install curl

Een APK ondertekenen en verifiëren
Nu alle configuraties en vereisten zijn geïnstalleerd, kunnen we eerst de ondertekening uitvoeren.
De ondertekeningsopdracht ziet er ongeveer zo uit (zorg ervoor dat u deze opdracht alleen uitvoert in de map waar uw PKCS#11 Wrapper is geïnstalleerd):
apksigner sign –provider-class sun.security.PKCS#11.SunPKCS#11 –provider-arg –ks GEEN –ks-type PKCS#11 –ks-pass pass:abcd1234 –ks-key-alias -in -uit
Bijvoorbeeld: apksigner sign –provider-class sun.security.PKCS#11.SunPKCS#11 –provider-arg /home/administrator/PKCS#11_Wrapper-Ubuntu/PKCS#11properties.cfg –ks GEEN –ks-type PKCS#11 –ks-pass pass:abcd1234 –ks-key-alias gpg2 –in Sample.apk –out signed.apk

Nadat u de APK succesvol hebt ondertekend, kunt u deze verifiëren met behulp van de volgende opdracht:
apksigner verify -verbose
Bij voorbeeld: apksigner verify -verbose signed.apk

Configuratie van PKCS#11 Wrapper op MacOS
Voorwaarden
Dit zijn de vereisten voor het gebruik van onze PKCS#11 Wrapper in uw systeem. Zorg ervoor dat het volgende klaar is voordat u begint (raadpleeg hiervoor de PKCS#11 WRAPPER CONFIGUREREN sectie voor de stappen):
- MacOS-versie: MacOS versie 13 (Ventura) of later (geteste omgeving is MacOS 15.1 Sequoia)
- Bijgebouwen: Installeer liblog4cxx-dev en curl.
- JDK: Oracle/OpenJDK 17 of hoger moet geïnstalleerd en geconfigureerd zijn.
Installatie van EC's PKCS#11 Wrapper
Stap 1: Ga naar EC CodeSign Secure's v3.01 Ondertekeningshulpmiddelen sectie en download de PKCS11 Wrapper voor MacOS.

Stap 2: Genereer daarna een P12-authenticatiecertificaat van de Systeeminstellingen > Gebruiker > Authenticatiecertificaat genereren dropdown.

Stap 3: Ga naar uw MacOS-clientsysteem en bewerk de configuratiebestanden (ec_pkcs11client.ini en pkcs11properties.cfg) gedownload in de PKCS11 Wrapper.

PKCS#11 Wrapper configureren
Laten we nu uw clientsysteem configureren om de PKCS11 Wrapper uit te voeren.
Stap 1: Java 17 installeren: brew install openjdk@17

Stap 2: Stel Java 17 in als actieve versie:
- Voor Zsh: nano ~/.zshrc
- Voor Bash: nano ~ / .bash_profile
Voeg deze regels toe: export JAVA_HOME=$(/usr/libexec/java_home -v 17)
exporteer PATH=$JAVA_HOME/bin:$PATH
En dan rennen: bron ~/.zshrc # of ~/.bash_profile


Stap 3: Installeer de Android SDK-opdrachtregeltools vanaf dit site.


Stap 4: Zorg ervoor dat de SDK Manager voor Android Studio correct is geïnstalleerd: sdkmanager –sdk_root=/Gebruikers/subhayuroy/PKCS11_Wrapper-Mac –versie

Stap 5: Installeer Build Tools met behulp van SDKManager, dat de APKSigner bevat: sdkmanager –sdk_root=/Gebruikers/subhayuroy/PKCS11_Wrapper-Mac “build-tools;34.0.0”


Stap 6: Zorg ervoor dat APKSigner aanwezig is: ls /Gebruikers/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0/apksigner

Stap 7: Er zijn twee pakketten nodig om de PKCS11 Wrapper op uw systeem te draaien. Installeer eerst liblog4cxx-dev met: Brew installatie log4cxx

Stap 8: De laatste vereiste is de installatie van het curl-pakket: brouwen installeren krullen

Stap 9: Zorg ervoor dat alle relatieve paden aan uw PATH-variabele (bestand ~/.zshrc) worden toegevoegd:
export PATH=/Gebruikers/subhayuroy/PKCS11_Wrapper-Mac/cmdline-tools/bin:$PATH
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
exporteer PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=/Gebruikers/subhayuroy/PKCS11_Wrapper-Mac
export PATH=$PATH:/Gebruikers/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0

Een APK ondertekenen en verifiëren
Nu alle configuraties en vereisten zijn geïnstalleerd, kunnen we eerst de ondertekening uitvoeren.
Het ondertekeningscommando zal er ongeveer zo uitzien (zorg ervoor dat u deze opdracht alleen uitvoert in de map waar uw PKCS11 Wrapper is geïnstalleerd):
java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALL-UNNAMED -jar teken –provider-klasse sun.security.pkcs11.SunPKCS11 –provider-arg –ks GEEN –ks-type PKCS11 –ks-pass pass:abcd1234 –ks-key-alias -in -uit
Bijvoorbeeld: java –add-exports=jdk.crypto.cryptoki/sun.security.pkcs11=ALL-UNNAMED \ -jar /Users/subhayuroy/PKCS11_Wrapper-Mac/build-tools/34.0.0/lib/apksigner.jar \ sign \ –provider-class sun.security.pkcs11.SunPKCS11 \ –provider-arg /Users/subhayuroy/PKCS11_Wrapper-Mac/pkcs11properties.cfg \ –ks GEEN \ –ks-type PKCS11 \ –ks-pass pass:abcd1234 \ –ks-key-alias gpg2 \ –in Sample.apk \ –out signed.apk

Nadat u de APK succesvol hebt ondertekend, kunt u deze verifiëren met behulp van de volgende opdracht:
apksigner verify -verbose
Bijvoorbeeld: apksigner verify -verbose signed.apk

Conclusie
Onze PKCS#11 Wrapper biedt ongeëvenaarde prestaties, inclusief client-side hashing voor snellere prestaties en soepele integratie in uw bestaande workflows. Met onze codeondertekeningsoplossing – CodeSign Secure v3.01kunt u eindgebruikers vertrouwen en uw apps veilig beveiligen.
Door samen te werken met Encryption Consulting investeert u in een oplossing die wereldwijd wordt vertrouwd door ontwikkelaars en organisaties om hun softwaretoeleveringsketen te beschermen, in plaats van slechts een tool te kiezen. Dit is uw kans om onze codeondertekeningstechnologieën te gebruiken om uw APK-ondertekening te verbeteren.
Bezoek onze officiële website of neem contact op met onze ondersteuningsmedewerkers voor meer informatie of hulp.
