سياسة توقيع الشيفرة
آخر تحديث: أكتوبر ٢٠٢٦ · متاح بـ ١٢ لغة.
١. ما الذي تحدده هذه السياسة
توضّح هذه الصفحة أي مخرجات الإصدار الخاصة بـ KalderaShield تُوقَّع، ومن يوقّعها، وبأي طريقة لحفظ المفاتيح، ومن المسؤول عن اعتماد كل توقيع. النسخة المصدرية من الوثيقة نفسها في المستودع: CODE_SIGNING_POLICY.md
٢. Windows
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
الحالة: لم يُقدَّم الطلب بعد. يعتزم KalderaShield التقديم إلى برنامج SignPath Foundation وقد أعدَّ هذه السياسة مسبقًا، لأن شروطهم تشترط وجودها قبل تقديم الطلب. لم يُقدَّم الطلب ولا يوجد قرار معلَّق. ولا يُقرأ أي جزء من هذا القسم على أنه ادعاء بأن أي مخرج لـ Windows موقّع حاليًا. فهو غير موقّع. وإلى أن يُصدر أول إصدار موقّع فعليًا، تبقى العبارة الصادقة هي جدول الحالة أدناه، ويجري تحديث هذا القسم قبل ذلك الإصدار لا بعده.
الملفات التي ستُوقَّع هي مُثبِّت NSIS (KalderaShield_<الإصدار>_x64-setup.exe) وحزمة MSI للنشر المُدار (KalderaShield_<الإصدار>_x64.msi) والملف التنفيذي المحمول الذي لا يحتاج إلى تثبيت (KalderaShield_<الإصدار>_x64-portable.exe). تُبنى الملفات الثلاثة من هذا المستودع وتُنشر في صفحة الإصدارات. ولا يُوقَّع أي مُخرَج لم يُبنَ من هذا المستودع بشهادة هذا المشروع، ولا يُعاد توقيع أي ملف ثنائي تابع لجهة أخرى بها.
حفظ المفتاح: يُولَّد المفتاح الخاص ويُحفظ في وحدة SignPath للأجهزة الصلبة (HSM). لا يحتفظ هذا المشروع به أبدًا، ولا يصدّره، ولا ينقله إلى وكيل بناء أو إلى جهاز مطوّر. يتم التوقيع على جانب SignPath استجابةً لطلب توقيع يرسله التكامل المستمر لهذا المستودع ويوافق عليه شخص.
السلسلة: يُدفع وسم إصدار ← تبني GitHub Actions الملفات (مسارات العمل علنية، والإجراءات الخارجية مثبَّتة بصيغة SHA للالتزام، وصلاحيات الرمز للقراءة فقط) ← يرفع البناء الملفات إلى SignPath ويفتح طلب توقيع دون توقيع ← يعتمده معتمد أو يرفضه ← توقّع SignPath بشهادة Foundation ← يُنشر الملف الموقّع مع SHA256SUMS.txt. يتطلب كل إصدار موافقة يدوية، ولا يوجد مسار توقيع غير مراقَب ولن يُضاف.
يعني التوقيع الساري من SignPath Foundation أن الملف التنفيذي هو بناء آلي قابل للتحقق من الشيفرة المصدرية في هذا المستودع عند الالتزام الذي يسمّيه الإصدار. وهو لا يعني أن البرمجيات خضعت لتدقيق، وليس تأكيدًا لأمان التطبيق. ينشر هذا المشروع نموذج التهديد ووثائق بوابات الجودة، لكنه لا يملك تدقيقًا أمنيًا مستقلًا مكتملًا:
٣. أدوار الفريق
يشرف على KalderaShield شخص واحد. يُذكر ذلك هنا بدل تقديمه كفريق، لأن الأدوار أدناه هي الأدوار التي يطلبها SignPath، ولا يستطيع المشرف الوحيد ملؤها إلا بشكل صادق منفرد. تستخدم جميع الحسابات ذات صلاحية الكتابة في هذا المستودع المصادقة متعددة العوامل.
المؤلفون — أشخاص يمكنهم تعديل الشيفرة المصدرية دون مراجعة إضافية:
hafgit99— github.com/hafgit99
هذا هو الحساب الوحيد الذي يملك صلاحية الكتابة. المستودع مملوك لحساب شخصي لا لمنظمة، لذا فإن مسار الكتابة هو هوية واحدة عليها مصادقة متعددة العوامل.
المراجعون — أشخاص يراجعون كل تغيير يقترحه من لا يملك صلاحية الالتزام قبل دمجه:
hafgit99
لا يوجد حاليًا مساهمون بلا صلاحية التزام، لذا فإن هذا الدور عمليًا ليس ضئلًا فحسب بل شاغر.
المعتمدون — أشخاص يعتمدون كل طلب توقيع قبل توقيع المُخرَج:
hafgit99
ثغرة معروفة: عندما يحمل شخص واحد الأدوار الثلاثة، فإن من يكتب الشيفرة هو نفسه من يعتمد توقيعها. تفترض نموذج SignPath أن المعتمد «موثوق به من الفريق بأسره»، وهو ما يفترض أكثر من عضو واحد. إضافة معتمد ثانٍ مخطط لها ولم تتم بعد. ومن يعتبر ذلك سببًا للإقصاء ينبغي أن يقوله الآن لا بعد الموافقة.
٤. سياسة الخصوصية
بالعبارة التي تطلبها SignPath: لن ينقل هذا البرنامج أي معلومات إلى أنظمة شبكية أخرى إلا إذا طلب ذلك المستخدم أو الشخص الذي يثبّته أو يشغّله تحديدًا.
KalderaShield هو مدير كلمات مرور يعمل دون اتصال ويقوم على المعرفة الصفرية. تُشفَّر محتويات الخزنة على الجهاز بمفاتيح مشتقّة من كلمة المرور الرئيسية ولا تُنقل أبدًا. لا يوجد حساب ولا خدمة مزامنة ولا تتبع ولا تحليل. ولا تتضمّن ملفات Windows أي عميل شبكة من أي نوع سوى مكونات نظام التشغيل نفسه. النص الكامل: سياسة الخصوصية. ويُغطّى سلوك مكوّنات الأطراف الثالثة التي تؤثر في المستخدمين في LICENSE-3RD-PARTY.md.
٥. منصات أخرى
macOS — تُوقَّع المخرجات بمعرّف Apple Developer وتُوثَّق من Apple. لم تُصدر الشهادة بعد، فلا يوجد أي مخرج macOS موقّع ولا أي منها منشور. Linux — يُنشر .deb و.rpm و.AppImage بتوقيعات GPG منفصلة (.sig)؛ وتُنشر SBOM وحزم إضافات المتصفح بتوقيعات Sigstore بلا مفتاح (.sigstore.json). Android — تُوقَّع حزم APK بنسخ الإصدار بمخزن مفاتيح محفوظ في أسرار GitHub Actions؛ وتوقيع Android منفصل عن Authenticode. لا تُوصف أي منصة بأنها موقَّعة حتى تصبح كذلك.
الحالة الحالية: نُشرت Linux وAndroid وإضافة المتصفح وهي موقَّعة. تُنشر Windows كإعاينة غير موقَّعة فقط: وهي إصدار مبكر لا نسخة مستقرة، وlatest لا يشير إليها. تُطلق الملفات غير الموقَّعة تحذير SmartScreen «حماية جهازك» وستحتاج إلى النقر على «مزيد من المعلومات» ← «تشغيل على أي حال» لتشغيل المُثبِّت؛ وهو متوقّع. تحقّق من بصمة SHA-256 في SHA256SUMS.txt قبل التشغيل. لم يُقدَّم طلب التوقيع إلى SignPath Foundation بعد. وmacOS لم تُنشر ولم تُوقَّع (لم تُصدر الشهادة بعد).
لا تُنشر مخرجات Windows كإصدار: فسلسلة الإصدار تعتبر إصدار سطح مكتب غير موقّع خطأً، ولا يستطيع أي مسار عمل في .github/workflows/ نشر واحد. تُجمَّع المعاينة وتُرفع يدويًا، من جهاز القائم على المشروع عبر نموذج الإصدار في GitHub، وتُوسم بأنها إصدار مبكر؛ فهي ف ظاهرة كإصدار مؤقت، ولا يشير إليها latest أبدًا، ويحل محلها الإصدار الموقّع التالي. وهذا مسار مقصود لا تحايل. يحتوي المستودع على بوابة أمان (npm run security:release-signing) ترفض أي مسار عمل قادر على تحويل بناء غير موقّع إلى نشر، وادعاؤها الختامي هو أن الإصدار العام لسطح المكتب مستحيل بحكم التصميم في غياب أسرار التوقيع. وإضافة استثناء لمسار العمل كان سيجعل هذا الادعاء خاطئًا مقابل راحة واحدة. إبقاء الرفع في المتصفح يحفظ الضمان. والبوابة موثّقة في دليل توقيع الشيفرة والمخرجات، والإجراء خطوة بخطوة في الخطة: الموقع، ثم المعاينة غير الموقّعة لـ Windows.
٦. الإبلاغ عن مشكلة
إذا كنت تعتقد أن مُخرَجًا موقَّعًا بشهادة SignPath Foundation يخالف هذه السياسة، فأبلغ عنه إلى support@signpath.io مع بصمة المُخرَج وسبب الاعتراض. وأي أمر آخر يخص هذه المُخرجات فاستخدم security@kalderashield.com؛ وعملية الإفصاح موضّحة في SECURITY.md.
في حال وجود اختلاف، يُعتدّ بالنص التركي من هذه السياسة.