المستندات
كيف تثبت أن الملف لم يتغير: SHA-256 والطابع الزمني الموثوق
تحقق من SHA-256 على Windows أو macOS أو Linux، وافحص طابعًا زمنيًا RFC 3161، واطّلع على ما تقوله تشريعات السعودية والإمارات ومصر في الإثبات الإلكتروني.
تاريخ النشر · 15 د للقراءة
في هذه الصفحة
تدلّ قيمة التجزئة SHA-256 على البايتات الدقيقة لملف ما، ويثبت الطابع الزمني الموثوق أن هذه القيمة كانت موجودة في لحظة معيّنة؛ وبالجمع بينهما يمكنك أن تبيّن أن الملف لم يتغير منذ تلك اللحظة. لكن أيًّا منهما لا يثبت صحة المحتوى، ولا أصالة الملف، ولا هوية من أنشأه.
كُتب هذا الدليل لفرق المالية والمطالبات والشؤون القانونية والامتثال التي تحتفظ بالملفات بوصفها أدلة. ويوضح كيف تتحقق من SHA-256 Checksum باستخدام أدوات موجودة أصلًا على جهازك، وكيف تتحقق من طابع زمني موثوق بمعيار RFC 3161، وما الذي تقوله تشريعات المعاملات الإلكترونية والإثبات في السعودية والإمارات ومصر، وكيف توظّف الأمرين في مسار المراجعة.
ماذا تثبت قيمة التجزئة SHA-256 وما الذي لا تثبته
قيمة التجزئة (Hash) بخوارزمية SHA-256 سلسلة من 256 بتًا تمثّل الملف، تُكتب في 64 خانة بالنظام الست عشري، وتُحسب من كل بايت في محتواه بالخوارزمية المحددة في معيار NIST FIPS 180-4 (بالإنجليزية). وعلى خلاف المجموع الاختباري البسيط (Checksum) مثل CRC-32 الذي لا يكشف إلا التلف العرضي، صُممت دالة التجزئة التشفيرية بحيث لا يستطيع أحد عمليًا إنشاء ملف آخر يعطي القيمة نفسها.
تتعلق قيمة التجزئة بالبايتات لا بالمظهر: فالملفان اللذان تختلف قيمتا تجزئتهما ملفان مختلفان، حتى لو بدَوَا متطابقين على الشاشة. ويبيّن الجدول الآتي ما يغيّر القيمة وما لا يغيّرها.
| الإجراء | هل تتغير قيمة التجزئة؟ |
|---|---|
| إعادة تسمية الملف أو نقله أو نسخه | لا |
| تغيير «تاريخ التعديل» في مدير الملفات | لا، لأن التاريخ ليس جزءًا من المحتوى |
| حفظ الملف مرة أخرى دون تعديل ظاهر | غالبًا نعم، لأن التطبيقات تعيد كتابة البيانات الوصفية والبنية الداخلية |
| تعديل البيانات الوصفية، أو التصدير والتحويل إلى صيغة أخرى | نعم |
| التقاط لقطة شاشة، أو إرسال صورة عبر تطبيق يعيد ترميزها (كما يحدث غالبًا في واتساب ما لم تُرسل الصورة بوصفها مستندًا) | نعم، لأن الناتج ملف مختلف |
ويعرض الشكل التالي هذه الحالات على ملف توضيحي مع قيمة تجزئته.

تتبع قيمة التجزئة البايتات: ما لا يمسّها يُبقي القيمة كما هي، وأي إعادة كتابة تنتج قيمة لا صلة لها بالأولى.
كما يبيّن الشكل، فاختلاف قيمة التجزئة يعني اختلاف البايتات، وليس بالضرورة اختلاف المبلغ أو وقوع احتيال. وتطابقها يعني تطابق البايتات، لا أصالة المحتوى: فبوسع أي شخص أن يحسب قيمة التجزئة لفاتورة مزوّرة، وستبقى القيمة ثابتة تمامًا. ومن يستطيع تغيير ملف يستطيع كذلك إعادة حساب قيمة تجزئته، ولذلك لا تكون القيمة دليلًا إلا إذا سُجّلت في مكان لا يستطيع حائز الملف إعادة كتابتها فيه في الخفاء.
صُممت SHA-256 بحيث يكون إيجاد مدخلين مختلفين لهما قيمة التجزئة نفسها غير ممكن حسابيًا؛ وتقدّر NIST مقاومتها للتصادم بنحو 128 بتًا، مقابل أقل من 80 بتًا لـ SHA-1 (دوال التجزئة لدى NIST، بالإنجليزية). وتذكر NIST أنه ينبغي التخلص تدريجيًا من SHA-1 بحلول 31 ديسمبر 2030 (إعلان NIST، بالإنجليزية)، ولم تعد MD5 مقبولة حيث تُشترط مقاومة التصادم (RFC 6151، بالإنجليزية). فاستخدم SHA-256 أو ما هو أقوى منها في الأدلة.
كيف تتحقق من SHA-256 Checksum على Windows أو macOS أو Linux
للتحقق من SHA-256 Checksum، احسب قيمة التجزئة للملف على جهازك أنت، ثم قارن النتيجة كاملةً بالقيمة المتوقعة.
| النظام | الأمر |
|---|---|
| Windows (PowerShell) | Get-FileHash .\invoice.pdf -Algorithm SHA256 (Microsoft، بالإنجليزية) |
| Windows (موجّه الأوامر) | certutil -hashfile invoice.pdf SHA256 (Microsoft، بالإنجليزية) |
| macOS (Terminal) | shasum -a 256 invoice.pdf |
| Linux (shell) | sha256sum invoice.pdf (صفحة الدليل man، بالإنجليزية) |
| أي نظام مثبّت عليه OpenSSL | openssl dgst -sha256 invoice.pdf |
ثم قارن على النحو الآتي:
- احسب قيمة التجزئة للملف نفسه، لا لنسخة فُتحت في أحد التطبيقات ثم حُفظت.
- قارن كل خانة بالقيمة المتوقعة. لا تفرّق الأرقام الست عشرية بين الأحرف الكبيرة والصغيرة: يطبع PowerShell أحرفًا كبيرة ويطبع
sha256sumأحرفًا صغيرة، والقيمة في الحالتين واحدة. - عدّ أي نتيجة غير مطابقة تمامًا ملفًا مختلفًا. فمقارنة أول الخانات وآخرها فقط لا تكفي.
لاختبار الأداة، احسب قيمة التجزئة لملف يحتوي على الأحرف الثلاثة abc بالضبط (printf abc > test.txt على macOS أو Linux، أو Set-Content -Path test.txt -Value abc -NoNewline في PowerShell). يجب أن تكون النتيجة ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. وإذا أضاف محرر النصوص سطرًا جديدًا في النهاية فستصبح النتيجة edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb: بايت واحد غير مرئي يغيّر القيمة كلها.
وللتحقق من قائمة قيم منشورة في ملف باسم SHA256SUMS، شغّل sha256sum -c SHA256SUMS على Linux أو shasum -a 256 -c SHA256SUMS على macOS؛ فيُعرض لكل ملف مدرج الناتج OK أو FAILED. وفي PowerShell يعيد (Get-FileHash .\invoice.pdf).Hash -eq 'EXPECTED_HASH' القيمة True أو False بغض النظر عن حالة الأحرف.
ولمصدر القيمة المتوقعة أهمية كبيرة. فالقيمة المنشورة بجوار الملف تحمي من تنزيل تالف، لا من شخص يستطيع تعديل الاثنين معًا. وللإثبات، خذ القيمة من سجل مستقل مثل سجل الاستلام لديك أو من طابع زمني موثوق.
واحذر مواقع حساب قيمة التجزئة على الإنترنت. فكثير منها يشترط رفع الملف، فيحصل طرف ثالث على محتواه كاملًا، ولا يسهل أن تعرف ما إذا كانت القيمة تُحسب داخل متصفحك أم على خادم الموقع. وللمواد السرية، مثل أدلة المطالبات والعقود ووثائق الهوية، استخدم الأوامر المحلية أعلاه.
ما الذي يضيفه الطابع الزمني الموثوق: مسار RFC 3161
الطابع الزمني الموثوق بيان موقَّع من جهة مستقلة لإصدار الطوابع الزمنية (TSA) يفيد بأن قيمة تجزئة معيّنة كانت موجودة في وقت معيّن، على النحو الذي يحدده RFC 3161 (بالإنجليزية). وتواريخ الملفات وبياناتها الوصفية ليست طوابع زمنية موثوقة: فـ«تاريخ التعديل» وتاريخ إنشاء ملف PDF وتاريخ التقاط الصورة يكتبها برنامج على جهاز قد لا تتحكم فيه، ويمكن تعديلها. أما الطابع الزمني الموثوق فيصدر عن طرف ثالث تنفصل ساعته ومفتاح توقيعه عن ساعتك ومفتاحك.
ويمرّ المسار بأربع خطوات:
- تحسب قيمة التجزئة SHA-256 للملف.
- ترسل قيمة التجزئة، لا الملف، إلى جهة TSA في طلب طابع زمني، وغالبًا مع قيمة عشوائية (nonce) لكشف إعادة إرسال الطلب.
- توقّع الجهة رمزًا (token) يربط قيمة التجزئة بالوقت الذي تنشئ فيه الرمز، بالتوقيت العالمي المنسّق (UTC)، مع رقم تسلسلي وسياسة الجهة.
- تعيد الجهة الرمز إليك، فتحفظه بجوار الملف.

يثبّت الرمز وقت وجود هذه البايتات، ولا يقول شيئًا عن صحة المحتوى.
كما يبيّن الشكل، لا ترى جهة TSA الملف أبدًا، ولذلك يصلح الطابع الزمني للمواد السرية. وللتحقق، أعد حساب قيمة تجزئة الملف وتأكد من أنها تطابق القيمة الموجودة داخل الرمز، ثم تحقق من توقيع الجهة، ومن أن شهادتها تتصل بجذر تثق به وأنها صدرت لغرض وضع الطوابع الزمنية. ويؤدي OpenSSL ذلك كله (توثيق OpenSSL، بالإنجليزية):
| المهمة | الأمر |
|---|---|
| إنشاء طلب | openssl ts -query -data invoice.pdf -sha256 -cert -out invoice.tsq |
| قراءة استجابة | openssl ts -reply -in invoice.tsr -text |
| التحقق من الملف مقابل الاستجابة | openssl ts -verify -data invoice.pdf -in invoice.tsr -CAfile chain.pem |
يُرسل الطلب إلى نقطة نهاية الجهة عبر HTTP (عمليًا بطلب POST) بنوع المحتوى application/timestamp-query. ويعرض الخيار -text قيمة التجزئة والرقم التسلسلي والوقت بتوقيت غرينتش (GMT). ويطبع التحقق الناجح Verification: OK؛ وإذا اختلف الملف عن الملف الذي وُضع عليه الطابع الزمني يطبع Verification: FAILED مع الخطأ «message imprint mismatch». ويحتوي الملف chain.pem على الشهادة الجذرية للجهة، ويوفّر الخيار -untrusted الشهادات الوسيطة الناقصة، ويتحقق الخيار -token_in من رمز مجرد بدلًا من استجابة كاملة.
وتنتهي صلاحية شهادات جهات الطوابع الزمنية، وقد تتعرض المفاتيح للاختراق. وقد يظل الرمز ذا قيمة بعد انتهاء صلاحية الشهادة، بشرط أن تكون الشهادة سارية وقت إصداره وألا يكون المفتاح قد اختُرق، لكن فحصًا بسيطًا بعد سنوات قد يفشل؛ ويتحقق الخيار -attime من السلسلة كما كانت في وقت الرمز. وينبغي للسجلات التي تُحفظ سنوات أن تحفظ معلومات إلغاء الشهادات، وأن يُعاد وضع طابع زمني عليها باستخدام طوابع زمنية أرشيفية أو سجلات أدلة (RFC 4998، بالإنجليزية).
ويمكن أن يحمل ملف PDF الرمز داخله بوصفه طابعًا زمنيًا للمستند، وفق ملف تعريف PAdES في المعيار ETSI EN 319 142-1 (بالإنجليزية). ويغطي هذا الطابع كل بايت في ملف PDF حتى لحظة إضافته؛ أما التعديلات اللاحقة فلا يغطيها. ويعرض Acrobat الطوابع الزمنية للمستندات مع التوقيعات في لوحة التوقيعات (Signatures)؛ افتح الخصائص لقراءة الوقت والجهة المُصدِرة وحالة التحقق.
الحجية القانونية لقيم التجزئة والطوابع الزمنية في السعودية والإمارات ومصر
لقيم التجزئة والطوابع الزمنية حجية بوصفها أدلة، لكن مداها يتوقف على الدولة ونوع الدعوى والوقائع. هذا القسم معلومات عامة بحسب الوضع في 4 نوفمبر 2026، تستند إلى النصوص الأصلية المرتبطة أدناه، وليس استشارة قانونية؛ فاستعن بمستشار قانوني قبل الاعتماد عليه في نزاع. وذكر أي تشريع في هذا القسم لا يعني أن Fileverity تدّعي الامتثال له. وقد قرأنا نظام التعاملات الإلكترونية السعودي بنصه العربي وبترجمة إنجليزية، ولائحته التنفيذية بنصها العربي، وقرأنا نصوص الإمارات ومصر في ترجماتها الإنجليزية المنشورة لدى جهات حكومية؛ والنص العربي هو المعتمد في الدول الثلاث، فارجع إليه قبل الاستشهاد بصياغة بعينها.
المملكة العربية السعودية
الأساس هو نظام التعاملات الإلكترونية، الصادر بالمرسوم الملكي رقم (م/18) وتاريخ 8/3/1428هـ (27 مارس 2007). وتنص المادة (5) على أن للتعاملات والسجلات والتوقيعات الإلكترونية حجيتها الملزمة، ولا يجوز نفي صحتها أو قابليتها للتنفيذ لمجرد أنها تمت كليًّا أو جزئيًّا بشكل إلكتروني، بشرط أن تتم وفق الشروط المنصوص عليها في النظام. وتعدّ المادة (8) السجل الإلكتروني أصلًا بذاته إذا استُخدمت وسائل وشروط فنية تؤكد سلامة المعلومات الواردة فيه من الوقت الذي أنشئ فيه بشكله النهائي، وتسمح بعرض المعلومات المطلوبة متى طُلب ذلك، وتترك للائحة تحديد تلك الوسائل والشروط. وتقضي المادة (9) بقبول التعامل الإلكتروني أو التوقيع الإلكتروني دليلًا في الإثبات إذا استوفى سجله متطلبات المادة (8)، وبجواز قبوله قرينةً في الإثبات ولو لم يستوفها. ويُراعى عند تقدير حجية التعامل الإلكتروني مدى الثقة في طريقة إنشاء السجل الإلكتروني أو تخزينه أو إبلاغه وإمكان التعديل عليه، وفي طريقة المحافظة على سلامة المعلومات، وفي طريقة تحديد شخصية المنشئ (المادة 9/4) (النص العربي للنظام لدى وزارة الاتصالات وتقنية المعلومات؛ ترجمة إنجليزية منشورة على موقع وزارة الاستثمار).
ولا يتناول النظام نفسه الطوابع الزمنية ولا قيم التجزئة، لكن لائحته التنفيذية (ربيع الأول 1429هـ) تذكر «الختم الزمني» (وهو ما نسميه في هذا الدليل «الطابع الزمني») في شروط حفظ السجلات الإلكترونية (المادة الخامسة، الفقرة 5/1): فلإثبات صحة الوقت يجب أن يحتوي السجل على الختم الزمني المعتمد من المركز الوطني للتصديق الرقمي، أو على أي ختم زمني اتفق عليه أطراف التعامل الإلكتروني صراحةً. وتشترط اللائحة في الفقرة نفسها استخدام تقنيات مناسبة لضمان حفظ السجل بالشكل نفسه الذي أنشئ أو أرسل أو تسلم به، أو لضمان أن محتواه مطابق لذلك المحتوى (اللائحة التنفيذية، النص العربي لدى وزارة الاتصالات وتقنية المعلومات). ولم نتحقق من تعديلات لاحقة على اللائحة. ويتّفق مع عناصر تقدير الحجية المذكورة، وخاصة إمكان التعديل وطريقة حفظ سلامة المعلومات، أن تُسجَّل قيمة التجزئة ويُوضع عليها طابع زمني من جهة مستقلة. أما الاعتداد بطابع زمني بمعيار RFC 3161 صادر عن جهة أجنبية، ودخوله تحت «الختم الزمني المعتمد» أو «المتفق عليه صراحةً»، فلم نجد في النصوص ما يحسمه.
الإمارات العربية المتحدة
يعرّف المرسوم بقانون اتحادي رقم (46) لسنة 2021 في شأن المعاملات الإلكترونية وخدمات الثقة (صدر في 20 سبتمبر 2021، ويسري من 2 يناير 2022) «الطابع الزمني الإلكتروني المؤهل» (Qualified Electronic Time Stamp) بأنه بيانات بشكل إلكتروني تربط وقتًا معيّنًا بمستند إلكتروني وتثبت أن تلك البيانات كانت موجودة في ذلك الوقت. وتنص المادة (18) على ألا يُستبعد قبول المستند الإلكتروني أو التوقيع الإلكتروني أو الختم الإلكتروني أو المعاملة الإلكترونية دليلًا في أي إجراء قانوني لمجرد أنه في شكل إلكتروني، وعلى أن التاريخ والوقت المؤهلين يُتحقق منهما بطابع زمني إلكتروني مؤهل متى ارتبط ببيانات صحيحة (المرسوم بقانون، ترجمة إنجليزية غير رسمية منشورة لدى الهيئة).
وتشترط المادة (23) في الطابع المؤهل أن يربط التاريخ والوقت بالبيانات بما يحول بصورة معقولة دون تغييرها من غير أن يُكتشف ذلك، وأن يقوم على مصدر زمني دقيق مرتبط بالتوقيت العالمي المنسّق، وأن يُوقَّع بتوقيع إلكتروني متقدم أو يُختم بختم إلكتروني متقدم لمزوّد خدمات ثقة مؤهل، أو بطريقة أخرى تحددها اللائحة التنفيذية. وتنص اللائحة التنفيذية الصادرة بقرار مجلس الوزراء رقم (28) لسنة 2023 (بتاريخ 31 مارس 2023) على أن مزوّد خدمات الثقة المؤهل وحده يقدّم خدمة إنشاء الطابع الزمني الإلكتروني المؤهل (المادة 31) (القرار، ترجمة إنجليزية غير رسمية منشورة لدى الهيئة). وتصدر هيئة تنظيم الاتصالات والحكومة الرقمية تراخيص مزوّدي خدمات الثقة وتنشر قائمة بالمزوّدين المرخّصين (البوابة الرسمية لحكومة الإمارات، بالإنجليزية).
والطابع الزمني بمعيار RFC 3161 الصادر عن جهة غير مرخّصة في الدولة لا يحمل بحد ذاته وصف «الطابع الزمني الإلكتروني المؤهل» الوارد في المرسوم بقانون. ولا ينص ما قرأناه صراحةً على حكم الطابع غير المؤهل أو الصادر من خارج الدولة؛ وهو سؤال يُعرض على مستشار قانوني إذا كان النزاع قد يصل إلى القضاء في الإمارات.
مصر
يمنح القانون رقم (15) لسنة 2004 بتنظيم التوقيع الإلكتروني وبإنشاء هيئة تنمية صناعة تكنولوجيا المعلومات (ITIDA) (نُشر في الجريدة الرسمية في 22 أبريل 2004) في مادته (15) الكتابة الإلكترونية والمحررات الإلكترونية، في نطاق المعاملات المدنية والتجارية والإدارية، الحجية المقررة للكتابة والمحررات الرسمية والعرفية في قانون الإثبات في المواد المدنية والتجارية، متى استوفت الشروط التي يقررها القانون وفق الضوابط الفنية والتقنية التي تحددها لائحته التنفيذية. وتقضي المادة (17) بسريان أحكام قانون الإثبات في المواد المدنية والتجارية على إثبات صحة المحررات الإلكترونية والتوقيع الإلكتروني والكتابة الإلكترونية حيثما لا يوجد نص آخر في القانون أو لائحته (القانون، النص الإنجليزي لدى ITIDA). وتضع المادة (8) من اللائحة التنفيذية (قرار وزير الاتصالات وتكنولوجيا المعلومات رقم 109 لسنة 2005) ضوابط فنية لثبوت هذه الحجية، منها أن يكون ممكنًا تقنيًا تحديد وقت إنشاء الكتابة الإلكترونية أو المحرر الإلكتروني وتاريخه عبر نظام حفظ إلكتروني مستقل لا يخضع لسيطرة منشئ الكتابة أو المحرر ولا الجهة المعنية به (اللائحة التنفيذية، النص الإنجليزي لدى ITIDA).
وهذا الضابط قريب من فكرة الطابع الزمني الصادر عن طرف ثالث: ساعة لا يتحكم فيها صاحب الملف. غير أن النصوص التي قرأناها لا تذكر RFC 3161 ولا قيم التجزئة، وقد قرأنا اللائحة بنصها الصادر عام 2005 دون مراجعة ما طرأ عليها من تعديلات؛ فلا نستنتج أن طابعًا بعينه يستوفي هذا الضابط. وهذه مسألة تُعرض على محامٍ مصري قبل الاعتماد عليها.
ما الذي يمكن قوله وما الذي لا يمكن قوله
لا نجد في هذه النصوص ما يقرر صراحةً أن طابعًا زمنيًا بمعيار RFC 3161 صادرًا عن جهة أجنبية معترف به في السعودية أو الإمارات أو مصر، ولذلك لا يدّعي هذا الدليل ذلك. غير أن في النصوص الثلاثة منطقًا مشتركًا يتكرر: يُقدَّر الدليل الإلكتروني بحسب سلامته وإمكانية تعديله، ويُنظر إلى الوقت بوصفه عنصرًا يحتاج إلى مصدر موثوق (ختم زمني معتمد أو متفق عليه في السعودية، ومصدر زمني دقيق مرتبط بالتوقيت العالمي المنسّق في الإمارات، ونظام حفظ مستقل في مصر). ويتّفق مع هذا المنطق أن تُسجَّل قيمة التجزئة عند الاستلام ويُوضع عليها طابع زمني من جهة مستقلة. أما كفاية ذلك أمام محكمة بعينها، ولزوم مزوّد مرخّص محليًا (كمزوّد خدمات ثقة مؤهل في الإمارات، أو ختم معتمد من المركز الوطني للتصديق الرقمي في السعودية)، فمسألة يُرجع فيها إلى مستشار قانوني في بلد التقاضي.
استخدام قيم التجزئة والطوابع الزمنية في مسار المراجعة
لا تفيد قيمة التجزئة والطابع الزمني إلا إذا سُجّلا في اللحظة الصحيحة وحُفظا بعيدًا عن الملف:
- احسب قيمة التجزئة عند الاستلام، قبل أن يفتح أحد الملف أو يعيد تسميته أو يضيف إليه ملاحظات أو يحفظه من جديد. واعمل على نسخ منه.
- سجّل قيمة التجزئة في سجل الحالة مع اسم الملف ومصدره وقناة وروده ووقت استلامه ومن استلمه.
- احفظ الأصل للقراءة فقط، في مكان تُسجَّل فيه التغييرات.
- ضع طابعًا زمنيًا على بيان (Manifest)، وهو ملف نصي يسرد اسم كل ملف مع قيمة تجزئته، فيؤرّخ رمز واحد كل ملف في القائمة. وإذا كان الملف قد يصبح محل نزاع قضائي، فاسأل مستشارك القانوني ما إذا كان يلزم مزوّد طوابع زمنية مرخّص أو معتمد في بلد التقاضي.
- قارن عند إعادة الإرسال. قيمة التجزئة المختلفة تعني نسخة جديدة تُراجع من الصفر، أيًّا كان اسم الملف.
- احتفظ بحزمة تحقق تضم الملف وسجل قيمة التجزئة والرمز وسلسلة الشهادات والأوامر، ليتمكن شخص آخر من تكرار الفحص بعد سنوات.
تخبرك قيمة التجزئة ما إذا كان الملف هو الذي سجّلته. ويشرح دليل فحص تعديلات ملفات PDF كيف تفحص ما تغيّر داخله، ويبيّن دليل التحقق من الفاتورة قبل الدفع كيف تطابقها مع سجلات الشراء والدفع. أما بيانات المنشأ الموقَّعة، التي يتناولها دليل C2PA والعلامات المائية للذكاء الاصطناعي وكواشف الصور، فآلية مختلفة: فهي تسجّل كيف أُنشئ المحتوى، بينما تثبت قيمة التجزئة والطابع الزمني وجود بايتاته في وقت معيّن فحسب.
كيف تستخدم تقارير Fileverity قيمة التجزئة SHA-256 والطابع الزمني RFC 3161
يسجّل كل تقرير من تقارير Fileverity قيمة التجزئة SHA-256 للملف الذي فحصه، ليتمكن مراجع لاحق من تأكيد الملف الذي تخصه النتائج. وعند إصدار التقرير يوضع على بيانات التقرير، التي تسجّل هذه القيمة، طابع زمني من جهة DigiCert لإصدار الطوابع الزمنية بمعيار RFC 3161. وتصف صفحة الثقة والأمان كيفية ختم التقارير والتحقق منها. وتحمل تقارير PDF كذلك طابعًا زمنيًا للمستند بصيغة PAdES تتصل سلسلته بجذر مدرج في قائمة Adobe Approved Trust List.
ولا يُشار إلى الطابع الزمني أو الختم إلا عند نجاح التحقق. وإذا تعذّر الوصول إلى الخدمة أو إلى بيانات التحقق فإن التقرير يُسلَّم مع ذلك، مع بيان صريح بغياب ذلك الإثبات. وتصف Fileverity هذه الطوابع بأنها طوابع زمنية موثوقة بمعيار RFC 3161، لا طوابع زمنية إلكترونية مؤهلة، ولا تقدّمها بوصفها خدمة مؤهلة أو مرخّصة بموجب تشريعات السعودية أو الإمارات أو مصر. وتعرض صفحة التحقق النتائج المسجلة عند الإصدار، وتُجري مطابقة صورة أو ملف بيانات التقرير على جهازك أنت.
ويثبت الطابع الزمني أن البيانات كانت موجودة في وقت ما، لا أن وقائع المستند أو نتائج الفحص صحيحة. ولا تحتفظ Fileverity بأصل ملفك أرشيفًا طويل الأمد، فاحتفظ بنسختك؛ وتتيح لك القيمة المسجلة أن تبيّن لاحقًا أنها النسخة التي فُحصت. ويتناول تحليل المستندات ما لا تستطيع قيمة التجزئة قوله: النص (في اللغات المدعومة، وليس منها العربية) وبنية الملف والنسخ المحفوظة القابلة للاستعادة والتحقق من توقيعات PDF المدعومة.
مثال تطبيقي: ملفا PDF لفاتورة واحدة ومبلغ متنازع عليه
هذه الحالة افتراضية، وقيم التجزئة فيها مختصرة. في 3 مارس تتلقى موظفة الحسابات الدائنة في شركة سعودية افتراضية الفاتورة INV-2207 بصيغة PDF مرفقةً برسالة بريد إلكتروني. وقبل أن تفتحها تحفظها كما وردت وتحسب قيمة تجزئتها SHA-256، وهي تبدأ بـ 9f3c1a. وتسجّل القيمة والمرسل ومعرّف رسالة البريد ووقت الاستلام، ثم تكتب بيانًا من سطر واحد وتضع عليه طابعًا زمنيًا وتحفظ الرمز. ويظهر في الفاتورة مبلغ 12,048.00 ر.س، فتُعتمد.
وبعد ستة أسابيع يقول المورّد إن الفاتورة كانت بمبلغ 12,480.00 ر.س، ويرسل «ملف PDF نفسه». وتبدأ قيمة تجزئته بـ 41d7b2. فتتصرف الموظفة كما يلي:
- تعني قيمتا التجزئة المختلفتان بايتات مختلفة. لكنهما لا تبيّنان ما الذي اختلف ولا من غيّره.
- تشغّل
openssl ts -verify -data intake-manifest.txt -in intake.tsr -CAfile chain.pem، ثم تجد قيمة تجزئة الأصل المحفوظ لديها مدرجة في البيان. ويكون وقت الرمز 3 مارس. - تقارن ملفي PDF كما في دليل فحص تعديلات ملفات PDF، وتطلب من المورّد، عبر جهة الاتصال المسجلة عند اعتماده، نسخة من نظام الفوترة لديه. وإذا كانت الفاتورة فاتورة ضريبية إلكترونية سعودية، فيمكنها كذلك مسح رمز QR الموجود فيها عبر خدمة التحقق من صحة الفاتورة الإلكترونية لدى هيئة الزكاة والضريبة والجمارك (زاتكا) (بالإنجليزية) للتأكد من أصالتها.
وتدعم الأدلة هنا نتيجة محدودة فقط: نسخة المشتري كانت موجودة دون تغيير في 3 مارس، وملف PDF لدى المورّد ملف مختلف. أما من عدّل أيّ الملفين فلم يثبت، والسجل البريدي، لا الطابع الزمني، هو ما يُظهر ما أرسله المورّد. ويُحدَّد المبلغ المستحق من أمر الشراء وسجلات الاستلام والعقد، كما في دليل التحقق من الفاتورة قبل الدفع.
أسئلة شائعة
هل لا يزال SHA-256 آمنًا؟
نعم، لأغراض التحقق من سلامة الملفات والإثبات. فسياسة NIST تتيح للوكالات الاتحادية استخدام SHA-2، ومنها SHA-256، في جميع التطبيقات التي تستخدم خوارزميات تجزئة آمنة (سياسة NIST، بالإنجليزية). أما الدالتان اللتان ينبغي تجنبهما فهما MD5 وSHA-1. وللسجلات التي تُحفظ سنوات طويلة، خطّط لإعادة وضع طابع زمني عليها مع تقادم الخوارزميات والشهادات.
هل يمكن أن يكون لملفين مختلفين قيمة SHA-256 نفسها؟
رياضيًا نعم، لأن عدد الملفات الممكنة أكبر بكثير من عدد القيم ذات 256 بتًا. وقد صُممت SHA-256 بحيث يكون إيجاد زوج كهذا غير ممكن حسابيًا، وهذا ما يعبّر عنه تقدير مقاومة التصادم بنحو 128 بتًا. فالقيمة المتطابقة دليل عملي قوي على تطابق البايتات، لا برهان رياضي.
هل يثبت الطابع الزمني من أنشأ الملف؟
لا. فالطابع الزمني يربط قيمة تجزئة بوقت ولا شيء غير ذلك. ولا يحدد مؤلف الملف، ولا يثبت صحة المحتوى، ولا يثبت أن الملف لم يُنشأ قبل وضع الطابع الزمني عليه بلحظات. وتحتاج نسبة الملف إلى مؤلفه إلى أدلة أخرى، مثل التوقيع الرقمي أو سجلات المرسل نفسه.
هل تتغير قيمة التجزئة عند إعادة تسمية الملف أو نسخه؟
لا. فقيمة التجزئة تُحسب من المحتوى وحده، ولذلك تعطي إعادة التسمية أو النقل أو النسخ القيمة نفسها. أما حفظ الملف من جديد في أحد التطبيقات فيغيّرها في الغالب، حتى لو لم يبدُ أي اختلاف.
هل يُعترف بالطابع الزمني بمعيار RFC 3161 في السعودية أو الإمارات أو مصر؟
لا يقرر النص الذي قرأناه ذلك صراحةً في أي من الدول الثلاث، ولذلك لا نقول إنه معترف به. فالإمارات تعرّف «الطابع الزمني الإلكتروني المؤهل» وتحصر تقديمه في مزوّدي خدمات الثقة المؤهلين، ومصر تشترط في لائحتها نظام حفظ إلكتروني مستقلًا لتحديد وقت الإنشاء، والسعودية تقبل السجل الإلكتروني دليلًا بشروط وتشترط لائحتها لإثبات صحة الوقت ختمًا زمنيًا معتمدًا من المركز الوطني للتصديق الرقمي أو متفقًا عليه صراحةً بين أطراف التعامل. أما كيفية تقدير المحكمة لطابع غير مؤهل أو أجنبي في قضية بعينها فمسألة يُرجع فيها إلى مستشار قانوني.
هل من الآمن استخدام أداة SHA-256 على الإنترنت؟
فقط للملفات التي يمكنك نشرها. فكثير من الأدوات على الإنترنت يرفع الملف، فيتسلم مشغّلها محتواه كاملًا. وللملفات السرية، استخدم Get-FileHash أو certutil أو shasum أو sha256sum على جهازك؛ فالنتيجة واحدة ولا يغادر شيء الجهاز.
بقلم Yang Zheng · مراجعة Bill Liu