دليل ثقة الأدلة + بنية الدعامات
Audience: Engineers implementing or reviewing evidence trust enforcement, الجمهور: المهندسون الذين يقومون بتنفيذ أو مراجعة تنفيذ ثقة الأدلة، والتحقق من التوقيع، وسلوك سياسة الربط.
جدول المحتويات
- نظرة عامة تنفيذية
- نموذج الأدلة
- ثقة الممرات والمتطلبات
- سياسة ثقة المزود (التوقيعات)
- سياسة الكشف عن الأدلة
- تكوين سياسة الربط
- تحقق من صحة النقاط المرجعية في مستوى التحكم
- تحقق من تثبيت Runpack
- أدلة مؤكدة (التحقق المسبق)
- مرجع متقاطع ملف بملف
نظرة عامة تنفيذية
قرار بوابة القرار يفصل بين الثقة (الأدلة الموثقة مقابل الأدلة المصرح بها) والنزاهة (المراسي والتوقيعات). تتحكم مسارات الثقة فيما إذا كانت الأدلة مؤهلة لتقييم البوابة، بينما توفر سياسات المراسي والتوقيعات روابط قابلة للتحقق مع الأنظمة الخارجية. يتم التنفيذ في مكانين:
- Control plane runtime: applies trust requirements and validates anchors وقت تشغيل طبقة التحكم: يطبق متطلبات الثقة ويحقق في المراسي عند تكوينها.
- مدقق Runpack: يعيد تشغيل فحوصات سياسة الربط بشكل غير متصل.
يتم التحكم في الكشف عن الأدلة بشكل منفصل على مستوى الأداة. F:crates/decision-gate-core/src/core/evidence.rs L97-L257 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018 F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334
يدعم الآن اختيار ملف التعريف في وقت التشغيل ذو الكتابة المحددة وصلة محلل النطاق (TypedProfileResolver) المعتمد على (tenant_id, namespace_id, provider_id). يغير هذا حدود البحث عن ملف التعريف في وقت التشغيل ولكنه لا يغير دلالات ثقة المسار، أو التوقيع، أو التحقق من الثبات. كما يكشف وقت تشغيل REST أيضًا عن وصلة مقيّم السياسة (RestPolicyEvaluator) التي يمكن أن ترفض الإخراج/نظام المصادقة قبل استدعاءات الشبكة مع الحفاظ على تنسيقات الثبات الحالية.
نموذج الأدلة
تحدد أنواع الأدلة الأساسية الحمولة القياسية وبيانات السلامة:
EvidenceResultcarries a value, trust lane, hash, anchor, and optionalEvidenceResultيحمل قيمة، حارة ثقة، تجزئة، مرساة، وتوقيع اختياري.EvidenceAnchorيحتوي على نوع مرساة وقيمة مرساة مشفرة بتنسيق JSON.EvidenceAnchorPolicyيربط مقدمي الخدمة بأنواع المراسي المطلوبة والحقول.
F:crates/decision-gate-core/src/core/evidence.rs L175-L257
ثقة الممرات والمتطلبات
تعتبر مسارات الثقة شبكة من مستويين:
تم التحقق(افتراضي) للأدلة المستمدة من المزود.تم التأكيدعلى الأدلة المقدمة من العميل.
TrustRequirement يحدد الحد الأدنى المقبول للمسار ويطبق حسب الشرط والبوابة. إذا لم تستوفِ الأدلة المتطلبات، يتم تحويلها إلى نتيجة Unknown مع خطأ trust_lane.
F:crates/decision-gate-core/src/core/evidence.rs L97-L141 F:crates/decision-gate-core/src/runtime/engine.rs L730-L746 F:crates/decision-gate-core/src/runtime/engine.rs L1573-L1593
تكوين مستوى التحكم يكشف:
- global
trust_requirement - تجاوزات لكل مزود (عبر
provider_trust_overrides)
F:crates/decision-gate-core/src/runtime/engine.rs L111-L145
سياسة ثقة المزود (التوقيعات)
تفرض اتحاد أدلة MCP سياسة ثقة المزود قبل أن تصل النتائج إلى تقييم مستوى التحكم:
TrustPolicy::Auditيقبل النتائج غير الموقعة.TrustPolicy::RequireSignaturerequiresEvidenceSignatureand validatesTrustPolicy::RequireSignatureيتطلبEvidenceSignatureويقوم بالتحقق من توقيعات ed25519 باستخدام المفاتيح العامة المكونة.
تقييم السياسة:
- يتم رفض التوقيعات المفقودة، أو المخططات غير المدعومة، أو المفاتيح غير المصرح بها.
- إذا كان تجزئة الدليل مفقودة، يتم حسابها من الحمولة القياسية.
- إذا كان هاش الدليل موجودًا، يجب أن يتطابق مع هاش الحمولة القياسية.
F:crates/decision-gate-mcp/src/evidence.rs L122-L210 F:crates/decision-gate-mcp/src/evidence.rs L628-L701
سياسة الكشف عن الأدلة
يتم تطبيق الكشف عن الأدلة في وقت evidence_query:
evidence.allow_raw_valuesيتحكم في الكشف عن القيم الخام العالمية.evidence.require_provider_opt_inيتطلب أيضًا موافقة المزود.- يختار مقدمو الخدمة الانضمام عبر
ProviderConfig.allow_raw.
إذا لم تكن القيم الخام مسموح بها، فإن استجابة الأداة تحجب value و content_type، ولكن تحتفظ بالهاشات والمرتكزات. F:crates/decision-gate-config/src/config.rs L1226-L1234 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334 F:crates/decision-gate-mcp/src/evidence.rs L138-L196
تكوين سياسة الربط
تُعبر تكوين سياسة المراسي في تكوين MCP عن طريق anchors.providers[{provider_id, anchor_type, required_fields}]. يتم التحقق من صحة التكوين وتحويله إلى EvidenceAnchorPolicy المستخدمة من قبل مستوى التحكم ومدقق حزمة التشغيل. يجب أن تكون معرفات المزود فريدة ومقصوصة لمنع فرض المراسي الغامضة. F:crates/decision-gate-config/src/config.rs L1378-L1466
تحقق من صحة النقاط المرجعية في مستوى التحكم
عندما يتم تكوين متطلب ربط لمزود:
- يجب أن تتضمن نتائج الأدلة
evidence_anchor. anchor_typeيجب أن يتطابق مع المتطلبات.anchor_valueيجب أن يكون كائن JSON قياسي يحتوي على الحقول السلمية المطلوبة.- Gate evaluation evidence records are stored in canonical condition order to يتم تخزين سجلات أدلة تقييم البوابة في حالة معيارية للحفاظ على تحديد نتائج التشغيل عبر التنفيذات.
بالنسبة لمزود json المدمج، تستخدم المراسي file_path_rooted مع الحقول المطلوبة root_id و path. يتم تطبيع قيمة path إلى مسار نسبي بأسلوب POSIX تحت الجذر المكون للحفاظ على استقرار تجزئة runpack عبر المنصات.
بالنسبة لمزود rest المدمج، تستخدم المراسي rest_request مع قيم المراسي JSON القياسية. تشمل فحوصات json_path سياق الطلب بالإضافة إلى تجزئة جسم الاستجابة في بيانات المراسي، بينما تشمل فحوصات header سياق الطلب/الفحص بدون تجزئة الجسم. في كلا الفحصين، تظل evidence_hash مشتقة من قيمة الدليل المعادة (أو يتم حذفها حتى يقوم مستوى التحكم بحسابها)، وليس من جسم الاستجابة الخام.
بالنسبة لمزودي الخدمة المطبوعين (type = "typed")، فإن قيم الربط مدفوعة بالملف الشخصي وتصدر نوع الربط المطبوع المكون (افتراضيًا typed_request) مع بيانات وصفية JSON معيارية تشمل هوية المزود/التحقق/العملية، عنوان URL الخاص بالطلب، الحالة، وملخص الملف الشخصي في وقت التشغيل. تظل مزودي الخدمة المطبوعين في مسار الثقة المعتمد وتخضع لنفس مسار التحقق من سياسة الربط في وقت التشغيل الأساسي والتحقق من الحزمة. يتم تطهير ربط الطلب المطبوع قبل التنفيذ الخارجي (رفض رأس مملوك/محجوز وبديل المسار المشفر بنسبة)، مما يمنع غموض شكل الطلب من تلويث بيانات الربط أو مقارنات النزاهة في المراحل التالية.
تؤدي المراسي غير الصالحة إلى خطأ مزود anchor_invalid ويتم تحويل نتيجة الدليل إلى نتيجة موثوقة فارغة للتقييم. F:crates/decision-gate-core/src/runtime/engine.rs L730-L755 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018
تحقق من تثبيت Runpack
تحقق من إعادة تشغيل حزمة التحقق من سياسة المراسي في وضع عدم الاتصال:
- يتم تحميل سجلات تقييم السيناريو والمنافذ من آثار التشغيل.
- يتم اشتقاق تخطيط الشرط إلى المزود من المواصفات.
- يتم التحقق من أركان الأدلة في سجلات تقييم البوابة مقابل السياسة.
يتم جمع الأخطاء والإبلاغ عنها في تقرير التحقق. F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-core/src/runtime/runpack.rs L579-L612
أدلة مؤكدة (التحقق المسبق)
تستخدم Precheck أدلة مؤكدة دون الاتصال بالمزودين:
- يتم تغليف قيم الحمولة كـ
EvidenceResultمع حارةAsserted. - Control plane applies trust requirements per condition/gate, which can force
تطبق طبقة التحكم متطلبات الثقة حسب الشرط/البوابة، مما يمكن أن يجبر الأدلة المؤكدة على أن تكون
غير معروفةاعتمادًا على التكوين.
F:crates/decision-gate-mcp/src/tools/router.rs L2663-L2707 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618
مرجع متقاطع لكل ملف
| المنطقة | الملف | الملاحظات |
|---|---|---|
| نموذج الأدلة + مسارات الثقة | crates/decision-gate-core/src/core/evidence.rs | أنواع معيارية لمسارات الثقة، المراسي، السياسات. |
| تنفيذ الثقة + التحقق من المراسي | crates/decision-gate-core/src/runtime/engine.rs | يطبق متطلبات الثقة ويحقق في المراسي. |
| التحقق من مراسي التشغيل | crates/decision-gate-core/src/runtime/runpack.rs | تحقق غير متصل ضد سياسة المراسي. |
| سياسة توقيع المزود | crates/decision-gate-mcp/src/evidence.rs | تحليل سياسة الثقة + تنفيذ التوقيع. |
| مراسي مزود محددة النوع | crates/decision-gate-providers/src/typed.rs | إصدار مراسي تشغيل محددة النوع وربط ملخص الملف الشخصي. |
| سياسة الكشف عن الأدلة | crates/decision-gate-mcp/src/tools/router.rs | حذف الأدلة الخام لاستعلام الأدلة. |
| واجهة التكوين | crates/decision-gate-config/src/config.rs | تكوين evidence.* و anchors.*. |