يقول الناس "توقيع رقمي" و"توقيع إلكتروني" وكأنهما الشيء نفسه. وليسا كذلك. التوقيع الإلكتروني مفهوم قانوني — أي علامة تُوضع بنيّة التوقيع. أما التوقيع الرقمي فآلية تشفيرية محدّدة: رقم يُحسب بمفتاح خاص، يستطيع أي حائز على المفتاح العام المطابق أن يفحصه. والتحقق منه ليس مسألة ثقة أو رأي. إنه حساب. فإمّا أن تُعيد الرياضيات إنتاج نفسها، أو لا.
هذا ما يحسبه المتحقّق فعلياً حين يقرّر أن توقيعاً رقمياً أصلي — ولماذا تنطبق الفحوص الثلاثة نفسها سواء كان الكائن الموقَّع ملف PDF، أو فاتورة XML، أو ملفاً خاماً.
أشياء مستقلة يُعيد المتحقّق إنتاجها: هاش المستند، وفحص توقيع المفتاح العام، وسلسلة الثقة للشهادة. يجب أن تنجح الثلاثة جميعاً
فشل أي واحدة يعني «لم يُتحقّق» — وأيّها فشل يخبرك بما حدث
بنية رسائل التشفير (CMS) — المعيار القياسي من IETF الذي يحمل توقيعاً رقمياً منفصلاً وسماته الموقَّعة
IETF، بنية رسائل التشفير
صيغة الشهادة التي تربط مفتاحاً عاماً بهوية متحقَّق منها، تُصدرها وتوقّعها سلطة تصديق
ITU-T X.509 / RFC 5280
ما هو التوقيع الرقمي فعلاً
يُبنى التوقيع الرقمي من التشفير غير المتماثل — زوج من المفاتيح. المفتاح الخاص سرّي ولا يحوزه إلا الموقّع (أو، في التوقيع السحابي، داخل وحدة أمان مادية بالنيابة عنه). والمفتاح العام مضمَّن في شهادة يستطيع أي أحد قراءتها. ما يقفله أحد المفتاحين، لا يفتحه إلا الآخر.
يجري التوقيع في خطوتين: يحسب البرنامج هاش المستند بـ SHA-256 للحصول على بصمة قصيرة ثابتة الطول، ثم يشفّر تلك البصمة بالمفتاح الخاص. تلك البصمة المشفَّرة هي التوقيع. والتحقق يعكس ذلك.
إعادة حساب الهاش
يشغّل المتحقّق دالة SHA-256 نفسها تماماً على البايتات نفسها التي هشّها الموقّع. ينتج عن ذلك بصمة يجب أن تطابق ما يلتزم به التوقيع. بايت واحد تغيّر، بصمة مختلفة.
فحص توقيع المفتاح العام
يفكّ المتحقّق تشفير كتلة التوقيع بمفتاح الموقّع العام، مستعيداً الهاش الذي ختمه الموقّع. فإن ساوى ذلك الهاش المستعاد الهاشَ المعاد حسابه في الخطوة ١، فقد صُنع التوقيع بالمفتاح الخاص المطابق فوق هذه البايتات بالضبط.
السير في سلسلة الشهادة
جاء المفتاح العام في شهادة X.509. يتتبّع المتحقّق سلسلة الجهات المُصدِرة صعوداً حتى سلطة تصديق جذرية يثق بها مسبقاً. هذا ما يربط المفتاح بهوية حقيقية مدقَّقة بدل زوج مفاتيح مجهول.
الخطوة التي يتجاوزها الجميع: سلسلة الثقة
تُثبت الخطوتان ١ و٢ أن الملف لم يُعدَّل وأنه وُقِّع بمن يحوز مفتاحاً خاصاً بعينه. لكنهما لا تُثبتان مَن هو. فزوج مفاتيح مولَّد ذاتياً يجتاز الفحصين بإتقان ولا يُثبت شيئاً عن الهوية — يستطيع أي أحد صنع واحد في ثانية.
الهوية تأتي فقط من الخطوة ٣. يجب أن تتّصل شهادة التوقيع صعوداً بسلطة تصديق دقّقها طرف ثالث ويثق بها متحقّقك مسبقاً — قائمة الثقة المعتمدة من أدوبي (AATL) لملفات PDF، أو قائمة الثقة الأوروبية (EUTL) لـ eIDAS، أو جذر خاص بمؤسسة. علامة صح خضراء مع شهادة موقَّعة ذاتياً تعني توقيعاً صحيحاً من موقّع مجهول.
السلامة تقول إن البايتات لم تتغيّر. والأصالة تقول إن مفتاحاً خاصاً بعينه وقّعها. وحدها سلسلة الثقة تقول لمن كان ذلك المفتاح. والمتحقّق الذي يُبلّغ عن الأوّلَين ويتجاوز الثالث إنما يؤكّد توقيعاً من لا أحد بعينه.
— الفارق الذي يقرّر ما إذا كان للتوقيع أي معنى
الرياضيات نفسها، أربع حاويات: عائلات AdES
الفحوص الثلاثة أعلاه عامّة. ما يتغيّر بين أنواع الملفات هو المظروف الذي يحزم التوقيع وبياناته الوصفية. توحّد ETSI أربعاً منها، تُسمّى مجتمعةً صيغ AdES (التوقيع الإلكتروني المتقدّم). ومعرفة أيّها تنظر إليه تخبرك بأيّ أداة تتحقّق منه.
عائلات توقيع AdES الأربع من ETSI. النواة التشفيرية نفسها، وحاوية مختلفة لكل نوع بيانات. يُنتج سهل ساين صيغة PAdES لملفات PDF المختومة.
| Jurisdiction | Law | Cross-border transfer rule | Intensity |
|---|---|---|---|
| CAdES | ETSI EN 319 122 | توقيعات CMS الإلكترونية المتقدّمة. توقّع أي بيانات ثنائية باستخدام بنية CMS في RFC 5652. الأساس العام الذي تبني عليه البقية. | Moderate |
| XAdES | ETSI EN 319 132 | توقيعات XML الإلكترونية المتقدّمة. توقّع مستندات XML — شائعة للفوترة الإلكترونية والتقديمات الحكومية في الخليج. | Moderate |
| PAdES | ETSI EN 319 142 | توقيعات PDF الإلكترونية المتقدّمة. تضمّن التوقيع داخل ملف PDF نفسه ليسافر مع المستند ويتحقّق منه في أي قارئ أكروبات. | Restricted |
| JAdES | ETSI TS 119 182 | توقيعات JSON الإلكترونية المتقدّمة. توقّع حمولات JSON (مبنية على JWS) — تُستخدم في واجهات البرمجة الحديثة وتدفقات الخدمات المصرفية المفتوحة. | Moderate |
كيف تتحقّق من واحد عملياً
نادراً ما تشغّل الفحوص الثلاثة يدوياً. يفعلها المتحقّق نيابةً عنك — والحيلة في معرفة أيّ متحقّق يطابق الحاوية وكيف تقرأ حكمه.
التحقق من توقيع رقمي بحسب نوع الحاوية
- PDF (PAdES) — افتحه في أدوبي أكروبات ريدر
تُبلّغ لوحة التوقيع عن الفحوص الثلاثة كلها إضافةً إلى الطابع الزمني وحالة الإلغاء. للعرض التفصيلي على مستوى البايت، انظر دليلنا في التحقق من ملفات PDF الموقَّعة.
- XML أو أي صيغة — استخدم متحقّق EU DSS
خدمة التوقيع الرقمي مفتوحة المصدر من المفوضية الأوروبية تتحقق من CAdES وXAdES وPAdES وJAdES مقابل خوارزمية ETSI الكاملة وتُرجع تقريراً منظَّماً يُسمّي الفحص الذي فشل بالضبط.
- سطر الأوامر — OpenSSL لـ CMS الخام
لتوقيع CMS منفصل، يشغّل
openssl cms -verify -in signature.p7s -content data.bin -CAfile trusted-roots.pemفحص الهاش والمفتاح العام ويُبلّغ عمّا إذا كانت السلسلة تنتهي عند جذر موثوق. - اقرأ دائماً ما وراء الحكم المختصر
«غير صالح» تعني عادةً «جهة إصدار غير موثوقة»، لا «مزوَّر». افحص أيّ الثلاثة فشل: عدم تطابق الهاش (تغيّر المستند)، أو عدم تطابق التوقيع (مفتاح خاطئ)، أو فشل السلسلة (موقّع مجهول). كلٌّ يستدعي استجابة مختلفة.
الحكمان اللذان يخلط الناس بينهما
صالح تشفيرياً، الهوية مجهولة
الهاش مطابق وفحص المفتاح العام ناجح، لكن الشهادة موقَّعة ذاتياً أو سلطة تصديقها ليست في مخزن ثقتك. الرياضيات مثالية؛ الهوية غير مُصدَّقة.
- المستند سليم فعلاً ولم يتغيّر منذ التوقيع
- صُنع التوقيع بمن يحوز ذلك المفتاح الخاص
- ليس لديك دليل من طرف ثالث على من هو
- عالِج ذلك بتأكيد بصمة الشهادة عبر قناة مستقلة، أو بالوثوق بسلطة الإصدار
عدم تطابق الهاش
البصمة المعاد حسابها لا تطابق المختومة. تغيّرت البايتات بعد التوقيع — تعديل، أو تعليق، أو حتى إعادة حفظ في بعض الأدوات.
- فشلت سلامة المستند — لا تعتمد على هذه النسخة
- المحتوى الموقَّع والمحتوى الحالي مختلفان
- اطلب الملف الموقَّع الأصلي من المُرسِل وأعد التحقق
لماذا تتحقّق توقيعات سهل ساين في أي مكان
يختم سهل ساين كل مستند بصيغة PAdES-B-T: بنية PKCS#7 (CMS) SignedData منفصلة فوق نطاق بايتات PDF، من سلسلة شهادات موثوقة بشكل عام، مع طابع زمني RFC 3161. ولأنه المعيار ولا شيء سواه، تُعيد الفحوص الثلاثة إنتاج نفسها في أي متحقّق مطابق — فلا يُطلب منك قط الوثوق بواجهتنا.
كل ملف PDF من سهل ساين يحمل توقيعاً رقمياً مطابقاً للمعايير: هاش نطاق البايتات بـ SHA-256، وتوقيع RSA، وسلسلة X.509 موثوقة بشكل عام، وطابع زمني من سلطة طوابع مُدرَجة في EUTL. تحقّق منه في أكروبات، أو في EU DSS، أو من سطر الأوامر — النتيجة نفسها.
src/lib/pdf-seal.ts في مصدر سهل ساين
قراءة ذات صلة
- كيف تتحقّق من PDF موقَّع — الفحوص الثلاثة نفسها، معروضة عبر واجهة أدوبي أكروبات بايتاً بايتاً.
- كيف تتحقّق من صحة توقيع PAdES — التعمّق التقني للمطوّرين: ByteRange، وبنية CMS، والتحقق البرمجي بـ EU DSS.
- هل توقيعي الإلكتروني صالح قانوناً؟ — التشفير يُثبت التوقيع؛ والقانون يقرّر ما إذا كان يُلزِم أيضاً.
المصادر
- RFC 5652 — بنية رسائل التشفير (CMS)
- RFC 5280 — البنية التحتية للمفتاح العام X.509
- ETSI EN 319 122 — توقيعات CAdES الرقمية
- ETSI EN 319 132 — توقيعات XAdES الرقمية
- ETSI EN 319 142 — توقيعات PAdES الرقمية
- EU Commission DSS — متحقّق التوقيع مفتوح المصدر
- لائحة eIDAS (EU) 910/2014، المادة ٢٦ — متطلبات التوقيع الإلكتروني المتقدّم