Files
bentopdf/docs/fa/tools/validate-signature-pdf.md
T

100 lines
8.8 KiB
Markdown

---
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 پیش از اعمال امضا