--- title: اعتبارسنجی امضا description: امضاهای دیجیتال در فایل‌های PDF را تأیید کنید. اعتبار گواهی، هویت امضاکننده، یکپارچگی سند و وضعیت زنجیرهٔ اعتماد را بررسی کنید. --- # اعتبارسنجی امضا یک PDF امضاشده بارگذاری کنید تا این ابزار همهٔ امضاهای دیجیتال را استخراج کند، امضاکننده را شناسایی کند، اعتبار گواهی را بررسی کند و گزارش دهد که آیا سند پس از امضا تغییر کرده است یا نه. همچنین می‌توانید یک گواهی مورد اعتماد ارائه دهید تا زنجیرهٔ امضا تأیید شود. ## نحوهٔ کار 1. یک فایل PDF امضاشده بارگذاری کنید. اعتبارسنجی به‌طور خودکار آغاز می‌شود. 2. ابزار خلاصه‌ای نمایش می‌دهد: تعداد امضاهای یافت‌شده و تعداد امضاهای معتبر. 3. برای هر امضا یک کارت جزئیات با نام امضاکننده، صادرکننده، تاریخ‌ها و وضعیت نمایش داده می‌شود. 4. در صورت تمایل، یک **گواهی مورد اعتماد** (.pem، .crt، .cer، .der) بارگذاری کنید تا امضا در برابر یک لنگر اعتماد مشخص تأیید شود. اعتبارسنجی دوباره به‌طور خودکار اجرا می‌شود. ## چه چیزهایی بررسی می‌شود ### تجزیهٔ امضا ابزار اشیای امضای PKCS#7 را از PDF استخراج می‌کند، ساختار ASN.1 را رمزگشایی می‌کند و گواهی X.509 امضاکننده را همراه با هر زنجیرهٔ گواهی جاسازی‌شده در امضا بیرون می‌کشد. ### اعتبار گواهی - **انقضا**: آیا گواهی در حال حاضر در بازهٔ تاریخ معتبر خود قرار دارد؟ - **تشخیص خودامضا**: آیا گواهی صادرکنندهٔ خودش است؟ - **زنجیرهٔ اعتماد**: وقتی گواهی مورد اعتماد ارائه شده باشد، آیا زنجیرهٔ گواهی امضاکننده به آن می‌رسد؟ ### تأیید رمزنگاری - ابزار بایت‌های تحت پوشش `/ByteRange` امضا را بازسازی می‌کند، آن‌ها را با الگوریتمی که امضاکننده اعلام کرده هش می‌کند و نتیجه را با ویژگی `messageDigest` داخل امضا مقایسه می‌کند. - سپس ویژگی‌های امضاشده را دوباره به‌صورت یک DER SET سریال‌سازی می‌کند و امضا را با کلید عمومی گواهی امضاکننده تأیید می‌کند. - **یک امضا فقط وقتی معتبر گزارش می‌شود که همهٔ این مراحل موفق باشند.** اگر بایت‌های PDF پس از امضا تغییر کرده باشند یا امضای جاسازی‌شده با کلید امضاکننده مطابقت نداشته باشد، وضعیت «نامعتبر: تأیید رمزنگاری ناموفق بود» همراه با دلیل مشخص نمایش داده می‌شود. #### الگوریتم‌های امضای پشتیبانی‌شده | الگوریتم | مسیر تأیید | | ----------------------- | ------------------------------------------------------------------------------ | | RSA (PKCS#1 v1.5) | `publicKey.verify` در node-forge، با جایگزین Web Crypto | | RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` | | ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` پس از تبدیل امضای DER به IEEE P1363 | اگر امضایی از الگوریتمی خارج از این فهرست استفاده کند (برای مثال Ed25519، SM2 یا RSA با OID چکیدهٔ غیرمعمول)، کارت وضعیت **«تأییدنشده: الگوریتم امضای پشتیبانی‌نشده»** را به رنگ زرد همراه با OID یا دلیل مشخص نشان می‌دهد. این یک تمایز سه‌حالته و عمدی است: - **معتبر**: امضا به‌صورت رمزنگاری با کلید عمومی امضاکننده تأیید شده است. - **نامعتبر**: تأیید اجرا شد و نتیجهٔ منفی داد (بایت‌ها تغییر کرده‌اند یا کلید مطابقت ندارد). - **تأییدنشده**: ابزار نتوانست تأیید را برای این الگوریتم اجرا کند. فرادادهٔ گواهی همچنان نمایش داده می‌شود، اما باید امضا را «نامشخص» در نظر بگیرید و آن را با Adobe Acrobat یا `openssl cms -verify` تأیید کنید. ### الگوریتم‌های چکیدهٔ ناامن - امضاهایی که از **MD5 یا SHA-1** استفاده می‌کنند نامعتبر شمرده شده و با وضعیت «چکیدهٔ ناامن» علامت‌گذاری می‌شوند. برای هر دو الگوریتم حملات تصادم منتشر شده است، بنابراین امضا روی هش SHA-1 یا MD5 هیچ تضمینی برای یکپارچگی ندارد. - SHA-224، SHA-256، SHA-384 و SHA-512 همگی پذیرفته می‌شوند. ### پوشش سند - **پوشش کامل**: امضا کل فایل PDF را پوشش می‌دهد، یعنی پس از امضا هیچ بایتی اضافه یا تغییر داده نشده است. - **پوشش جزئی**: امضا فقط بخشی از فایل را پوشش می‌دهد. این می‌تواند نشان دهد که پس از امضا تغییراتی انجام شده است (نه لزوماً مخرب، چون ذخیره‌سازی‌های افزایشی پوشش جزئی ایجاد می‌کنند). ## جزئیات امضا هر کارت امضا موارد زیر را نشان می‌دهد: - **امضاشده توسط**: نام عمومی، سازمان و ایمیل از گواهی امضاکننده - **صادرکننده**: مرجع صدور گواهی که گواهی امضاکننده را صادر کرده است - **تاریخ امضا**: مهر زمانی جاسازی‌شده در امضا - **معتبر از / معتبر تا**: دورهٔ اعتبار گواهی - **دلیل**: دلیل امضای سند (در صورت ارائه) - **مکان**: محل امضا (در صورت ارائه) - **وضعیت پوشش**: کامل یا جزئی - **نشان اعتماد**: مورد اعتماد یا خارج از زنجیرهٔ اعتماد (فقط وقتی گواهی سفارشی ارائه شده باشد) ### جزئیات فنی بخش جزئیات فنی را برای موارد زیر باز کنید: - شمارهٔ سریال گواهی امضاکننده - الگوریتم چکیده (SHA-256، SHA-512 و غیره) - الگوریتم امضا (RSA با SHA-256، ECDSA با SHA-256 و غیره) - پیام‌های خطا برای امضاهای نامعتبر ## موارد استفاده - تأیید یک قرارداد امضاشدهٔ دیجیتال پیش از امضای متقابل - ممیزی اسناد امضاشده برای اطمینان از اینکه دستکاری نشده‌اند - بررسی اینکه آیا گواهی از زمان امضای سند منقضی شده است - اعتبارسنجی امضاها در برابر گواهی ریشهٔ سازمان شما - بررسی جزئیات امضای اسناد دولتی یا حقوقی ## نکته‌ها - گواهی خودامضا به معنای نامعتبر بودن امضا نیست، بلکه یعنی هویت امضاکننده از طریق یک شخص ثالث مورد اعتماد قابل تأیید نیست. این برای اسناد داخلی رایج است. - پوشش جزئی همیشه نشانهٔ دستکاری نیست. بسیاری از گردش‌کارهای PDF به‌روزرسانی‌های افزایشی (مانند امضای دوم) اضافه می‌کنند که پوشش جزئی ایجاد می‌کند. - گواهی ریشه یا میانی سازمان خود را به‌عنوان گواهی مورد اعتماد بارگذاری کنید تا زنجیرهٔ اعتماد تأیید شود. ## ابزارهای مرتبط - [امضای دیجیتال](./digital-sign-pdf): امضای PDFها با گواهی خودتان - [مسطح‌سازی PDF](./flatten-pdf): مسطح‌سازی PDF پیش از امضا برای جلوگیری از تغییرات پس از امضا - [حذف فراداده](./remove-metadata): پاک‌سازی PDF پیش از اعمال امضا