| SIGNTOOL(1) | دستورات کاربر | SIGNTOOL(1) |
نام (NAME)
signtool - ابزار امضای دیجیتال پروندهها و بایگانیهای JAR با گواهی NSS
خلاصه دستور (SYNOPSIS)
signtool [[-b basename]] [[-c Compression Level]] [[-d cert-dir]] [[-e extension]] [[-f filename]] [[-i installer script]] [[-h]] [[-H]] [[-v]] [[-w]] [[-G nickname]] [[-J]] [[-j directory]] [-k keyName] [[--keysize | -s size]] [[-l]] [[-L]] [[-M]] [[-m metafile]] [[--norecurse]] [[-O]] [[-o]] [[--outfile]] [[-p password]] [[-t|--token tokenname]] [[-z]] [[-X]] [[-x name]] [[--verbose value]] [[--leavearc]] [[-Z jarfile]] [directory-tree] [archive]
وضعیت (STATUS)
این مستندات هنوز در حال تکمیل و آمادهسازی هستند. لطفاً در بازبینی اولیه از طریق Mozilla NSS bug 836477[1] مشارکت فرمایید.
توضیحات (DESCRIPTION)
دستور signtool برای ایجاد امضای دیجیتالی بر روی پروندهها، اسکریپتها و بستههای بایگانی به وسیله کلیدها و گواهینامههای پایگاهداده NSS به کار میرود. این ابزار امضاهای دیجیتال ایجاد کرده و از یک پرونده بایگانی جاوا (JAR) برای پیوند دادن امضاها با پروندههای موجود در یک دایرکتوری بهره میگیرد. توزیع الکترونیکی نرمافزار بر بستر هر شبکهای همواره با خطرات امنیتی بالقوه همراه است. برای کمک به حل برخی از این مشکلات، میتوانید امضاهای دیجیتال را به پروندههای درون یک بایگانی JAR پیوند دهید. امضاهای دیجیتال به کلاینتهای مجهز به SSL امکان انجام دو عملیات مهم را میدهند:
* تایید هویت شخص، شرکت یا موجودیتی که امضای دیجیتال آن به پروندهها متصل است
* بررسی اینکه آیا پروندهها از زمان امضا شدن دستکاری شدهاند یا خیر
اگر یک گواهی امضا در اختیار دارید، میتوانید از ابزار امضای نتاسکیپ (Netscape Signing Tool) برای امضای دیجیتال پروندهها و بستهبندی آنها به عنوان پرونده JAR استفاده کنید. گواهی امضای شیء (Object-signing certificate) نوع خاصی از گواهی است که به شما امکان میدهد امضای دیجیتال خود را به یک یا چند پرونده پیوند دهید.
یک پرونده منفرد را میتوان با چندین امضای دیجیتال مختلف امضا کرد. برای مثال، یک توسعهدهنده تجاری نرمافزار ممکن است پروندههایی را که یک محصول نرمافزاری را تشکیل میدهند امضا کند تا اثبات کند پروندهها واقعاً متعلق به یک شرکت خاص هستند. مدیر شبکه نیز ممکن است همان پروندهها را با یک امضای دیجیتال اضافی مبتنی بر گواهی داخلی شرکت امضا کند تا نشان دهد استفاده از این محصول در سازمان تایید شده است.
اهمیت امضای دیجیتال با اهمیت امضای دستی قابل مقایسه است. زمانی که پروندهای را امضا کردید، بعداً به سختی میتوانید ادعا کنید که آن را امضا نکردهاید. در برخی شرایط، یک امضای دیجیتال ممکن است از نظر قانونی به اندازه یک امضای دستی الزامآور تلقی شود. بنابراین، باید نهایت دقت را به خرج دهید تا مطمئن شوید میتوانید از هر پروندهای که امضا و توزیع میکنید پشتیبانی کنید.
برای مثال، اگر توسعهدهنده نرمافزار هستید، باید کد خود را پیش از امضا آزمایش کنید تا مطمئن شوید عاری از بدافزار و ویروس است. به همین ترتیب، اگر مدیر شبکه هستید، باید پیش از امضای هر کدی اطمینان حاصل کنید که از یک منبع معتبر دریافت شده و با نرمافزارهای نصبشده روی رایانههای مقصد به درستی اجرا میشود.
پیش از اینکه بتوانید از این ابزار برای امضای پروندهها استفاده کنید، باید یک گواهی امضای شیء داشته باشید؛ یعنی گواهی خاصی که کلید خصوصی متصل به آن برای تولید امضای دیجیتال استفاده میشود. تنها برای مقاصد آزمایشی، میتوانید با ابزار Netscape Signing Tool 1.3 یک گواهی امضای شیء ایجاد کنید. زمانی که آزمایشها تمام شد و آماده توزیع نرمافزار خود بودید، باید گواهی امضای شیء را از یکی از دو منبع زیر تهیه کنید:
* یک مرجع صدور گواهی (CA) مستقل که هویت شما را احراز کرده و هزینه دریافت میکند. معمولاً اگر بخواهید نرمافزاری را امضا کنید که روی اینترنت توزیع خواهد شد، گواهی را از یک CA مستقل تهیه میکنید.
* نرمافزار سرور CA که روی اینترانت یا اکسترانت سازمانی شما اجرا میشود. سیستم مدیریت گواهی Netscape راهکار مدیریتی کاملی برای ایجاد، استقرار و مدیریت گواهینامهها از جمله مراجع صادرکننده گواهی امضای شیء فراهم میآورد.
شما همچنین باید پیش از امضای پروندهها، گواهی مرجع صدور گواهی (CA) که گواهی امضای شما را صادر کرده است داشته باشید. اگر گواهی مرجع صدور در نرمافزار Communicator شما از پیش نصب نشده باشد، معمولاً آن را با کلیک روی پیوند مربوطه در وبگاه مرجع صدور نصب میکنید؛ مثلاً در صفحهای که ثبتنام گواهی امضای خود را آغاز کردهاید. این مورد برای برخی گواهیهای آزمایشی و نیز گواهیهای صادرشده توسط سیستم مدیریت گواهی نتاسکیپ صدق میکند: علاوه بر دریافت گواهی امضای خود، باید گواهی CA را نیز بارگیری کنید. گواهینامههای CA برای چندین مرجع صدور به صورت پیشفرض در پایگاهداده گواهیهای Communicator نصب شدهاند.
هنگامی که گواهی امضای شیء را برای استفاده شخصی دریافت میکنید، به طور خودکار در نسخه کلاینت Communicator شما نصب میشود. نرمافزار Communicator از استاندارد رمزنگاری کلید عمومی موسوم به PKCS #12 پشتیبانی میکند که امکان جابهجایی کلید را فراهم میسازد. برای مثال، میتوانید یک گواهی امضای شیء و کلید خصوصی وابسته به آن را با استفاده از دستگاهی به اندازه کارت اعتباری به نام کارت هوشمند (Smart Card) از یک رایانه به رایانه دیگر انتقال دهید.
گزینهها (OPTIONS)
-b basename
-c#
-d certdir
-e extension
-f commandfile
-G nickname
-i scriptname
-J
-j directory
-k key ... directory
-l
-L
--leavearc
-m metafile
-M
--norecurse
-o
--outfile outputfile
-p password
-s keysize
-t token
-v archive
--verbosity value
-w archive
-x directory
-z
-Z jarfile
قالب فایل دستورات (THE COMMAND FILE FORMAT)
ورودیها در یک پرونده دستورات Netscape Signing Tool ساختار عمومی keyword=value دارند. هر چیزی قبل از علامت = در یک خط به عنوان کلیدواژه و هر چیزی بعد از اولین علامت = تا انتهای خط به عنوان مقدار در نظر گرفته میشود. خطوط خالی نادیده گرفته میشوند، کلیدواژهها به بزرگی و کوچکی حروف حساس نیستند اما مقادیر معمولاً حساس هستند. مقادیر نباید درون گیومه قرار گیرند.
گزینههای متناظر در فایل دستورات
basename
compression
certdir
extension
generate
installscript
javascriptdir
htmldir
certname
signdir
list
listall
metafile
modules
optimize
password
keysize
token
verify
who
exclude
notime
jarfile
outfile
مثالهای تکمیلی (EXTENDED EXAMPLES)
مثالهای زیر نحوه استفاده از ابزار در سناریوهای مختلف را نمایش میدهند.
فهرست کردن گواهیهای امضای موجود
با استفاده از گزینه -L میتوانید نام مستعار تمام گواهیهای موجود را مشاهده کرده و موارد مجاز برای امضا را بررسی نمایید:
signtool -L using certificate directory: /u/jsmith/.netscape S Certificates - ------------ BBN Certificate Services CA Root 1 IBM World Registry CA VeriSign Class 1 CA - Individual Subscriber - VeriSign, Inc. GTE CyberTrust Root CA Uptime Group Plc. Class 4 CA * Verisign Object Signing Cert Integrion CA GTE CyberTrust Secure Server CA AT&T Directory Services * test object signing cert Uptime Group Plc. Class 1 CA VeriSign Class 1 Primary CA - ------------ Certificates that can be used to sign objects have *'s to their left.
دو گواهی امضا نمایش داده شدهاند: Verisign Object Signing Cert و test object signing cert.
برای دریافت فهرستی تنها شامل گواهیهای امضا به همراه مرجع صدور هر یک، از گزینه -l استفاده کنید:
signtool -l
using certificate directory: /u/jsmith/.netscape
Object signing certificates
---------------------------------------
Verisign Object Signing Cert
Issued by: VeriSign, Inc. - Verisign, Inc.
Expires: Tue May 19, 1998
test object signing cert
Issued by: test object signing cert (Signtool 1.0 Testing
Certificate (960187691))
Expires: Sun May 17, 1998
---------------------------------------
برای مشاهده فهرستی شامل مراجع صدور گواهی (CA) از گزینه -L استفاده کنید.
امضای یک پرونده
۱. یک دایرکتوری خالی ایجاد کنید.
mkdir signdir
۲. پروندهای را درون آن قرار دهید.
echo boo > signdir/test.f
۳. نام مستعار گواهی امضای شیء خود را تعیین کرده و دایرکتوری را امضا کنید.
signtool -k MySignCert -Z testjar.jar signdir using key "MySignCert" using certificate directory: /u/jsmith/.netscape Generating signdir/META-INF/manifest.mf file.. --> test.f adding signdir/test.f to testjar.jar Generating signtool.sf file.. Enter Password or Pin for "Communicator Certificate DB": adding signdir/META-INF/manifest.mf to testjar.jar adding signdir/META-INF/signtool.sf to testjar.jar adding signdir/META-INF/signtool.rsa to testjar.jar tree "signdir" signed successfully
۴. بایگانی ایجادشده را آزمایش و بررسی کنید.
signtool -v testjar.jar
using certificate directory: /u/jsmith/.netscape
archive "testjar.jar" has passed crypto verification.
status path
------------ -------------------
verified test.f
استفاده از ابزار به همراه ابزار ZIP
برای استفاده از Netscape Signing Tool با یک ابزار فشردهسازی ZIP، باید برنامه مربوطه در متغیر محیطی PATH شما موجود باشد. میتوانید به جای گزینه -Z از ابزار zip برای بستهبندی استفاده کنید:
cd signdir zip -r ../myjar.jar * adding: META-INF/ (stored 0%) adding: META-INF/manifest.mf (deflated 15%) adding: META-INF/signtool.sf (deflated 28%) adding: META-INF/signtool.rsa (stored 0%) adding: text.txt (stored 0%)
تولید کلیدها و گواهی
گزینه -G یک جفتکلید عمومی-خصوصی جدید و گواهی ایجاد میکند. این گزینه نام مستعار گواهی جدید را به عنوان آرگومان دریافت میکند. اطلاعات گواهی از ورودی استاندارد خوانده میشود. به عنوان مثال:
signtool -G MyTestCert using certificate directory: /u/someuser/.netscape Enter certificate information. All fields are optional. Acceptable characters are numbers, letters, spaces, and apostrophes. certificate common name: Test Object Signing Certificate organization: Netscape Communications Corp. organization unit: Server Products Division state or province: California country (must be exactly 2 characters): US username: someuser email address: someuser@netscape.com Enter Password or Pin for "Communicator Certificate DB": [Password will not echo] generated public/private key pair certificate request generated certificate has been signed certificate "MyTestCert" added to database Exported certificate to x509.raw and x509.cacert.
اطلاعات گواهی را میتوان از یک پرونده با استفاده از عملگر تغییر مسیر (<) نیز خواند:
signtool -G MyTestCert inputfile
استفاده از گزینه -M برای فهرست کردن کارتهای هوشمند
میتوانید با استفاده از گزینه -M ماژولهای PKCS #11 از جمله کارتهای هوشمند در دسترس را فهرست کنید:
signtool -d "c:\netscape\users\jsmith" -M using certificate directory: c:\netscape\users\username Listing of PKCS11 modules ----------------------------------------------- 1. Netscape Internal PKCS #11 Module (this module is internally loaded) slots: 2 slots attached status: loaded slot: Communicator Internal Cryptographic Services Version 4.0 token: Communicator Generic Crypto Svcs slot: Communicator User Private Key and Certificate Services token: Communicator Certificate DB 2. CryptOS (this is an external module) DLL name: core32 slots: 1 slots attached status: loaded slot: Litronic 210 token: -----------------------------------------------
استفاده از کارت هوشمند برای امضای پروندهها
دستور signtool معمولاً آرگومان گزینه -k را برای تعیین گواهی امضا دریافت میکند. برای امضا با کارت هوشمند، نام کامل گواهی (Fully Qualified Name) را ارائه دهید:
signtool -k "MyCard:My Signing Cert" directory
بررسی حالت FIPS
از گزینه -M برای تایید اینکه از ماژول FIPS-140-1 استفاده میکنید بهره ببرید:
signtool -d "c:\netscape\users\jsmith" -M
using certificate directory: c:\netscape\users\jsmith
Listing of PKCS11 modules
-----------------------------------------------
1. Netscape Internal PKCS #11 Module
(this module is internally loaded)
slots: 2 slots attached
status: loaded
slot: Communicator Internal Cryptographic Services Version 4.0
token: Communicator Generic Crypto Svcs
slot: Communicator User Private Key and Certificate Services
token: Communicator Certificate DB
-----------------------------------------------
این مثال یونیکس نشان میدهد که ابزار از ماژول FIPS-140-1 استفاده میکند:
signtool -d "c:\netscape\users\jsmith" -M using certificate directory: c:\netscape\users\jsmith Enter Password or Pin for "Communicator Certificate DB": [password will not echo] Listing of PKCS11 modules ----------------------------------------------- 1. Netscape Internal FIPS PKCS #11 Module (this module is internally loaded) slots: 1 slots attached status: loaded slot: Netscape Internal FIPS-140-1 Cryptographic Services token: Communicator Certificate DB -----------------------------------------------
همچنین ببینید (SEE ALSO)
signver (1)
ویکی پروژه NSS اطلاعات تکمیلی در مورد طراحی پایگاهداده جدید و نحوه پیکربندی برنامهها برای استفاده از آن را در بر دارد.
منابع بیشتر (ADDITIONAL RESOURCES)
برای کسب اطلاعات درباره NSS و سایر ابزارهای مرتبط با آن (مانند JSS)، صفحه پروژه NSS را ببینید: http://www.mozilla.org/projects/security/pki/nss. پایگاه اینترنتی NSS مستقیماً تغییرات کد و انتشار نسخههای NSS را پوشش میدهد.
فهرستهای پستی: https://lists.mozilla.org/listinfo/dev-tech-crypto
کانال گفتگو (IRC): شبکه Freenode کانال #dogtag-pki
نویسندگان (AUTHORS)
ابزارهای NSS توسط توسعهدهندگان Netscape، Red Hat، Sun، Oracle، Mozilla و Google نوشته شده و نگهداری میشوند.
نویسندگان: Elio Maldonado <emaldona@redhat.com>، Deon Lackey <dlackey@redhat.com>.
مجوز (LICENSE)
تحت مجوز عمومی موزیلا (MPL) نسخه 2.0 منتشر شده است. اگر نسخهای از MPL همراه با این پرونده توزیع نشده است، میتوانید آن را از نشانی http://mozilla.org/MPL/2.0 دریافت فرمایید.
یادداشتها (NOTES)
- 1.
- Mozilla NSS bug 836477
| مه ۲۰۲۵ | nss |