حول شهادة توقيع حماية البرمجيات
شهادة توقيع حماية البرمجيات هي شهادة رقمية تحتوي على معلومات تحدد هوية الكيان الذي أصدرها بشكل دقيق. تُصدر الشهادة من قبل هيئة تصديق مثل Corporate CA، حيث تربط الشهادة الرقمية هوية المنظمة بمفتاح عام مرتبط رياضيًا بمفتاح خاص. يُعرف هذا النظام بالبنية التحتية للمفاتيح العامة (PKI). يقوم المطور بتوقيع البرمجيات باستخدام المفتاح الخاص، في حين يستخدم المستخدم النهائي المفتاح العام الخاص بالمطور للتحقق من هوية المطور.
لماذا يتم توقيع حماية البرمجيات؟
معظم الأجهزة الحاسوبية المتوفرة في الأسواق تأتي مزودة ببرمجيات محملة مسبقًا. ومع ذلك، فإن البرمجيات الجاهزة من المصنع ليست كافية طوال عمر الجهاز. سواء كان جهاز كمبيوتر شخصي أو هاتفًا محمولًا، غالبًا ما يحتاج المستخدمون إلى تنزيل برامج أو تطبيقات إضافية. في أحيان أخرى، قد يُطلب من المستخدمين عبر التطبيقات أو المواقع الإلكترونية إجراء تحديثات أو تثبيت برامج معينة للوصول إلى خدمات محددة. عند هذه المرحلة، يحتاج المستخدمون لاتخاذ قرار فوري بناءً على الرسائل التحذيرية مثل

"تشغيل أو عدم تشغيل"، "تثبيت أو عدم تثبيت"، أو "تشغيل أو إلغاء".
في هذه الحالات، يُسأل المستخدم عما إذا كان يريد تشغيل البرمجيات التي تم تنزيلها. كيف يمكن للمستخدم اتخاذ القرار الصحيح؟ وكيف يمكن للنظام (عادةً المتصفح) تحديد ما إذا كان يجب الوثوق بالبرنامج أم لا؟
الإجابة هي: توقيع حماية البرمجيات.
مساعدة المستخدمين على اتخاذ قرار مبني على الثقة قبل تثبيت البرامج، يمكن للناشرين توقيع البرمجيات رقميًا. التوقيع الرقمي يثبت هوية من قام بالتوقيع ويضمن أن البرمجيات لم يتم التلاعب بها. البرمجيات الموقعة رقميًا والمدعومة بشهادة من هيئة تصديق موثوقة تتمتع بمصداقية أكبر من البرمجيات غير الموقعة. بشكل عام، لا يجب الوثوق بالبرمجيات غير الموقعة لأنها لا توفر أي دليل على المصدر أو سلامة الملف، مما يعني أنها قد تكون عرضة للتلاعب.
بفضل المعلومات التي يوفرها التوقيع الرقمي، يمكن للمستخدمين اتخاذ قرارات أكثر وعيًا بشأن "تشغيل أو عدم تشغيل" البرنامج.
ما هو توقيع حماية البرمجيات؟
توقيع حماية البرمجيات هو عملية توقيع رقمي للملفات التنفيذية والسكريبتات، تهدف إلى تأكيد هوية مؤلف البرمجيات وضمان عدم تعديل البرمجيات منذ توقيعها. لتوقيع البرمجيات، يحتاج الناشر إلى إنشاء زوج من المفاتيح (مفتاح خاص ومفتاح عام)، ثم تقديم المفتاح العام إلى هيئة التصديق (CA) مع طلب للحصول على شهادة توقيع حماية البرمجيات. تقوم هيئة التصديق بالتحقق من هوية الناشر وتوثيق الطلب الموقع رقميًا من قبل الناشر. إذا نجح التحقق، تقوم الهيئة بربط هوية الناشر بالمفتاح العام وتوقيع هذه الحزمة، مما يؤدي إلى إصدار شهادة توقيع حماية البرمجيات.
مع شهادة توقيع حماية البرمجيات، يمكن للناشر توقيع البرمجيات. عند التوقيع، تُضاف عدة معلومات إلى الملف الأصلي، وهذه المعلومات تُستخدم من قبل المستخدمين للتحقق من هوية الناشر وكشف أي تلاعب بالبرمجيات. عند توقيع البرمجيات، يتم إنشاء "هاش" (ملخص) لحماية البرمجيات:
إنشاء "هاش" للبرمجيات
- بما أن خوارزميات المفتاح العام غير فعّالة لتوقيع الملفات الكبيرة، يتم تمرير البرمجيات عبر خوارزمية تجزئة، مما ينتج ملخصًا ثابت الطول للملف يعرف بـ"الهاش"
- "الهاش" هو تمثيل فريد من الناحية التشفيرية للملف
- ولا يمكن إعادة إنتاجه إلا باستخدام الملف الأصلي وخوارزمية التجزئة المستخدمة في إنشائه
توقيع "الهاش" باستخدام المفتاح الخاص للناشر
- يُمرر "الهاش" عبر خوارزمية التوقيع، ويُستخدم المفتاح الخاص للناشر كمدخل للتوقيع.
يتم تضمين معلومات عن الناشر وهيئة التصديق في التوقيع، مأخوذة من شهادة توقيع حماية البرمجيات
- يتم تجميع البرمجيات الأصلية مع التوقيع وشهادة توقيع حماية البرمجيات في حزمة واحدة.

التحقق من صحة حماية البرمجيات
عند تحميل البرمجيات، يقوم النظام بالتحقق من مصداقيتها باستخدام المفتاح العام للناشر، التوقيع، و"الهاش" المجمّعة في الحزمة. إذا تم التحقق بنجاح، يقبل النظام البرمجيات كصحيحة. أما إذا فشل التحقق، فإن النظام قد يعرض تحذيرًا للمستخدم أو يرفض تثبيت البرمجيات، وفقًا لمستوى الأمان المستخدم.
التحقق من "الهاش"
- يتم تمرير البرمجيات الأصلية عبر خوارزمية التجزئة لإنتاج "هاش" جديد.
- يُستخرج المفتاح العام للناشر من الحزمة، ويتم تطبيقه على التوقيع لفك التشفير واستخراج "الهاش" الذي تم حسابه عند توقيع الملف.
- تتم مقارنة "الهاش" الجديد مع "الهاش" المستخرج؛ إذا كانا متساويين، فهذا يعني أن البرمجيات لم تتغير ويعتبر التوقيع صحيحًا.
التحقق من شهادة توقيع حماية البرمجيات
- يتم فحص شهادة توقيع الحماية للتأكد من أنها موقّعة من هيئة تصديق موثوقة.
- يتم التحقق من تاريخ انتهاء صلاحية الشهادة.
- يتم فحص الشهادة ضد قوائم الإلغاء للتأكد من صلاحيتها.
إذا كانت كل من "الهاش" والشهادة صالحتين، تُعتبر البرمجيات موثوقة، ويقبلها النظام ويعرضها للتثبيت. أما إذا كانت غير صالحة، فيظهر النظام رسالة تحذير للمستخدم.

قرارات تثبيت حماية البرمجيات
عند توقيع البرمجيات وبدء المستخدم عملية التثبيت مع إتمام عملية التحقق، قد يتساءل المستخدم عن كيفية اتخاذ القرار بشأن قبول التثبيت
تعتمد قرارات المستخدم على الرسائل التحذيرية والمعلومات المتاحة، مثل
اسم البرنامج | على سبيل المثال، "مثبت Adobe Flash Player". |
---|---|
اسم الناشر: | على سبيل المثال، "Adobe Systems, Incorporated" |
شهادة توقيع حماية البرمجيات: | يمكن للمستخدم النقر على زر "إظهار التفاصيل" في القائمة المنسدلة، لرؤية معلومات الشهادة. |

خمس خطوات بسيطة لتحديد ما إذا كان يمكن الوثوق بالبرنامج:
- تأكد من أنك تخطط فعلًا لتثبيت هذا البرنامج، وأنه البرنامج الذي تحتاجه.
- راجع اسم الملف للتأكد من أنه يشير إلى البرنامج الذي تريد تثبيته. على سبيل المثال، إذا كنت تقوم بتثبيت "Adobe Reader 10"، يجب أن يتضمن اسم الملف إشارة إلى هذا البرنامج.
- تأكد من أن اسم الناشر يتطابق مع الشخص أو الجهة التي تتوقع أنها كتبت البرنامج. قد يكون هذا صعبًا أحيانًا، خصوصًا إذا كان موقع التنزيل مختلفًا عن موقع الناشر الرسمي
- راجع الشهادة للتحقق من وجود اسم الناشر فيها، مما يضمن أنه قد تم التحقق من هوية الناشر.
- تأكد من أن الشهادة صادرة عن هيئة تصديق عامة موثوقة، حيث تُعتبر هذه الهيئات جهات معترف بها للتحقق من هوية الناشرين.
مثال على برنامج قد يكون غير موثوق به:

إذا ظهرت لك نافذة حوار تشير إلى أن اسم البرنامج هو "Install.exe"، فإن هذا الاسم غير محدد بما يكفي لتعرف ما هو البرنامج الذي يتم تثبيته. وإذا كان اسم الناشر هو "غير معروف"، فهذا يعني أن هيئة تصديق عامة لم تتحقق من شهادة توقيع حماية البرمجيات. في هذه الحالة، قد لا يكون البرنامج ضارًا، لكنه غالبًا ما يكون موقّعًا باستخدام شهادة موقعة ذاتيًا. هذا يعني أن المستخدم لا يمكنه الثقة في الجهة التي قامت بتوقيع البرمجيات.
ما هو "ختم الزمن"؟
عندما تنتهي صلاحية شهادة توقيع حماية البرمجيات، قد يؤدي ذلك إلى فشل التحقق من التوقيع، مما ينتج عنه ظهور تحذير للمستخدم بشأن موثوقية البرنامج
وهنا يأتي دور ختم الزمن لحل هذه المشكلة. ختم الزمن هو عملية تضيف توقيعًا موثقًا يحتوي على تأكيد من طرف ثالث (سلطة ختم الزمن - TSA) حول وقت توقيع البرمجيات. إذا كان المستخدم يعرف وقت التوقيع وتأكد من صلاحية الشهادة في ذلك الوقت، يمكنه الاطمئنان إلى أن التوقيع كان صالحًا عند نشر البرنامج، حتى لو انتهت صلاحية الشهادة فيما بعد.
يضمن ختم الزمن استمرار الثقة في البرمجيات حتى بعد انتهاء صلاحية شهادة توقيع حماية البرمجيات أو حتى في حالة إلغائها في المستقبل. بمعنى آخر، طالما يمكن للمستخدم تشغيل البرنامج، سيظل يعتبر موثوقًا بفضل ختم الزمن.
ومع ذلك، قد لا يكون التحقق من البرمجيات صالحًا إذا انتهت صلاحية شهادة ختم الزمن نفسها. تتطلب المتطلبات الجديدة لسلطات ختم الزمن (TSAs) استخدام شهادة ختم زمن بحد أقصى للصلاحية يبلغ 135 شهرًا (حوالي 11 سنة)، تُجدد كل 15 شهرًا لضمان استمرارية الثقة.
كيفية تنفيذ ختم الزمن لتوقيع البرمجيات:
- يتم إرسال التوقيع إلى سلطة ختم الزمن (TSA).
- تقوم TSA بإضافة ختم الزمن إلى المعلومات المجمعة وحساب "هاش" جديد..
- تقوم TSA بتوقيع "الهاش" الجديد باستخدام مفتاحها الخاص لإنشاء حزمة معلومات جديدة.
- يتم إعادة تجميع الحزمة المختومة زمنياً مع الحزمة الأصلية (المُرسلة إلى TSA) وختم الزمن، بالإضافة إلى البرمجيات الأصلية.
عند استلام توقيع مختوم زمنياً، يتبع النظام الخطوات التالية للتحقق (إضافة إلى التحقق من توقيع حماية البرمجيات):
- يتم التحقق من شهادة سلطة ختم الزمن (TSA) للتأكد من أنها صادرة عن شهادة جذر موثوقة وأن حالتها صالحة.
- يُستخدم المفتاح العام لـ TSA على كتلة التوقيع المختومة زمنياً لكشف "الهاش" الذي حسبته TSA.
- يتم التحقق من صلاحية المفتاح العام لـ TSA من خلال فحص تاريخ انتهاء الصلاحية والرجوع إلى قوائم الإلغاء للتأكد من أنه لم يُلغَ.
- تتم مقارنة "الهاشين" المستخرجين. إذا كانا متساويين، يُعتبر ختم الزمن صالحًا.
في حال الحاجة إلى إلغاء شهادة توقيع حماية البرمجيات بسبب خرق أمني، يتم تحديد تاريخ معين للإلغاء. التوقيعات التي تمت قبل هذا التاريخ ستظل صالحة، مما يعني أن البرمجيات الموقعة ستستمر في العمل بشكل طبيعي بفضل ختم الزمن الذي يضمن أن التوقيع كان سليمًا في وقت الإصدار.
التوقيع الذاتي مقابل الثقة العامة
في معظم الحالات، يتعين على ناشري البرمجيات توقيع حماية البرمجيات لضمان إمكانية تثبيتها على أنظمة التشغيل المختلفة. يمكن للناشرين اختيار توقيع البرمجيات باستخدام شهادة موقعة ذاتيًا أو باستخدام شهادة صادرة من هيئة تصديق معتمدة وموثوقة من الجمهور (CA).
بسبب تكلفة شراء شهادة توقيع من هيئة تصديق عامة موثوقة، قد يلجأ بعض الناشرين إلى استخدام شهادة موقعة ذاتيًا. لكن يجب أن يؤخذ في الاعتبار الاختلافات بين هذين النوعين من الشهادات:
الشهادة الموقعة ذاتيًا | الشهادة الصادرة من هيئة تصديق معتمدة |
---|---|
المصدر يقدم هويته الخاصة، ولا يتم نشرها كجزء من رسالة الأمان للتحقق من البرمجيات. | هيئة التصديق تتحقق من هوية الناشر، وتُعرض هذه الهوية في رسالة الأمان للتحقق من البرمجيات. |
المصدر يحدد سياسة وجودة الشهادة بنفسه. | هيئة التصديق تُصدر الشهادات وفقًا لسياسة ومعايير جودة الصناعة |
التوقيع يعرض تحذيرًا للمستخدم بأن البرنامج "من ناشر غير معروف" | التوقيع يعرض اسم الناشر بشكل واضح، مما يعزز الثقة. |
لا يمكن إلغاء الشهادات الموقعة ذاتيًا إذا تعرضت للاختراق، مما يعرض مستخدمي البرمجيات للخطر. | يمكن إلغاء الشهادات المخترقة من قبل هيئة التصديق، وإذا كان التوقيع يحتوي على ختم الزمن، سيظل التوقيع موثوقًا للبرمجيات الموقعة قبل تاريخ الإلغاء. |
لضمان ثقة المستخدمين وطول عمر البرمجيات، يُوصى بأن يستخدم ناشرو البرمجيات شهادات صادرة من هيئة تصديق معتمدة وموثوقة من الجمهور. هذه الشهادات تعزز من موثوقية البرمجيات وتضمن حماية أفضل للمستخدمين.

معايير شهادات توقيع حماية البرمجيات
حتى عام 2016، كانت هناك متطلبات لإدارة وإصدار شهادات توقيع حماية البرمجيات الممتدة (EV Code Signing Certificates) فقط. اعتبارًا من فبراير 2017، تم اعتماد معيار جديد لشهادات توقيع حماية البرمجيات غير الممتدة (Non-EV Code Signing Certificates).
لم تُنشر الحد الأدنى من متطلبات توقيع حماية البرمجيات من قِبل منتدى المتصفحات والجهات المانحة للشهادات (CA/Browser Forum)، لكن العديد من هذه المتطلبات مستوحاة من متطلبات الأساس للمنتدى. وتشمل المتطلبات الأساسية لتوقيع حماية البرمجيات:
- هوية الناشر: يجب أن يكون الاسم القانوني للناشر هو الاسم الشائع (Common Name)، ويمكن أيضًا أن يكون الاسم التجاري (DBA).
- حجم المفتاح الأدنى: يجب ألا يقل حجم المفتاح عن 2048 بت في خوارزمية RSA، أو منحنيات ECC مثل P-256، P-384، أو P-521.
- مدة الصلاحية: الحد الأقصى لمدة الصلاحية هو 39 شهرًا.
- الطلبات عالية المخاطر: يتعين على الجهات المانحة للشهادات (CAs) التحقق من قواعد البيانات للتأكد من عدم منح شهادة توقيع حماية البرمجيات للناشرين المعروفين بتوزيع برمجيات مشبوهة.
- حماية المفتاح الخاص: نظرًا لاستخدام مفاتيح مخترقة في توقيع برمجيات مشبوهة، يجب تشفير المفاتيح الخاصة على أجهزة مادية أو حفظها على أجهزة منفصلة عن نظام توقيع البرمجيات.
- الهجمات على المفاتيح: في حال وجود تاريخ من الهجمات على مفاتيح الناشر، يُطلب مستوى أعلى من الحماية للمفتاح الخاص
- إلغاء الشهادة: تم تحديد إجراءات خاصة لإلغاء الشهادات تشمل طلبات الإلغاء من موردي البرامج (مثل مايكروسوفت).
- ختم الوقت (Time-stamping): تم تحديد متطلبات لمصدر الشهادة، وختم الوقت، وهيئة ختم الوقت (TSA).
أفضل الممارسات لتوقيع حماية البرمجيات
أكبر تحدٍ في توقيع حماية البرمجيات هو حماية المفتاح الخاص المرتبط بشهادة التوقيع. في حال تم اختراق المفتاح، تفقد الشهادة قيمتها وثقة المستخدم، مما يعرض البرمجيات الموقعة للخطر.
إليك سبع ممارسات موصى بها لتوقيع حماية البرمجيات:
تقليل الوصول إلى المفاتيح الخاصة.
- الحد من الاتصال بأجهزة الكمبيوتر التي تحتوي على المفاتيح.
- تقليل عدد المستخدمين الذين يمكنهم الوصول إلى المفاتيح.
- استخدام وسائل الحماية المادية لتقليل الوصول إلى المفاتيح.
أفضل الممارسات لتوقيع حماية البرمجيات
أكبر تحدٍ في توقيع حماية البرمجيات هو حماية المفتاح الخاص المرتبط بشهادة توقيع الحماية. في حال تم اختراق المفتاح الخاص، فإن الشهادة تفقد قيمتها وثقة المستخدمين، مما يعرض البرمجيات الموقعة للخطر.
فيما يلي سبع من أفضل الممارسات لتوقيع حماية البرمجيات:
حماية المفاتيح الخاصة باستخدام أجهزة التشفير المادية
- يجب استخدام أجهزة التشفير المادية لحماية المفاتيح الخاصة، حيث تمنع هذه الأجهزة تصدير المفتاح الخاص إلى برامج يمكن أن تكون عرضة للهجمات.
- يُنصح باستخدام أجهزة تشفير معتمدة بمعيار FIPS 140 Level 2 أو أعلى لضمان مستوى عالي من الأمان.
- استخدام شهادات توقيع الحماية الممتدة (EV) تتطلب شهادات EV لتوقيع الحماية أن يتم إنشاء المفتاح الخاص وتخزينه في جهاز تشفير مادي، مما يعزز من مستوى الحماية.
استخدام ختم الزمن (Time-stamp)
- يساعد ختم الزمن في التحقق من البرمجيات بعد انتهاء صلاحية الشهادة أو حتى في حال إلغائها. يمنح هذا المستخدِمين الثقة في أن البرمجيات كانت موقعة بشكل صحيح في وقت النشر.
التفرقة بين التوقيع للاختبار والتوقيع للإصدار النهائي
- يتطلب التوقيع أثناء الاختبار مستويات أقل من الحماية مقارنة بالتوقيع للإصدار النهائي
- مكن أن تكون الشهادات المستخدمة في الاختبار موقعة ذاتيًا أو من سلطة تصديق داخلية.
- يجب أن تكون شهادات الاختبار متسلسلة مع شهادة جذر مختلفة تمامًا عن تلك المستخدمة في المنتجات المعلنة للجمهور. يساعد هذا الفصل في ضمان أن شهادات الاختبار لا تُستخدم إلا في بيئة الاختبار المحددة
- من المهم إنشاء بنية تحتية مخصصة لتوقيع البرمجيات أثناء الاختبار
توثيق البرمجيات قبل توقيعها:
- لضمان أمان البرمجيات المقدمة للتوقيع، يجب التحقق من هويتها وصحتها بدقة قبل إصدارها.
- ينبغي إنشاء عملية تنظيمية لتقديم الكود والموافقة عليه، لمنع توقيع البرمجيات غير المصرح بها أو التي قد تكون خبيثة.
- يفضل تسجيل جميع عمليات توقيع البرمجيات لأغراض التدقيق المستقبلي أو الاستجابة لأي طوارئ.
فحص البرمجيات ضد الفيروسات قبل توقيعها:
- توقيع البرمجيات لا يضمن خلوها من الأخطاء أو جودتها، بل يؤكد فقط أن الكود صادر من جهة معروفة ولم يتم التلاعب به.
- يجب توخي الحذر عند استخدام أكواد برمجية تم الحصول عليها من مصادر خارجية، إذ قد تحتوي على مخاطر.
- من الضروري إجراء فحص أمني للكود باستخدام برامج مكافحة الفيروسات قبل توقيعه، لضمان جودته وأمانه.
تجنب الاعتماد المفرط على مفتاح واحد (تنويع المخاطر باستخدام شهادات متعددة):
- إذا تبين أن أحد الأكواد يحتوي على ثغرة أمنية، فمن الأفضل أن يظهر تحذير للمستخدم عند تثبيته، ويتم ذلك من خلال إلغاء شهادة توقيع الكود بحيث تظهر رسالة تُعلم المستخدم بالمشكلة.
- إذا تم إصدار أكثر من كود باستخدام الشهادة ذاتها، فقد يؤثر إلغاء الشهادة على البرمجيات الصالحة أيضًا.
- للحفاظ على المرونة، يُنصح باستخدام شهادات متعددة ومفاتيح مختلفة لتقليل المخاطر وضمان استمرارية العمل بأمان.
كيفية التقديم للحصول على شهادة توقيع الكود البرمجي؟
يجب على الجهات الحكومية التسجيل في بوابة شركة مصدر التكنولوجيا (TS)، والتي تعمل كهيئة تسجيل (Registration Authority - RA)، قبل أن تتمكن من التقديم للحصول على شهادات من Corporate CA أو Infrastructure CA. تقوم الجهة الحكومية باتباع الخطوات التالية لمشاركة التفاصيل المطلوبة مع TS RA:
- يتصل ممثل الجهة الحكومية بـ TS عبر إرسال بريد إلكتروني إلى TS.certification.info@pki.gov.pk
- يعبر ممثل الجهة الحكومية عن احتياجات الجهة في البريد الإلكتروني.
- يرد TS RA بالمعلومات اللازمة من ممثل الجهة الحكومية.
- يجب على ممثل الجهة الحكومية ملء وتقديم النموذج إلى TS RA.
بمجرد أن يتم تسجيل الجهة الحكومية مع TS، يمكن لممثل الجهة الحكومية ملء وتقديم نموذج طلب الشهادة.
© 2024 Technology Source. All Rights Reserved | TS IT Department | info@Techsource.iq