Microsoft Authenticode Code Signing di Linux dengan Jsign

tanda adalah alat Java open-source dan platform-independen untuk penandatanganan kode Microsoft Authenticode. Jsign mudah diintegrasikan dengan sistem build seperti Maven, Gradle, dan Ant, atau dapat digunakan langsung dari command line.

Dalam cara ini kita akan membahas penggunaan tanda dari baris perintah Linux untuk Penandatanganan kode OV / IV dan Penandatanganan kode EV. Karena Jsign berbasis Java, Anda juga dapat menggunakannya di sistem Windows dan MacOS.

Instal Jsign

Pertama, Anda harus mengunduh dan menginstal Jsign. Itu Situs web Jsign menyertakan tautan ke paket Debian dan RPM untuk kemudahan instalasi pada sistem Linux yang paling populer, serta a .jar file.

Penandatanganan Kode OV / IV

Bagian ini hanya berlaku untuk sertifikat penandatanganan kode Validasi Individual (IV) dan Validasi Organisasi (OV) yang dipesan sebelum 1 Juni 2023. Mulai 1 Juni 2023, sertifikat penandatanganan kode IV dan OV SSL.com telah mulai diterbitkan baik pada token USB Federal Information Processing Standard 140-2 (FIPS 140-2) atau melalui layanan penandatanganan kode cloud eSigner kami. 

Untuk penandatanganan kode OV/IV Anda dapat menggunakan sertifikat yang disimpan di keystore Java atau file PKCS#12 (PFX). Dalam semua contoh kode di bawah, ganti nilai yang ditampilkan dalam HURUF BESAR SEMUA dengan nilai sebenarnya.

  1. Pertama, gunakan keytool perintah untuk mendapatkan alias nilai untuk digunakan saat menandatangani:
    keytool -daftar -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-PASSWORD
  2. Periksa output Anda keytool perintah untuk baris yang dimulai dengan Alias name:.
    Jenis keystore: PKCS12 Penyedia keystore: SUN Keystore Anda berisi 1 entri Nama Alias: 1 Tanggal pembuatan: 18 Jan 2021 Jenis entri: PrivateKeyEntry Panjang rantai sertifikat: 4 ...

    Dalam contoh di atas, Alias name is 1.

  3. Gunakan perintah seperti berikut untuk menandatangani dan memberi label waktu pada file:
    • jsign perintah yang dipasang di seluruh sistem:
      jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • Dengan Jsigner .jar File:
      java -jar jsign-3.1.jar --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO- TANDA
  4. Jika perintah Anda berhasil, Anda akan melihat output seperti berikut:
    Menambahkan tanda tangan Authenticode ke example.exe
Catatan: Secara default, SSL.com mendukung stempel waktu dari kunci ECDSA.

Jika Anda mengalami kesalahan ini: The timestamp certificate does not meet a minimum public key length requirement, Anda harus menghubungi vendor perangkat lunak untuk mengizinkan stempel waktu dari kunci ECDSA.

Jika tidak ada cara bagi vendor perangkat lunak Anda untuk mengizinkan penggunaan titik akhir normal, Anda dapat menggunakan titik akhir warisan ini http://ts.ssl.com/legacy untuk mendapatkan stempel waktu dari Unit Stempel Waktu RSA.

Penandatanganan Kode EV

Anda juga dapat menggunakan Jsign dengan sertifikat penandatanganan kode EV. Contoh di sini menggunakan SSL.com Sertifikat penandatanganan kode EV dipasang di Token USB kunci keamanan yang divalidasi FIPS 140-2.

  1. Pertama, pastikan itu OpenSC diinstal pada sistem Anda sehingga dapat berkomunikasi dengan token Anda melalui PKCS # 11 API. Pada distro berbasis Debian seperti Ubuntu, Anda dapat menginstal OpenSC dengan apt:
    sudo apt install opensc
  2. Selanjutnya, buat file konfigurasi. Nama file tersebut sewenang-wenang, tetapi untuk contoh perintah di bawah ini kami akan menggunakan eToken.cfg. Perhatikan bahwa jalur ke opensc-pkcs11.so mungkin berbeda dalam instalasi OpenSC Anda, jadi periksa sebelum membuat file konfigurasi.
    name = OpenSC-PKCS11 description = SunPKCS11 via OpenSC library = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
  3. Gunakan keytool perintah untuk mendapatkan alias nilai untuk digunakan saat menandatangani:
    alat kunci -daftar -v -keystore NONE -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
  4. Periksa output Anda keytool perintah untuk baris yang dimulai dengan Alias name:. Jika token Anda berisi beberapa sertifikat, periksa tanggal validitas dan penerbit dalam keluaran terhadap sertifikat Anda. Perhatikan bahwa sertifikat penandatanganan kode EV yang diterbitkan di YubiKey dari SSL.com harus memiliki nama alias Certificate for PIV Authentication.
    Nama alias: Sertifikat untuk PIV Authentication Jenis entri: PrivateKeyEntry Panjang rantai sertifikat: 1 Sertifikat [1]: Pemilik: OID.1.3.6.1.4.1.311.60.2.1.3 = US, OID.1.3.6.1.4.1.311.60.2.1.2 .2.5.4.15 = Nevada, OID.20081614243 = Organisasi Swasta, CN = SSL Corp, SERIALNUMBER = NV2, O = SSL Corp, L = Houston, ST = TX, C = US Penerbit: CN = SSL.com EV Code Signing Intermediate CA RSA R7299, O = SSL Corp, L = Houston, ST = Texas, C = US Serial number: 93f57a3bac6570c781580f63172e17 Berlaku mulai: Jum 12 Apr 46:04:2020 EDT 17 sampai: Sab 12 Apr 46:04:2021 EDT XNUMX
  5. Gunakan perintah seperti berikut untuk menandatangani dan memberi label waktu pada file:
    • jsign perintah yang dipasang di seluruh sistem:
      jsign --keystore eToken.cfg --alias "Sertifikat untuk PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
    • Dengan Jsigner .jar File:
      java -jar jsign-3.1.jar --keystore eToken.cfg --alias "Certificate for PIV Authentication" --storetype PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE -TO-SIGN
  6. Jika perintah Anda berhasil, Anda akan melihat output seperti berikut:
    Menambahkan tanda tangan Authenticode ke example.exe
Catatan: Secara default, SSL.com mendukung stempel waktu dari kunci ECDSA.

Jika Anda mengalami kesalahan ini: The timestamp certificate does not meet a minimum public key length requirement, Anda harus menghubungi vendor perangkat lunak untuk mengizinkan stempel waktu dari kunci ECDSA.

Jika tidak ada cara bagi vendor perangkat lunak Anda untuk mengizinkan penggunaan titik akhir normal, Anda dapat menggunakan titik akhir warisan ini http://ts.ssl.com/legacy untuk mendapatkan stempel waktu dari Unit Stempel Waktu RSA.

Verifikasi Tanda Tangan Digital

  1. Anda dapat memverifikasi bahwa tanda tangan digital Anda valid dengan melihat detail tanda tangan di Windows.
    Tanda tangan digital tidak masalah
  2. Anda juga dapat menggunakan Alat Tanda di Windows untuk memverifikasi tanda tangan digital.
    signtool.exe verifikasi / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' File: C: \ Users \ Aaron Russell \ Desktop \ example.exe Index Algorithm Timestamp =========== ============================= 0 sha256 RFC3161 Berhasil diverifikasi: C: \ Users \ Aaron Russell \ Desktop \ example.exe

Berlangganan Buletin SSL.com

Jangan lewatkan artikel baru dan pembaruan dari SSL.com

Tetap Terinformasi dan Aman

SSL.com adalah pemimpin global dalam keamanan siber, PKI dan sertifikat digital. Daftar untuk menerima berita industri terkini, tips, dan pengumuman produk dari SSL.com.

Kami sangat menantikan tanggapan Anda

Ikuti survei kami dan beri tahu kami pendapat Anda tentang pembelian terakhir Anda.