Jar-filer, även kända som Java-arkiv, används för att ordna flera Java-klassfiler och deras tillhörande data till en enda fil. De spelar en viktig roll i distributionen av Java-program, vilket möjliggör enkel distribution och drift över flera plattformar. Att signera Jar-filer för att säkerställa deras giltighet och integritet är en viktig aspekt av distributionen av Java-program. Detta är särskilt viktigt när det gäller att skydda webbaserade applikationer och säkerställa tillförlitligheten hos tredjepartsbibliotek. JarSigner-verktyget tillhandahålls av Java Development Kit (JDK) för detta ändamål.
JarSigner skapar en signaturfil för den ursprungliga Jar-filen. Denna signaturfil innehåller kryptografisk hashkoder för allt innehåll i Jar-filen. Verktyget använder sedan en digital signatur algoritm för att konstruera en andra signaturfil (RSA). Dessa två signaturfiler, tillsammans med de ursprungliga filerna, lagras i Jar-filen. JarSigner extraherar den ursprungliga Jar-filen och dess relaterade signaturfiler under verifieringsprocessen. Hashvärdena för den ursprungliga Jar-filen beräknas sedan och jämförs med värdena som registrerats i signaturfilen. Jar-filen anses vara legitim och pålitlig om hashvärdena matchar. Annars anses Jar-filen vara ogiltig och kan inte köras.
Tillägget av en digital signatur underlättar verifieringen av Jar-filers ursprung och identitet. Kryptografiska algoritmer spelar en viktig roll för att säkerställa ett robust skydd genom att implementera avancerade matematiska tekniker i signeringsprocessen. Det finns olika metoder för att signera Jar-filer. Nedan ges en kortfattad översikt över olika tillvägagångssätt.
Signera Jar-filer med JarSigner-verktyget
Det här avsnittet beskriver hur man signerar jar-filer med hjälp av JarSigner-verktyget. Java måste vara installerat för att det ska fungera. Ladda ner och installera Java från https://www.oracle.com/java/technologies/downloadsDet finns olika sätt att använda JarSigner: med CodeSign Secure KSP, kommandotolken, genom Eclipse IDE, eller genom a Jenkins pipeline.
Med CodeSign Secure KSP
- Navigera till Javas jdk-installation och gå in i bin-mappen (vanligtvis belägen på C:\Program Files\Java\jdk-20\bin). Där hittar du JarSigner-applikationen "Jasigner.exe".
- Du kan dra programmet till kommandoraden för att få dess sökväg eller helt enkelt navigera till den mappen med cmd.
- I cmd anger vi först vår butikstyp, vi gör det genom att använda -storetype Windows-My. Det är här vår KSP kommer in i bilden.
- Ange signeringsalgoritm med: sigalg SHA256 med RSADu kan använda vilken signeringsalgoritm du vill.
- Ange tidsstämpelserver: –tsa http://timestamp.digicert.com
- Ange vilken Jar-fil du vill signera.
- Ange certifikatets nyckelalias.
Sammantaget ser kommandot ut ungefär så här. Detta måste köras från katalogen där JarSigner-applikationen finns.
-storetype Windows-My -sigalg SHA256withRSA -tsa http://timestamp.digicert.com C:\Användare\ja785\Skrivbord\test.jar “evcodesigning”

Vi kan köra Jar Signer verifier för att kontrollera om Jar-filerna har signerats eller inte.
Det görs i samma katalog som signer och med kommandot nedan.
-kontrollera

Med kommandotolken
Nedan följer en lista över tillgängliga kommandoparametrar och en kort förklaring av deras funktioner.
| -s eller –tecken | Jar-filen ska signeras. |
| -v eller –verifiera | Jar-filen ska verifieras. |
| -c eller –cert-path | Sökväg till certifikatfil. |
| -u eller -användare | Användarnamn. Ett användarnamn på Encryption Consulting-servern. |
| -k eller –tangent | Nyckel för signering/verifiering tillhandahållen av Encryption Consulting-servern. |
| -a eller –algoritm | Algoritm som ska användas för signering/verifiering. Ett av alternativen nedan måste användas: SHA-256 SHA-384 SHA-512 |
| -o eller –utgång | Utdatafilen till sökvägen som den signerade filen. |
| -h eller –hjälp | Hjälp |
| -version | Visa versionsnummer |
| -Mångordig | Visa felsökningsloggar |
För att signera en jar-fil med JarSigner, öppna först en administratörskommandotolk och mata in följande kommando:
cd C:\Användare\Administratör\Skrivbord\JarSigner-main (1)\JarSigner-main\JarSignerAgent\target
Kommandot att signera är följande, kom ihåg innehållet i är exempelindata, måste du ange de specifika filnamnen och sökvägarna:
java -classpath .;jarsigner-jar-med-beroenden.jar;”C:\Program\Java\jdk1.8.0_202\lib\tools.jar” com.security.SignerMain -s “
Den förväntade produktionen är som följer:

För att verifiera en jar-fil med JarSigner, ange följande kommando:
java -classpath .;jarsigner-jar-med-beroenden.jar;”C:\Program\Java\jdk1.8.0_202\lib\tools.jar” com.security.SignerMain -v “
Den förväntade produktionen är som följer:

Med Eclipse (Maven-projektet)
För att signera en jar-fil med Eclipse IDE måste du först installera Eclipse.
- När du möts av installationsguiden väljer du Eclipse IDE for Java Developers och klickar på installera.

- Se till att CodeSignerAgent.zip-filen är uppackad. Klicka sedan på importera längst upp till vänster i fönstret i Eclipse-gränssnittet.

- Välj sedan Importera befintliga Maven-projekt.

- Välj sedan CodeSignerAgent-katalogen i webbläsaren enligt nedan:

- Skapa sedan ett JDK-bibliotek genom att klicka på projektbiblioteket. Välj JDK 1.8 som sökväg till biblioteket. Installera JDK 1.8 om det inte är tillgängligt.
Referens: https://www.oracle.com/in/java/technologies/javase/javase8-archive-downloads.html


- Lägg till detta JDK-bibliotek i projektbiblioteket. Ta bort JRE-biblioteket.

- Öppna sedan projektets pom.xml-fil och ändra JDK 1.8-sökvägen enligt din dator.

- Högerklicka sedan på projektet och välj Kör som: Maven-installation

- Om bygget lyckades visas nedan, och JarSigner.jar skapas i projektets målmapp.


Jenkins pipeline
Att använda JarSigner i en pipeline kan vara användbart för att testa potentiella uppdateringar och nya versioner. JarSigner-projektet är förkonfigurerat på Jenkins instrumentpanel.
För att logga in, öppna en webbläsare (helst Google Chrome) och skriv http://localhost:8080/ för att komma åt Jenkins instrumentpanel.

Här kan du se alla byggen och lite allmän information om dem.
Följ stegen nedan i Jenkins Dashboard:
- Från instrumentpanelen klicka på Nytt objekt.

- Ange valfritt objektnamn och klicka på Freestyle-projekt och klicka på ok.

- På konfigurationssidan, under Allmänt, skriv in en beskrivning som du önskar.

Det är här JarSigner-koden körs, genom att lägga till en Byggsteg den där Kör ett Windows Batch-kommando Vi kan anropa JarSigner-koden och exekvera den via Jenkins pipeline.

Spara eventuella ändringar genom att klicka på Spara på botten.
När du har sparat klickar du på bygg nu så ser du ett byggnummer på skärmen. För mer information om byggstegen och allmänna bygginställningar kan du klicka på Inställd bredvid knappen Bygg nu.

Längst ner till vänster i knapplistan klickar du på den uppåtriktade pilen i Bygghistorik för att visa projektets senaste byggen. Välj den senaste så ser du sidan med bygginformation. För att se resultatet av bygget klickar du på Konsolutgång knappen på vänster sida av skärmen.

Du kan även se konsolutdata i vanligt textformat genom att klicka på Visa som vanlig text under Konsolutgång knappen. Som visas nedan kör den här versionen JarSigner.

Slutsats
Sammanfattningsvis är det viktigt för både Java-utvecklare och användare att förstå koncepten kring signering av Jar-filer och användningen av verktyget "jar signer". Genom att utnyttja denna funktion kan man förbättra säkerheten och tillförlitligheten för sina applikationer, skydda dem mot potentiell manipulation och säkerställa tillförlitligheten hos tredjepartsbibliotek. Eftersom säkerheten för webbaserade applikationer fortsätter att vara en prioritet, kommer det att vara ovärderligt att bekanta sig med processen för att signera Jar-filer för att ligga steget före i detta snabbt föränderliga landskap.
Krypteringskonsulting förstår behovet av att signera filer och applikationer i denna digitala tidsålder. Vår kodsigneringsplattform, CodeSign Secure, visar vårt engagemang för säkerhet. Vi erbjuder signaturgenerering med Hårdvarusäkerhetsmoduler, tillsammans med klientsidans hashning och virusskanning. Vi är engagerade i din säkerhet och finns här för att utrusta dig med den information och de verktyg du behöver för att säkra det som är viktigast för dig. Besök www.krypteringskonsulting.com för att lära dig mer om någon av våra produkter eller för att boka en CodeSign Secure Demo.
