OPENSSL-TS(1ssl) OpenSSL OPENSSL-TS(1ssl)

openssl-ts - دستور مرجع برچسب‌گذاری زمانی (TSA)

openssl ts -help

openssl ts -query [-config configfile] [-data file_to_hash] [-digest digest_bytes] [-digest] [-tspolicy object_id] [-no_nonce] [-cert] [-in request.tsq] [-out request.tsq] [-text] [-rand files] [-writerand file] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq]

openssl ts -reply [-config configfile] [-section tsa_section] [-queryfile request.tsq] [-passin password_src] [-signer tsa_cert.pem] [-inkey filename|uri] [-digest] [-chain certs_file.pem] [-tspolicy object_id] [-in response.tsr] [-token_in] [-out response.tsr] [-token_out] [-text] [-engine id] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq]

openssl ts -verify [-data file_to_hash] [-digest digest_bytes] [-queryfile request.tsq] [-in response.tsr] [-token_in] [-untrusted files|uris] [-CAfile file] [-CApath dir] [-CAstore uri] [-allow_proxy_certs] [-attime timestamp] [-no_check_time] [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-partial_chain] [-policy arg] [-policy_check] [-policy_print] [-purpose purpose] [-suiteB_128] [-suiteB_128_only] [-suiteB_192] [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level num] [-verify_depth num] [-verify_email email] [-verify_hostname hostname] [-verify_ip ip] [-verify_name name] [-x509_strict] [-issuer_checks] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq]

این دستور یک برنامهٔ کارخواه (کلاینت) و سرور پایه‌ای مرجع برچسب‌گذاری زمانی (Time Stamping Authority یا TSA) طبق استاندارد RFC 3161 (پروتکل برچسب زمانی، TSP) است. یک TSA می‌تواند بخشی از یک زیرساخت کلید عمومی (PKI) باشد و نقش آن ارائهٔ اثبات بلندمدت برای وجود یک دادهٔ مشخص پیش از زمانی معین است. در ادامه شرح مختصری از این پروتکل آمده است:

1.
کارخواه TSA یک مقدار هش یک‌طرفه را برای یک فایل داده محاسبه کرده و هش را به TSA ارسال می‌کند.
2.
مرجع TSA تاریخ و زمان جاری را به مقدار هش دریافت‌شده ضمیمه کرده، آن‌ها را امضا می‌کند و توکن برچسب زمانی (Timestamp Token) را به کارخواه بازمی‌گرداند. با ایجاد این توکن، TSA وجود فایل دادهٔ اصلی را در زمان ایجاد پاسخ گواهی می‌کند.
3.
کارخواه TSA توکن برچسب زمانی را دریافت کرده و امضای روی آن را اعتبارسنجی می‌کند. همچنین بررسی می‌کند که آیا توکن حاوی همان مقدار هشی است که به TSA ارسال کرده بود یا خیر.

یک واحد دادهٔ پروتکل (PDU) با کدگذاری DER برای انتقال یک درخواست برچسب زمانی به TSA و یکی دیگر برای ارسال پاسخ برچسب زمانی به کارخواه تعریف شده است. این دستور سه عملکرد اصلی دارد: ایجاد یک درخواست برچسب زمانی بر اساس یک فایل داده، ایجاد یک پاسخ برچسب زمانی بر اساس یک درخواست، و اعتبارسنجی این‌که آیا یک پاسخ با یک درخواست مشخص یا یک فایل داده مطابقت دارد یا خیر.

هنوز بر خلاف پیشنهاد RFC 3161، هیچ پشتیبانی‌ای برای ارسال خودکار درخواست‌ها/پاسخ‌ها از طریق HTTP یا TCP وجود ندارد. کاربران باید درخواست‌ها را از طریق ftp یا ایمیل ارسال کنند.

نمایش پیام راهنمای نحوهٔ استفاده از دستور.
تولید یک درخواست برچسب زمانی (TS query). برای جزئیات به بخش «تولید درخواست برچسب زمانی» مراجعه کنید.
تولید یک پاسخ برچسب زمانی (TS reply). برای جزئیات به بخش «تولید پاسخ برچسب زمانی» مراجعه کنید.
اعتبارسنجی یک پاسخ برچسب زمانی (TS response). برای جزئیات به بخش «اعتبارسنجی پاسخ برچسب زمانی» مراجعه کنید.

دستور -query می‌تواند برای ایجاد و چاپ یک درخواست برچسب زمانی با گزینه‌های زیر استفاده شود:

فایل پیکربندی مورد استفاده. اختیاری؛ برای شرح مقدار پیش‌فرض، به بخش «COMMAND SUMMARY» در openssl(1) مراجعه کنید.
فایل داده‌ای که باید درخواست برچسب زمانی برای آن ایجاد شود. اگر نه پارامتر -data و نه -digest مشخص نشده باشد، ورودی استاندارد (stdin) پیش‌فرض است. (اختیاری)
امکان مشخص کردن صریح اثر پیام (Message Imprint) بدون ارائهٔ فایل داده وجود دارد. اثر پیام باید در قالب هگزادسیمال، دو نویسه به ازای هر بایت، و به‌صورت اختیاری با جداسازی بایت‌ها توسط دو‌نقطه (مانند 1A:F6:01:... یا 1AF601...) مشخص شود. تعداد بایت‌ها باید با الگوریتم خلاصه پیام مورد استفاده مطابقت داشته باشد. (اختیاری)
خلاصهٔ پیامی که باید روی فایل داده اعمال شود. هر خلاصه‌سازی که توسط دستور openssl-dgst(1) پشتیبانی شود قابل استفاده است. مقدار پیش‌فرض SHA-256 است. (اختیاری)
سیاستی که کارخواه انتظار دارد TSA برای ایجاد توکن برچسب زمانی استفاده کند. می‌توان از نشانه‌گذاری OID نقطه‌دار یا نام‌های OID تعریف‌شده در فایل پیکربندی استفاده کرد. اگر هیچ سیاستی درخواست نشود، TSA از سیاست پیش‌فرض خود استفاده خواهد کرد. (اختیاری)
در صورت تعیین این گزینه، هیچ نانسی (Nonce) در درخواست مشخص نمی‌شود. در غیر این صورت، یک نانس شبه‌تصادفی ۶۴ بیتی در درخواست گنجانده می‌شود. استفاده از نانس برای محافظت در برابر حملات تکرار (Replay Attacks) توصیه می‌شود. (اختیاری)
انتظار می‌رود TSA گواهی‌نامهٔ امضاکنندهٔ خود را در پاسخ بگنجاند. (اختیاری)
یک درخواست برچسب زمانی قبلاً ایجادشده در قالب DER را مشخص می‌کند که در فایل خروجی چاپ خواهد شد. هنگام نیاز به بررسی محتوای یک درخواست در قالبی خوانا برای انسان کاربرد دارد. (اختیاری)
نام فایل خروجی که درخواست در آن نوشته خواهد شد. پیش‌فرض خروجی استاندارد (stdout) است. (اختیاری)
در صورت تعیین این گزینه، خروجی به‌جای DER در قالب متنی خوانا برای انسان خواهد بود. (اختیاری)
برای جزئیات بیشتر به بخش «Random State Options» در openssl(1) مراجعه کنید.

یک پاسخ برچسب زمانی (TimeStampResp) شامل یک وضعیت پاسخ و خودِ توکن برچسب زمانی (ContentInfo) است (در صورتی که تولید توکن موفقیت‌آمیز بوده باشد). دستور -reply برای ایجاد پاسخ برچسب زمانی یا توکن برچسب زمانی بر اساس یک درخواست و چاپ پاسخ/توکن در قالبی خوانا برای انسان است. اگر گزینهٔ -token_out مشخص نشود، خروجی همیشه یک پاسخ برچسب زمانی (TimeStampResp) خواهد بود، در غیر این صورت یک توکن برچسب زمانی (ContentInfo) است.

فایل پیکربندی مورد استفاده. اختیاری؛ برای شرح مقدار پیش‌فرض، به بخش «COMMAND SUMMARY» در openssl(1) مراجعه کنید. برای متغیرهای قابل پیکربندی به «گزینه‌های فایل پیکربندی» مراجعه کنید.
نام بخشی از فایل پیکربندی که شامل تنظیمات لازم برای تولید پاسخ است. در صورت مشخص نشدن، از بخش پیش‌فرض TSA استفاده می‌شود؛ برای جزئیات به «گزینه‌های فایل پیکربندی» مراجعه کنید. (اختیاری)
نام فایلی که شامل یک درخواست برچسب زمانی کدگذاری‌شده با DER است. (اختیاری)
منبع گذرواژه برای کلید خصوصی TSA را مشخص می‌کند. به توضیحات موجود در openssl(1) مراجعه کنید. (اختیاری)
گواهی‌نامهٔ امضاکنندهٔ TSA در قالب PEM. گواهی‌نامهٔ امضای TSA باید دقیقاً یک کاربرد کلید گسترش‌یافته (Extended Key Usage) به نام timeStamping داشته باشد. این کاربرد کلید گسترش‌یافته باید حیاتی (Critical) نیز باشد، در غیر این صورت گواهی‌نامه رد خواهد شد. متغیر signer_cert فایل پیکربندی را بازنویسی (Override) می‌کند. (اختیاری)
کلید خصوصی امضاکنندهٔ TSA در قالب PEM. گزینهٔ signer_key فایل پیکربندی را بازنویسی می‌کند. (اختیاری)
خلاصهٔ امضا برای استفاده. گزینهٔ signer_digest فایل پیکربندی را بازنویسی می‌کند. (اجباری، مگر آن‌که در فایل پیکربندی مشخص شده باشد)
مجموعه‌ای از گواهی‌نامه‌ها در قالب PEM که در صورت استفاده از گزینهٔ -cert برای درخواست، علاوه بر گواهی‌نامهٔ امضاکننده، همگی در پاسخ گنجانده خواهند شد. این فایل باید شامل زنجیرهٔ گواهی‌نامه برای گواهی‌نامهٔ امضاکننده از صادرکنندهٔ آن به بالا باشد. دستور -reply زنجیرهٔ گواهی‌نامه را به‌صورت خودکار ایجاد نمی‌کند. (اختیاری)
سیاست پیش‌فرضی که برای پاسخ استفاده می‌شود، مگر این‌که کارخواه صراحتاً یک سیاست خاص TSA را درخواست کند. OID می‌تواند با نشانه‌گذاری نقطه‌دار یا با نام آن مشخص شود. گزینهٔ default_policy فایل پیکربندی را بازنویسی می‌کند. (اختیاری)
یک پاسخ برچسب زمانی قبلاً ایجادشده یا توکن برچسب زمانی (در صورتی که -token_in نیز مشخص شده باشد) را در قالب DER مشخص می‌کند که در فایل خروجی نوشته خواهد شد. این گزینه نیازی به درخواست ندارد و برای مثال هنگامی مفید است که بخواهید محتوای یک پاسخ یا توکن را بررسی کنید یا بخواهید توکن برچسب زمانی را از یک پاسخ استخراج نمایید. اگر ورودی یک توکن و خروجی یک پاسخ برچسب زمانی باشد، اطلاعات وضعیت پیش‌فرض 'granted' به توکن اضافه می‌شود. (اختیاری)
این گزینه می‌تواند همراه با گزینهٔ -in استفاده شود و نشان می‌دهد که ورودی، یک توکن برچسب زمانی کدگذاری‌شده با DER (ContentInfo) است و نه یک پاسخ برچسب زمانی (TimeStampResp). (اختیاری)
پاسخ در این فایل نوشته می‌شود. قالب و محتوای فایل به گزینه‌های دیگر بستگی دارد (به -text و -token_out مراجعه کنید). پیش‌فرض خروجی استاندارد (stdout) است. (اختیاری)
خروجی به‌جای پاسخ برچسب زمانی (TimeStampResp)، یک توکن برچسب زمانی (ContentInfo) خواهد بود. (اختیاری)
در صورت تعیین این گزینه، خروجی به‌جای DER در قالب متنی خوانا برای انسان خواهد بود. (اختیاری)
به بخش «Engine Options» در openssl(1) مراجعه کنید. این گزینه منسوخ شده است.
به بخش «Provider Options» در openssl(1)، provider(7) و property(7) مراجعه کنید.

دستور -verify برای بررسی این است که آیا یک پاسخ برچسب زمانی یا توکن برچسب زمانی معتبر است و با یک درخواست برچسب زمانی یا فایل دادهٔ خاص مطابقت دارد یا خیر. دستور -verify از فایل پیکربندی استفاده نمی‌کند.

پاسخ یا توکن باید در برابر file_to_hash اعتبارسنجی شود. فایل با استفاده از الگوریتم خلاصه پیام مشخص‌شده در توکن هش می‌شود. گزینه‌های -digest و -queryfile نباید همراه با این گزینه استفاده شوند. (اختیاری)
پاسخ یا توکن باید در برابر خلاصه پیام مشخص‌شده با این گزینه اعتبارسنجی شود. تعداد بایت‌ها باید با الگوریتم خلاصه پیام مشخص‌شده در توکن مطابقت داشته باشد. گزینه‌های -data و -queryfile نباید همراه با این گزینه مشخص شوند. (اختیاری)
درخواست برچسب زمانی اصلی در قالب DER. گزینه‌های -data و -digest نباید همراه با این گزینه استفاده شوند. (اختیاری)
پاسخ برچسب زمانی در قالب DER که باید اعتبارسنجی شود. (اجباری)
این گزینه می‌تواند همراه با گزینهٔ -in استفاده شود و نشان می‌دهد که ورودی، یک توکن برچسب زمانی کدگذاری‌شده با DER (ContentInfo) است و نه یک پاسخ برچسب زمانی (TimeStampResp). (اختیاری)
مجموعه‌ای از گواهی‌نامه‌های غیرمعتمد اضافی که ممکن است هنگام ایجاد زنجیرهٔ گواهی‌نامه برای گواهی‌نامهٔ امضای TSA مورد نیاز باشند. تا زمانی که پاسخ پیشاپیش شامل این گواهی‌ها باشد، نیازی نیست که این مجموعه حاوی گواهی‌نامهٔ امضای TSA و گواهی‌نامه‌های CA میانی باشد. (اختیاری)

می‌توان چندین منبع را با کاما و/یا نویسهٔ فاصله از یکدیگر جدا کرد. هر فایل می‌تواند شامل چندین گواهی‌نامه باشد.

برای جزئیات بیشتر به بخش «Trusted Certificate Options» در openssl-verification-options(1) مراجعه کنید. حداقل یکی از گزینه‌های -CAfile، -CApath یا -CAstore باید مشخص شود.
تنظیم گزینه‌های گوناگون اعتبارسنجی زنجیرهٔ گواهی‌نامه. برای جزئیات به بخش «Verification Options» در openssl-verification-options(1) مراجعه کنید.

هرگونه خطای اعتبارسنجی موجب خروج دستور خواهد شد.

دستورهای -query و -reply از یک فایل پیکربندی استفاده می‌کنند. برای شرح کلی نحوهٔ نگارش (Syntax) فایل پیکربندی به config(5) مراجعه کنید. دستور -query تنها از بخش نام‌های نمادین OID استفاده می‌کند و می‌تواند بدون آن نیز کار کند. با این حال، دستور -reply برای عملکرد خود به فایل پیکربندی نیاز دارد.

هنگامی که یک گزینهٔ خط فرمان معادل با یک متغیر وجود دارد، گزینه همیشه تنظیمات موجود در فایل پیکربندی را بازنویسی می‌کند.

بخش tsa، default_tsa
این بخش اصلی است و نام بخش دیگری را مشخص می‌کند که شامل تمام گزینه‌های مربوط به دستور -reply است. این بخش پیش‌فرض می‌تواند با گزینهٔ خط فرمان -section بازنویسی شود. (اختیاری)
فایلی حاوی شناسه‌های شیء اضافی (OBJECT IDENTIFIERS) را مشخص می‌کند. هر سطر فایل باید شامل شکل عددی شناسهٔ شیء، به دنبال آن نویسهٔ فاصله، سپس نام کوتاه، به دنبال آن نویسهٔ فاصله و در نهایت نام کامل باشد. (اختیاری)
بخشی را در فایل پیکربندی مشخص می‌کند که شامل شناسه‌های شیء اضافی است. هر سطر باید شامل نام کوتاه شناسهٔ شیء به همراه = و شکل عددی آن باشد. هنگام استفاده از این گزینه، نام کوتاه و نام کامل یکسان خواهند بود. (اختیاری)
در زمان راه‌اندازی، فایل مشخص‌شده در مولد اعداد تصادفی بارگذاری می‌شود و هنگام خروج، ۲۵۶ بایت در آن نوشته خواهد شد. (نکته: استفاده از RANDFILE دیگر ضروری نیست، به بخش «تاریخچه» مراجعه کنید).
نام فایلی که شامل شماره سریال هگزادسیمال آخرین پاسخ برچسب زمانی ایجادشده است. این شماره با هر پاسخ ۱ واحد افزایش می‌یابد. اگر در زمان ایجاد پاسخ فایل وجود نداشته باشد، فایل جدیدی با شماره سریال ۱ ایجاد می‌شود. (اجباری)
موتور OpenSSL را مشخص می‌کند که به‌عنوان پیش‌فرض برای تمامی الگوریتم‌های موجود تنظیم خواهد شد. مقدار پیش‌فرض built-in است؛ می‌توانید هر موتور دیگری را که توسط OpenSSL پشتیبانی می‌شود مشخص کنید (مثلاً استفاده از chil برای HSM شرکت NCipher). (اختیاری)
گواهی‌نامهٔ امضای TSA در قالب PEM. همانند گزینهٔ خط فرمان -signer عمل می‌کند. (اختیاری)
فایلی شامل مجموعه‌ای از گواهی‌نامه‌های کدگذاری‌شده با PEM که باید در پاسخ گنجانده شوند. همانند گزینهٔ خط فرمان -chain عمل می‌کند. (اختیاری)
کلید خصوصی TSA در قالب PEM. همانند گزینهٔ خط فرمان -inkey عمل می‌کند. (اختیاری)
خلاصهٔ امضا برای استفاده. همانند گزینهٔ خط فرمان -digest عمل می‌کند. (اجباری، مگر این‌که در خط فرمان مشخص شده باشد)
سیاست پیش‌فرض مورد استفاده هنگامی که در درخواست هیچ سیاستی الزام نشده باشد. همانند گزینهٔ خط فرمان -tspolicy عمل می‌کند. (اختیاری)
فهرست جداشده با کاما از سیاست‌هایی که توسط TSA پذیرفته می‌شوند و تنها در صورتی استفاده می‌گردند که در درخواست صراحتاً یکی از آن‌ها مشخص شده باشد. (اختیاری)
فهرست الگوریتم‌های خلاصه پیامی که TSA می‌پذیرد. حداقل یک الگوریتم باید مشخص شود. (اجباری)
دقت منبع زمانی TSA به ثانیه، میلی‌ثانیه و میکروثانیه. مانند secs:1, millisecs:500, microsecs:100. اگر هر یک از مؤلفه‌ها ذکر نشود، مقدار صفر برای آن فیلد در نظر گرفته می‌شود. (اختیاری)
حداکثر تعداد ارقامی را که بیانگر کسر ثانیه هستند و باید در فیلد زمان گنجانده شوند، مشخص می‌کند. صفرهای انتهایی باید از زمان حذف شوند، بنابراین ممکن است در عمل ارقام کمتری وجود داشته باشد یا اصلاً کسر ثانیه‌ای نباشد. فقط در پلتفرم‌های یونیکس پشتیبانی می‌شود. حداکثر مقدار ۶ و پیش‌فرض ۰ است. (اختیاری)
اگر این گزینه yes باشد، پاسخ‌های تولیدشده توسط این TSA همیشه قابل ترتیب‌بندی خواهند بود، حتی اگر اختلاف زمانی بین دو پاسخ کمتر از مجموع دقت‌های آن‌ها باشد. پیش‌فرض no است. (اختیاری)
اگر نام موضوع (Subject) مرجع TSA باید در فیلد نام TSA در پاسخ گنجانده شود، این گزینه را روی yes تنظیم کنید. پیش‌فرض no است. (اختیاری)
اشیای SignedData ایجادشده توسط TSA همواره حاوی شناسهٔ گواهی‌نامهٔ امضاکننده در یک صفت امضاشده هستند (به RFC 2634، خدمات امنیتی پیشرفته یا Enhanced Security Services مراجعه کنید). اگر این متغیر روی no تنظیم شده باشد، تنها شناسهٔ همین گواهی‌نامهٔ امضاکننده در صفت امضاشدهٔ SigningCertificate گنجانده می‌شود. اگر این متغیر روی yes تنظیم شده باشد و متغیر certs یا گزینهٔ -chain مشخص شده باشد، شناسه‌های گواهی‌نامهٔ زنجیره نیز گنجانده خواهند شد، که در آن گزینهٔ -chain متغیر certs را بازنویسی می‌کند. پیش‌فرض no است. (اختیاری)
این گزینه تابع هش مورد استفاده برای محاسبهٔ شناسهٔ گواهی‌نامهٔ کلید عمومی TSA را مشخص می‌کند. پیش‌فرض sha256 است. (اختیاری)

تمام مثال‌های زیر فرض می‌کنند که OPENSSL_CONF روی یک فایل پیکربندی مناسب تنظیم شده است؛ برای نمونه فایل پیکربندی نمونهٔ openssl/apps/openssl.cnf کفایت می‌کند.

برای ایجاد یک درخواست برچسب زمانی برای design1.txt با خلاصهٔ SHA-256، بدون نانس و سیاست، و بدون الزام به وجود گواهی‌نامه در پاسخ:

openssl ts -query -data design1.txt -no_nonce \
      -out design1.tsq

برای ایجاد یک درخواست برچسب زمانی مشابه با تعیین صریح اثر پیام (Message Imprint):

openssl ts -query -digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \
       -no_nonce -out design1.tsq

برای چاپ محتوای درخواست قبلی در قالبی خوانا برای انسان:

openssl ts -query -in design1.tsq -text

برای ایجاد یک درخواست برچسب زمانی که شامل خلاصهٔ SHA-512 فایل design2.txt باشد، گواهی‌نامهٔ امضاکننده و نانس را درخواست کند، و یک شناسهٔ سیاست را مشخص نماید (با این فرض که نام tsa_policy1 در بخش OID فایل پیکربندی تعریف شده است):

openssl ts -query -data design2.txt -sha512 \
      -tspolicy tsa_policy1 -cert -out design2.tsq

پیش از ایجاد یک پاسخ، باید یک گواهی‌نامهٔ امضا برای TSA ایجاد شود که حاوی افزونهٔ حیاتیِ کاربرد کلید گسترش‌یافتهٔ timeStamping و فاقد هرگونه افزونهٔ کاربرد کلید دیگری باشد. برای ایجاد یک گواهی‌نامهٔ مناسب، می‌توانید این خط را به بخش گواهی‌نامهٔ کاربر (user certificate) در فایل پیکربندی اضافه کنید:

extendedKeyUsage = critical,timeStamping

برای دستورالعمل‌ها به openssl-req(1)، openssl-ca(1) و openssl-x509(1) مراجعه کنید. مثال‌های زیر فرض می‌کنند که cacert.pem شامل گواهی‌نامهٔ CA، فایل tsacert.pem گواهی‌نامهٔ امضای صادرشده توسط cacert.pem و فایل tsakey.pem کلید خصوصی مرجع TSA است.

برای ایجاد یک پاسخ برچسب زمانی برای یک درخواست:

openssl ts -reply -queryfile design1.tsq -inkey tsakey.pem \
      -signer tsacert.pem -out design1.tsr

اگر می‌خواهید از تنظیمات موجود در فایل پیکربندی استفاده کنید، می‌توانید به‌سادگی بنویسید:

openssl ts -reply -queryfile design1.tsq -out design1.tsr

برای چاپ یک پاسخ برچسب زمانی در خروجی استاندارد در قالبی خوانا برای انسان:

openssl ts -reply -in design1.tsr -text

برای ایجاد یک توکن برچسب زمانی به‌جای پاسخ برچسب زمانی:

openssl ts -reply -queryfile design1.tsq -out design1_token.der -token_out

برای چاپ یک توکن برچسب زمانی در خروجی استاندارد در قالبی خوانا برای انسان:

openssl ts -reply -in design1_token.der -token_in -text -token_out

برای استخراج توکن برچسب زمانی از یک پاسخ:

openssl ts -reply -in design1.tsr -out design1_token.der -token_out

برای افزودن اطلاعات وضعیت 'granted' به یک توکن برچسب زمانی و در نتیجه ایجاد یک پاسخ معتبر:

openssl ts -reply -in design1_token.der -token_in -out design1.tsr

برای اعتبارسنجی یک پاسخ برچسب زمانی در برابر یک درخواست:

openssl ts -verify -queryfile design1.tsq -in design1.tsr \
      -CAfile cacert.pem -untrusted tsacert.pem

برای اعتبارسنجی یک پاسخ برچسب زمانی که شامل زنجیرهٔ گواهی‌نامه است:

openssl ts -verify -queryfile design2.tsq -in design2.tsr \
      -CAfile cacert.pem

برای اعتبارسنجی یک توکن برچسب زمانی در برابر فایل دادهٔ اصلی:

openssl ts -verify -data design2.txt -in design2.tsr \
      -CAfile cacert.pem

برای اعتبارسنجی یک توکن برچسب زمانی در برابر اثر پیام (Message Imprint):

openssl ts -verify -digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \
       -in design2.tsr -CAfile cacert.pem

همچنین می‌توانید برای مثال‌های بیشتر به پوشهٔ 'test' نگاهی بیندازید.

  • هیچ پشتیبانی‌ای برای برچسب‌های زمانی روی SMTP وجود ندارد، هرچند پیاده‌سازی یک TSA مبتنی بر ایمیل خودکار با استفاده از procmail(1) و perl(1) بسیار آسان است. پشتیبانی از کارساز HTTP در قالب یک ماژول آپاچی جداگانه ارائه می‌شود. پشتیبانی از کارخواه HTTP توسط tsget(1) فراهم گردیده است. پروتکل خالص TCP/IP پشتیبانی نمی‌شود.
  • فایل حاوی آخرین شماره سریال TSA هنگام خواندن یا نوشتن قفل نمی‌شود. اگر بیش از یک نمونه از openssl(1) تلاش کند هم‌زمان پاسخ برچسب زمانی ایجاد کند، این مسئله مشکل‌ساز خواهد بود. هنگام استفاده از ماژول سرور آپاچی این مشکل وجود ندارد، زیرا قفل‌گذاری مناسب را انجام می‌دهد.
  • کلمهٔ FIXME را در فایل‌های منبع جستجو کنید.
  • کد منبع باید حتماً توسط فرد دیگری نیز بررسی شود.
  • آزمایش‌های بیشتری مورد نیاز است؛ من فقط برخی آزمایش‌های پایه‌ای را انجام داده‌ام (به test/testtsa مراجعه کنید).

نسخهٔ 1.1.1 اوپن‌اس‌اس‌ال یک مولد تصادفی جدید (CSPRNG) با سازوکار بذردهی (Seeding) بهبودیافته معرفی کرد. این سازوکار بذردهی جدید، تعریف یک RANDFILE برای ذخیره و بازیابی تصادفی‌بودن را غیرضروری می‌کند. این گزینه عمدتاً به دلایل سازگاری حفظ شده است.

گزینهٔ -engine در OpenSSL 3.0 منسوخ شد.

openssl(1), tsget(1), openssl-req(1), openssl-x509(1), openssl-ca(1), openssl-genrsa(1), config(5), ossl_store-file(7)

حق نشر ۲۰۰۶-۲۰۲۵ نویسندگان پروژه OpenSSL. تمامی حقوق محفوظ است.

تحت مجوز آپاچی، نسخه ۲.۰ («مجوز») منتشر شده است. استفاده از این فایل تنها بر اساس شرایط و مقررات مندرج در مجوز مجاز است. شما می‌توانید نسخه‌ای از مجوز را در فایل LICENSE در توزیع منبع یا در نشانی زیر دریافت کنید: https://www.openssl.org/source/license.html

2026-08-25 3.6.4