الخلاصة

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

البيان مربوط بقطعة لا بكل الإصدار

لا يضع نموذج منشأ البناء في SLSA علامة عامة تقول إن مشروعاً ما آمن. إنه إثبات بأن منصة بناء محددة أنتجت قطعاً برمجية عبر تنفيذ buildDefinition. ويمكن ربط subject ببصمة، وتسجيل هوية الباني ونوع البناء والمعلمات والاعتماديات. وهذا يتيح مقارنة البناء الفعلي بما كان متوقعاً، وإعادة بنائه أو التحقيق فيه عند الحاجة.

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

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

التوقعات لا تخرج تلقائياً من غلاف الإثبات

تطلب SLSA من المُتحقِّق إعداد جذور الثقة: هويات البناة المعترف بها ومستوى SLSA الذي يثق به لكل هوية. ثم يفحص التوقيع، ويطابق subject مع بصمة القطعة، ويتحقق من أن buildType وexternalParameters يطابقان القيم المتوقعة.

لا يختار الإثبات الموقّع على نحو صحيح هذه القيم. تسمح SLSA لمتحقِّقين مختلفين باستخدام جذور ثقة مختلفة، وتفرق بين التوقعات المربوطة باسم حزمة والمنشأ المربوط بقطعة. يستطيع نظام بيئي ربط اسم بمستودع مصدر معياري؛ ويستطيع مستهلك اعتماد قاعدة خاصة؛ ويمكن للمنتج إرسال توقعاته عبر قناة موثقة؛ وقد يجعل نموذج الثقة عند الاستخدام الأول الحالة الأولى أساساً للمقارنة. كل ذلك يجيب عن سؤال لا يجيب عنه الإثبات: ما المسموح لهذه الحزمة في هذا السياق؟

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

لنقطة القبول صاحب قرار

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

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

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

إيصال للتوقع والاستجابة

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

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

لا تستعر سلطة غيرك

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

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

المصادر

  1. SLSA v1.2 — Build: Verifying artifacts
  2. SLSA v1.2 — Build: Provenance
  3. SLSA v1.2 — Build: Distributing provenance