آخر تحديث: الأحد | التاريخ: 2020/10/18

ما مدى إمكانية تزوير التوقيع الرقمي لملفات PDF ؟

ما مدى إمكانية تزوير التوقيع الرقمي لملفات PDF ؟

يكاد يكون لا توجد شركة أو وكالة حكومية لا تستخدم ملفات PDF. وغالبًا ما يستخدمون التوقيعات الرقمية لضمان صحة هذه المستندات. عندما تفتح ملفًا موقَّعًا في أي برنامج لعرض ملفات PDF، يعرض البرنامج إشارة تشير إلى أن المستند موقِّع والطرف الموقع عليه ويمنحك صلاحية الوصول إلى قائمة التحقق من صحة التوقيع.

لذلك قام فريق من الباحثين المنتمين إلى عدة جامعات ألمانية باختبار قوة التوقيعات على ملفات PDF. وقد شارك فلاديسلاف ملادينوف من جامعة رور في بوخوم نتائج الفريق في مؤتمر كايوس للاتصالات (36С3).

لقد كانت مهمة الباحثين بسيطة: تعديل محتويات مستند PDF موقع دون إبطال التوقيع في هذه العملية. يمكن لمجرمي الإنترنت من الناحية النظرية فعل الشيء نفسه لنقل معلومات خاطئة أو إضافة محتوى ضار إلى أحد الملفات الموقعة. وفي النهاية، من المحتمل أن يثق العملاء الذين يتلقون مستندًا موقعًا من أحد البنوك في الملف وينقرون على أي روابط في موجودة فيه.

وقد اختار الفريق 22 برنامجًا من برامج عرض ملفات PDF المشهورة للعديد من المنصات، وقاموا بإدخال نتائج تجاربهم فيها بشكل منهجي.

هيكل ملف PDF

أولاً، بضع كلمات حول تنسيق PDF يتكون كل ملف من أربعة أجزاء رئيسية: الرأس، والذي يعرض إصدار PDF؛ والمضمون، والذي يعرض المحتوى الرئيسي الذي يراه المستخدم؛ وقسم Xref، وهو دليل يسرد العناصر الموجودة داخل المضمون ومواقعها (لعرض المحتوى)؛ والملحق الذي يبدأ به برنامج عرض PDF قراءة المستند. يحتوي الملحق على معلمتين مهمتين تخبران البرنامج عن مكان بدء معالجة الملف، والموقع الذي يبدأ فيه قسم Xref.

وتوجد وظيفة تحديث تزايدي مدمجة في التنسيق تتيح للمستخدم عدة أمور مثل تحديد جزء من النص وترك التعليقات. ومن الناحية الفنية، تضيف الوظيفة ثلاثة أقسام أخرى: تحديثات المضمون، ودليل Xref جديد، وملحق جديد. ويتيح ذلك بفعالية إمكانية تغيير كيفية رؤية المستخدم للعناصر وإضافة محتوى جديد. باختصار، يُعد التوقيع الرقمي أيضًا تحديثًا إضافيًا، حيث يضيف عنصرًا آخر وأقسامًا مناظرة إلى الملف.

هجوم التوفير المتدرج (ISA)

حاول الفريق أولاً إضافة أقسام إضافية إلى الملف مع تحديث تدريجي آخر باستخدام أحد برامج تحرير النصوص. ولا يُعد هذا هجومًا بالمعنى الدقيق، فكل ما فعله الفريق هو استخدام وظيفة ينفّذها مُنشئو التنسيق. عندما يفتح المستخدم ملفًا تم تعديله بهذه الطريقة، يعرض قارئ PDF عادةً رسالة تفيد بأن التوقيع الرقمي صالح ولكن المستند قد تم تعديله. ولكنها ليست أوضح رسالة، وخصوصًا بالنسبة للمستخدمين عديمي الخبرة. بل والأمر الأسوأ من ذلك هو أن أحد برامج عرض PDF (LibreOffice) لم يعرض الرسالة حتى.

تضمنت التجربة التالية إزالة القسمين الأخيرين (أي إضافة تحديث للمضمون، ولكن دون إضافة قسم Xref جديد وملحق). رفضت بعض التطبيقات العمل بهذا الملف. حيث فسر برنامجان من برامج عرض PDF أن القسمين كانا مفقودين وأضافاهما تلقائيًا دون إخطار القارئ بتغيير في المحتوى. بينما قبل ثلاثة برامج أخرى الملف دون أي اعتراض.

بعد ذلك تساءل الباحثون عما سيحدث إذا نسخوا التوقيع الرقمي في تحديثهم “اليدوي” ببساطة. وقع برنامجان آخران في الفخ؛ وهما Foxit وMasterPDF.

في المجمل، أثبت 11 برنامجًا من بين 22 برنامجًا لعرض ملفات PDF أنها ليست محصنة ضد هذه العمليات البسيطة. والأكثر من ذلك هو أن ستة برامج منها لم تظهر أي علامات على أن المستند المفتوح للعرض قد تم تعديله. وفي الحالات الخمس الأخرى، كان على المستخدم الدخول إلى القائمة والتحقق من صحة التوقيع الرقمي يدويًا للكشف عن أي
علامة على التلاعب؛ ولم يكن فتح الملف ببساطة كافيًا.

هجوم تغليف التوقيع (SWA)

يؤدي التوقيع على أحد المستندات إلى إضافة حقلين مهمين كتحديث تدريجي للمضمون: /المحتويات، التي تحتوي على التوقيع، و/ByteRange الذي يصف ما تم التوقيع عليه بالضبط. وفي النهاية توجد أربع معلمات؛ وهي تحديد بداية الملف، وعدد وحدات البايت قبل رمز التوقيع، حيث يحدد البايت نهاية رمز التوقيع، وعدد وحدات البايت بعد رمز التوقيع – لأن التوقيع الرقمي عبارة عن سلسلة من الأحرف التي تم إنشاؤها من رمز مستند PDF من خلال وسائل التشفير. ولا يمكن بطبيعة الحال للتوقيع أن يوقع نفسه، وبالتالي فإن المنطقة المُخزَّن فيها مستبعدة من عملية احتساب التوقيع.

حاول الباحثون إضافة حقل /ByteRange بعد التوقيع مباشرةً. وظلت أول قيمتان فيه دون تغيير، ولم يتم تعديل أي شيء سوى العنوان الموجود في نهاية التوقيع. وكانت النتيجة ظهور مساحة إضافية في الملف تسمح بإضافة أي عناصر ضارة، بالإضافة إلى قسم Xref الذي يصفها. من الناحية النظرية، إذا تمت قراءة الملف بشكل صحيح، فلن يتمكن برنامج عرض ملفات PDF من الوصول إلى هذا القسم. ومع ذلك، كان 17 تطبيقًا من بين 22 تطبيقًا عرضة لمثل هذا الهجوم.

تزوير التوقيع العالمي (USF)

على سبيل الاحتياط، قرر فريق الأبحاث أيضًا اختبار التطبيقات مقابل الخدعة القياسية التي تُستخدم لإجراء محاولة لاستبدال قيم الحقول بحقول غير صحيحة أو حذفها ببساطة. عند تجربة قسم /المحتويات، اتضح أنه إذا استُبدل التوقيع الحقيقي بالقيمة 0x00، فلا يزال هناك اثنان من برامج العرض يثبتان صحته.

وماذا لو تُرك التوقيع في مكانه، ولكن مع حذف قسم /ByteRange (أي المعلومات المتعلقة بما تم التوقيع عليه بالضبط)؟ أو أُدرجت قيمة فارغة بدلاً من القيم الحقيقية؟ أثبتت بعض برامج العرض صحة هذا التوقيع في كلتا الحالتين.

في المجمل، وُجد أن 4 برامج من بين 22 برنامجًا تحتوي على أخطاء في التنفيذ يمكن استغلالها.

يُظهر جدول ملخص النتائج أنه لا يمكن خداع ما لا يقل عن 21 برنامجًا من بين 22 برنامجًا لعرض ملفات PDF. أي أنه من الممكن إنشاء ملف PDF بمحتوى ضار أو معلومات خاطئة تبدو صالحة للمستخدم في جميع البرامج باستثناء واحد منهم.

جدول تلخيص نقاط الضعف في برامج عرض ملفات PDFالمصدر

من الممتع أن التطبيق الوحيد الذي لم ينخدع بأي من حيل الباحثين هو Adobe Reader 9. والمشكلة هي أنه سريع التأثر بمشكلة RCE، ولا يستخدمه سوى مستخدمي نظام Linux فقط، لأنه أحدث إصدار متاح لهم ببساطة.

الاستنتاجات العملية

ما الاستنتاج العملي الذي يمكن استخلاصه من كل ذلك؟ أولاً، لا ينبغي أن نثق في توقيعات PDF الرقمية ثقةً عمياء. إذا رأيت علامة تدقيق خضراء في مكان ما، فهذا لا يعني بالضرورة أن التوقيع صالح.

ثانياً، حتى المستندات الموقعة يمكن أن تشكل خطرًا. لذا، قبل فتح أي ملفات تتلقاها عبر الإنترنت أو النقر فوق أي روابط موجودة بها، تأكد من تثبيت حل أمني خاص بالأعمال وجدير بالثقة على جهازك.

مقالات ذات صله