mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-07 08:31:01 +01:00
100 lines
8.8 KiB
Markdown
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 پیش از اعمال امضا
|