Podepisování kódu Microsoft Authenticode v systému Linux pomocí Jsign

Jsign je open-source, nezávislý na platformě Java nástroj pro podepisování kódu Microsoft Authenticode. Jsign lze snadno integrovat do sestavovacích systémů jako Maven, Gradle a Ant, nebo jej lze použít přímo z příkazového řádku.

V tomto návodu pokryjeme použití Jsign z příkazového řádku Linuxu pro Podepisování kódu OV / IV a Podepisování kódu EV. Protože Jsign je založen na prostředí Java, můžete jej použít také v systémech Windows a MacOS.

Nainstalujte Jsign

Nejprve si budete muset stáhnout a nainstalovat Jsign. The Web společnosti Jsign obsahuje odkazy na balíčky Debian a RPM pro snadnou instalaci na nejpopulárnější systémy Linux, stejně jako a .jar soubor.

Podepisování kódu OV / IV

Tato část se vztahuje pouze na certifikáty pro podpis kódu pro individuální ověření (IV) a ověření organizace (OV), které byly objednány před 1. červnem 2023. Počínaje 1. červnem 2023, certifikáty pro podepisování kódu IV a OV SSL.com se začaly vydávat buď na tokenech USB Federal Information Processing Standard 140-2 (FIPS 140-2) nebo prostřednictvím naší cloudové služby pro podepisování kódu eSigner. 

Pro podepisování kódu OV/IV můžete použít certifikát uložený v úložišti klíčů Java nebo v souboru PKCS#12 (PFX). Ve všech níže uvedených příkladech kódu nahraďte hodnoty zobrazené VELKÝMI PÍSMENY svými skutečnými hodnotami.

  1. Nejprve použijte keytool příkaz získat alias hodnota, která se má použít při podepisování:
    keytool -list -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-HESLO
  2. Zkontrolujte výstup vašeho keytool příkaz pro řádek začínající na Alias name:.
    Typ úložiště klíčů: PKCS12 Poskytovatel úložiště klíčů: SUN Vaše úložiště klíčů obsahuje 1 záznam Alias ​​název: 1 Datum vytvoření: 18. ledna 2021 Typ záznamu: Délka řetězce certifikátu PrivateKeyEntry: 4 ...

    Ve výše uvedeném příkladu Alias name is 1.

  3. K podepsání a časovému razítku souboru použijte následující příkaz:
    • jsign příkaz nainstalovaný v celém systému:
      jsign --keystore KEYSTORE.p12 - alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 SOUBOR K PODPISU
    • S Jsignerem .jar Soubor:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 - alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 SOUBOR DO PODEPSAT
  4. Pokud je váš příkaz úspěšný, měli byste vidět výstup, jako je následující:
    Přidání podpisu Authenticode do souboru example.exe
Poznámka: Ve výchozím nastavení SSL.com podporuje časová razítka z klíčů ECDSA.

Pokud narazíte na tuto chybu: The timestamp certificate does not meet a minimum public key length requirement, měli byste kontaktovat svého dodavatele softwaru, aby povolil časové značky z klíčů ECDSA.

Pokud váš dodavatel softwaru nemůže žádným způsobem umožnit použití normálního koncového bodu, můžete použít tento starší koncový bod http://ts.ssl.com/legacy získat časové razítko z jednotky RSA Timestamping Unit.

Podepisování kódu EV

Můžete také použít Jsign s certifikátem pro podepisování kódu EV. Příklad zde používá SSL.com Certifikát podpisu EV kódu nainstalován na a USB token bezpečnostního klíče s validací FIPS 140-2.

  1. Nejprve se ujistěte, že OpenSC je nainstalován ve vašem systému, aby mohl komunikovat s vaším tokenem prostřednictvím rozhraní PKCS # 11 API. Na distribucích založených na Debianu, jako je Ubuntu, můžete nainstalovat OpenSC apt:
    sudo apt install opensc
  2. Dále vytvořte konfigurační soubor. Název souboru je libovolný, ale pro níže uvedené příklady příkazů použijeme eToken.cfg. Všimněte si, že cesta k opensc-pkcs11.so se může lišit ve vaší instalaci OpenSC, proto před vytvořením konfiguračního souboru zkontrolujte.
    name = OpenSC-PKCS11 description = SunPKCS11 via OpenSC library = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. Použití keytool příkaz získat alias hodnota, která se má použít při podepisování:
    keytool -list -v -keystore NONE -storetype PKCS11 -storepass TOKEN -PIN -poskytClass sun.security.pkcs11.SunPKCS11 -poskytovatelArg eToken.cfg
  4. Zkontrolujte výstup vašeho keytool příkaz pro řádek začínající na Alias name:. Pokud váš token obsahuje více certifikátů, zkontrolujte data platnosti a vydavatele ve výstupu oproti vašemu certifikátu. Všimněte si, že certifikáty pro podepisování EV kódů vydané na YubiKey z SSL.com by měly mít alias Certificate for PIV Authentication.
    Alias ​​name: Certificate for PIV Authentication Typ položky: PrivateKeyEntry Délka řetězce certifikátu: 1 Certifikát [1]: Vlastník: OID.1.3.6.1.4.1.311.60.2.1.3 = USA, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = Nevada, OID.20081614243 = Soukromá organizace, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Houston, ST = TX, C = USA Vydavatel: CN = SSL.com Podepisování EV kódu CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = USA Sériové číslo: 93f57a3bac6570c781580f63172e17 Platné od: Pá 12. dubna 46:04:2020 EDT 17 do: So 12. dubna 46:04:2021 EDT XNUMX
  5. K podepsání a časovému razítku souboru použijte následující příkaz:
    • jsign příkaz nainstalovaný v celém systému:
      jsign --keystore eToken.cfg - alias "Certifikát pro ověření PIV" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 SOUBOR NA PODPIS
    • S Jsignerem .jar Soubor:
      java -jar jsign-3.1.jar --keystore eToken.cfg - alias "Certifikát pro ověření PIV" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 SOUBOR -K PODPISU
  6. Pokud je váš příkaz úspěšný, měli byste vidět výstup, jako je následující:
    Přidání podpisu Authenticode do souboru example.exe
Poznámka: Ve výchozím nastavení SSL.com podporuje časová razítka z klíčů ECDSA.

Pokud narazíte na tuto chybu: The timestamp certificate does not meet a minimum public key length requirement, měli byste kontaktovat svého dodavatele softwaru, aby povolil časové značky z klíčů ECDSA.

Pokud váš dodavatel softwaru nemůže žádným způsobem umožnit použití normálního koncového bodu, můžete použít tento starší koncový bod http://ts.ssl.com/legacy získat časové razítko z jednotky RSA Timestamping Unit.

Ověřte digitální podpis

  1. Platnost digitálního podpisu můžete ověřit zobrazením podrobností podpisu ve Windows.
    Digitální podpis je v pořádku
  2. Můžete také použít SignTool ve Windows k ověření digitálního podpisu.
    signtool.exe ověřit / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' Soubor: C: \ Users \ Aaron Russell \ Desktop \ example.exe Indexový algoritmus Timestamp ============ ============================= 0 sha256 RFC3161 Úspěšně ověřeno: C: \ Users \ Aaron Russell \ Desktop \ example.exe

Přihlaste se k odběru zpravodaje SSL.com

Nenechte si ujít nové články a aktualizace z SSL.com

Zůstaňte informováni a zabezpečte se

SSL.com je světovým lídrem v oblasti kybernetické bezpečnosti, PKI a digitální certifikáty. Přihlaste se k odběru nejnovějších zpráv z oboru, tipů a oznámení o produktech SSL.com.

Budeme rádi za vaši zpětnou vazbu

Vyplňte náš průzkum a sdělte nám svůj názor na váš nedávný nákup.