محتويات الدورة

Git وGitHub / المتقدم: الثقة والحجم والتعافي / الدرس 14

توقيع الإيداعات والتحقق والثقة

فسر التوقيع كدليل هوية محدود دون خلطه بجودة الشيفرة أو تفويض المستودع.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • افصل نص المؤلف وصحة التوقيع والثقة وحق الكتابة.
  • راجع سياق التحقق ودورة حياة المفتاح.

حدد ما يدعمه التوقيع

حقول المؤلف والمودع بيانات عادية مستقلة عن تسجيل الدخول. يربط التوقيع بيانات بمفتاح وفق التحقق، وتسأل الثقة هل يخص هوية معتمدة ومقبولة للغرض. لا يثبت التوقيع أو Verified الصحة أو المراجعة أو أمان التشغيل. الصلاحيات والسياسة ضوابط خادم مستقلة. افصل الادعاءات كي لا تعوض الشارة دليلاً لا تقدمه.

اختر إعداد توقيع وتحقق مدعوماً

يدعم Git آليات مضبوطة ويوثق GitHub تحقق GPG وSSH وS/MIME. يعتمد المتاح على Git والأدوات والمفتاح والقواعد. يحتاج توقيع SSH إصداراً مناسباً ويوثق من 2.34 ويحتاج التحقق قائمة موقعين مسموحين. لا تستنتج الإعداد من علم واحد. احمِ الخاص وحدد الملكية والتدوير ولا تستخدم إلا اصطناعياً بتجربة مفوضة. لا تولد الدورة اعتمادات فعلية أو ترفعها.

افحص حالة التوقيع دون اختراع ثقة

يعرض log حالة التوقيع بقوالب التنسيق. يعيد %G? في المختبر غير الموقع N. تعتمد الحالات الأخرى على التحقق والثقة فلا تجعل كل غير N هوية معتمدة. يتحقق verify-commit بالآلية وقد يفشل لغياب التوقيع أو بطلانه أو نقص الإعداد. اقرأ التشخيص. يفحصان البيانات ولا يوقعان أو يرفعان أو يمنحان وصولاً.

bash فحص إيداع مختبر اصطناعي غير موقع
git log -1 --format=%G?
git log -1 --format=fuller

مع تعطيل التوقيع في البيئة المعزولة يطبع الأول N. تعرض fuller بيانات لا ملكية حساب موثقة. يحتاج الكائن الموقع متحققاً موثوقاً منفصلاً ولا تدعي التجربة ذلك.

قيّم الحقائق المتحققة بسياسة صريحة

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

python سياسة تعليمية على حقائق متحققة مسبقاً
def eligible_signed_change(facts):
    return (
        facts.get("signature_valid") is True
        and facts.get("signer_approved") is True
        and facts.get("commit_identity_matched") is True
        and facts.get("review_current") is True
    )

assert not eligible_signed_change({"signature_valid": True})

لا ينفذ Python تشفيراً أو اتصالاً. يحصل الحقيقي على الحقائق بتحقق موثوق ويربط المرشح. لا يعني النجاح استيفاء كل الأمان أو الوظيفة.

خطط فقد المفتاح واختراقه وتغير التاريخ

تحتاج السياسة تعافي الفقد واستجابة الاختراق وتغيير الهوية وتحقق الإصدارات الماضية. يخلق التعديل كائناً آخر ولا ينتقل التوقيع تلقائياً. تغير طرق الدمج الكائنات والهويات فراجع المنصة. أبعد الخاص عن الملفات والسجلات والحزم واتبع استجابة المالك عند التسريب. تدرب بحقائق اصطناعية وكائنات غير موقعة دون ادعاء اختبار تشفير لم ينفذ.

الأخطاء الشائعة وإصلاحها

تُعامل Verified كموافقة جودة

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

يفشل التوقيع بآلة أخرى

لماذا يحدث؟
تختلف الأدوات أو الثقة.
كيف تصلحه؟
افحص التشخيص والسياق المعتمد.
كيف تتجنب تكراره؟
رقّم الافتراضات وجذور الثقة.

يفترض احتفاظ المعاد بتوقيعه

لماذا يحدث؟
اختلط الكائن الجديد بالأصل.
كيف تصلحه؟
تحقق من الناتج وفق السياسة.
كيف تتجنب تكراره؟
راجع أثر التوقيع قبل الكتابة.

اختبر فهمك

1. توقيع صحيح بمفتاح مجهول. هل التغيير معتمد؟

اعرض الحل المشروح

لا تثبت الصحة موقعاً معتمداً أو مراجعة. طبق الثقة وافحص الهوية والتفويض والدليل منفصلة ولا تساوِ امتلاك مفتاح بالسلطة.

2. لماذا يختلف التحقق المحلي وعرض GitHub؟

اعرض الحل المشروح

قد تختلف علاقة المفتاح والثقة والصيغ وقواعد الاستمرار. افحص السياق والسلوك الرسمي ولا تعلن أحدهما حاسماً لكل سياسة.

أهم ما تعلمته

  • الصحة والثقة والمراجعة والتفويض منفصلة.
  • يحتاج التحقق أداة وسياق ثقة محددين.
  • تدخل دورة المفتاح والكائن المعاد في السياسة.

المراجع الرسمية