Jsign هي أداة جافا مفتوحة المصدر ومستقلة عن النظام الأساسي لتوقيع كود Microsoft Authenticode. يسهل دمج Jsign مع أنظمة الإنشاء مثل Maven و Gradle و Ant ، أو يمكن استخدامها مباشرة من سطر الأوامر.
في هذا الكيفية سنغطي استخدام Jsign من سطر أوامر Linux لـ توقيع كود OV / IV و توقيع رمز EV. نظرًا لأن Jsign يعتمد على Java ، يمكنك أيضًا استخدامه على أنظمة Windows و MacOS.
قم بتثبيت Jsign
أولاً ، سيتعين عليك تنزيل Jsign وتثبيته. ال موقع ويب Jsign يتضمن روابط إلى حزم دبيان و RPM لسهولة التثبيت على أنظمة Linux الأكثر شيوعًا ، بالإضافة إلى ملف .jar
ملف.
توقيع كود OV / IV
بالنسبة لتوقيع رمز OV/IV، يمكنك استخدام شهادة مخزنة في ملف Java keystore أو ملف PKCS#12 (PFX). في كافة أمثلة التعليمات البرمجية أدناه، استبدل القيم الموضحة بالأحرف الكبيرة بقيمك الفعلية.
- أولاً ، استخدم ملف
keytool
الأمر للحصول علىalias
قيمة لاستخدامها عند التوقيع:أداة المفاتيح -قائمة -v -keystore PKCS12-FILE.p12 -storetype PKCS12 -storepass PKCS12-PASSWORD
- تحقق من إخراج ملف
keytool
الأمر لسطر يبدأ بAlias name:
.نوع Keystore: مزود Keystore PKCS12: SUN يحتوي مخزن المفاتيح الخاص بك على إدخال واحد الاسم المستعار: 1 تاريخ الإنشاء: 1 يناير 18 نوع الإدخال: PrivateKeyEntry طول سلسلة الشهادة: 2021 ...
في المثال أعلاه ،
Alias name
is1
. - استخدم أمرًا مثل ما يلي للتوقيع على ملف وطابعه الزمني:
jsign
أمر مثبت على مستوى النظام:jsign --keystore KEYSTORE.p12 --alias ALIAS-NAME --storetype PKCS12 --storepass PKCS12-PASSWORD --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
- مع Jsigner
.jar
ملف: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- إشارة
- إذا كان الأمر الخاص بك ناجحًا ، يجب أن ترى الإخراج مثل ما يلي:
إضافة توقيع رمز المصادقة إلى example.exe
إذا واجهت هذا الخطأ:
The timestamp certificate does not meet a minimum public key length requirement
، يجب عليك الاتصال ببائع البرنامج للسماح بالطوابع الزمنية من مفاتيح ECDSA.إذا لم تكن هناك طريقة تسمح لمورّد البرامج لديك باستخدام نقطة النهاية العادية ، فيمكنك استخدام نقطة النهاية القديمة هذه
http://ts.ssl.com/legacy
للحصول على طابع زمني من وحدة طابع زمني RSA.توقيع رمز EV
يمكنك أيضًا استخدام Jsign مع شهادة توقيع رمز EV. يستخدم المثال هنا SSL.com شهادة توقيع رمز EV مثبتة على أ تم التحقق من صحة FIPS 140-2 رمز USB لمفتاح الأمان.
- أولا ، تأكد من ذلك OpenSC مثبت على نظامك حتى يتمكن من التواصل مع الرمز المميز الخاص بك عبر واجهة برمجة تطبيقات PKCS # 11. في التوزيعات المستندة إلى Debian مثل Ubuntu ، يمكنك تثبيت OpenSC معها
apt
:سودو ملائمة تثبيت openc
- بعد ذلك ، قم بإنشاء ملف تكوين. اسم الملف تعسفي ، ولكن بالنسبة للأوامر الموضحة أدناه سنستخدمها
eToken.cfg
. لاحظ أن المسار إلىopensc-pkcs11.so
قد يختلف في تثبيت OpenSC الخاص بك ، لذا تحقق قبل إنشاء ملف التكوين.name = وصف OpenSC-PKCS11 = SunPKCS11 عبر مكتبة OpenSC = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so slotListIndex = 0
- استخدم
keytool
الأمر للحصول علىalias
قيمة لاستخدامها عند التوقيع:keytool -list -v -keystore NONE -storetype PKCS11 -storepass TOKEN-PIN -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.cfg
- تحقق من إخراج ملف
keytool
الأمر لسطر يبدأ بAlias name:
. إذا كان الرمز المميز الخاص بك يحتوي على شهادات متعددة ، فتحقق من تواريخ الصلاحية والمُصدر في المخرجات مقابل شهادتك. لاحظ أن شهادات توقيع رمز EV الصادرة على YubiKey من SSL.com يجب أن يكون لها اسم مستعارCertificate for PIV Authentication
.الاسم المستعار: شهادة من أجل مصادقة PIV نوع الإدخال: PrivateKeyEntry طول سلسلة الشهادة: 1 شهادة [1]: المالك: 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 = مؤسسة خاصة، CN = SSL Corp، SERIALNUMBER = NV2، O = SSL Corp، L = Houston، ST = TX، C = مُصدر الولايات المتحدة: CN = SSL.com وسيط توقيع رمز EV CA RSA R7299، O = SSL Corp، L = Houston، ST = Texas، C = US الرقم التسلسلي: 93f57a3bac6570c781580f63172e17 صالح من: الجمعة 12 أبريل 46:04:2020 EDT 17 حتى: السبت أبريل 12 46:04:2021 EDT XNUMX
- استخدم أمرًا مثل ما يلي للتوقيع على ملف وطابعه الزمني:
jsign
أمر مثبت على مستوى النظام:jsign --keystore eToken.cfg --alias "شهادة لمصادقة PIV" - نوع المتجر PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE-TO-SIGN
- مع Jsigner
.jar
ملف:java -jar jsign-3.1.jar --keystore eToken.cfg --alias "شهادة مصادقة PIV" - نوع المتجر PKCS11 --storepass TOKEN-PIN --tsaurl http://ts.ssl.com --tsmode RFC3161 FILE -توقع
- إذا كان الأمر الخاص بك ناجحًا ، يجب أن ترى الإخراج مثل ما يلي:
إضافة توقيع رمز المصادقة إلى example.exe
إذا واجهت هذا الخطأ:
The timestamp certificate does not meet a minimum public key length requirement
، يجب عليك الاتصال ببائع البرنامج للسماح بالطوابع الزمنية من مفاتيح ECDSA.إذا لم تكن هناك طريقة تسمح لمورّد البرامج لديك باستخدام نقطة النهاية العادية ، فيمكنك استخدام نقطة النهاية القديمة هذه
http://ts.ssl.com/legacy
للحصول على طابع زمني من وحدة طابع زمني RSA.تحقق من التوقيع الرقمي
- يمكنك التحقق من صلاحية توقيعك الرقمي من خلال عرض تفاصيل التوقيع في Windows.
- يمكنك أيضا استخدام أداة SignTool في Windows للتحقق من التوقيع الرقمي.
تحقق Signtool.exe / pa 'C: \ Users \ Aaron Russell \ Desktop \ example.exe' الملف: C: \ Users \ Aaron Russell \ Desktop \ example.exe Index Algorithm Timestamp =========== ============================== 0 sha256 RFC3161 تم التحقق بنجاح: C: \ Users \ Aaron Russell \ Desktop \ example.exe