طريقة العمل

من سجل التدقيق إلى أدلة يستطيع أي شخص التحقق منها.

منصة وكلائك تكتب سجل تدقيق أصلا. تقرؤه فيرمانتيا، وتختم كل إجراء في سجل موقّع، متسلسل بالبصمات الرقمية، ومختوم زمنيا، وتسلّمك حزمة يتحقق منها المدقق على جهازه.

قيد التطوير. الوصول المبكر متاح للفرق الخاضعة للتنظيم في الإمارات وقطر.

ترجمة أولية

الخطوة 1

الاستيعاب

ما الذي يدخل
ملف التدقيق الذي تكتبه منصة وكلائك أصلا: Microsoft Agent 365 وPurview أولا، وتتبعها منصات أخرى.
ما الذي يخرج
سجل واحد لكل إجراء من إجراءات الوكيل، وسجل لقرار السياسة لكل إجراء، مسموحا كان أو مرفوضا، وفق القواعد التي تضعها.
ما الذي يصبح صحيحا بعد ذلك
بصمة كل سجل هي SHA-256 لبايتاته بالضبط، ويُحفظ كل سجل بالإضافة فقط، مرتبطا بالسجل الذي قبله. واستيعاب الملف نفسه مرتين لا يحفظ شيئا جديدا.
مثال
$ firmantia ingest --source agent365 --file audit-export.csvingest agent365: 212 records stored, 0 already stored, 2 events skipped

ما الذي يحتويه السجل

  • معرّف الوكيل
  • نوع الإجراء
  • الأداة أو النموذج المستدعى
  • بصمة المدخل وبصمة المخرج
  • منطقة التشغيل، حين تبلغ عنها المنصة
  • الوقت
  • قرار السياسة (مسموح أو مرفوض)
  • المرجع الخاص بالمنصة

ما الذي لا يحتويه أبدا

  • نص الأوامر
  • نص الردود
  • بيانات العملاء
  • البيانات الشخصية

البصمات فقط.

مثال
{
  "agentId": "loan-intake",
  "runId": "run-7f2c",
  "kind": "tool_call",
  "name": "crm.updateApplication",
  "inputHash": "9b1e...c04a",
  "outputHash": "52d7...e911",
  "inferenceRegion": null,
  "at": "2030-01-15T10:41:52Z",
  "policyDecision": "c3a0...7d12",
  "source": "agent365",
  "rawRef": "audit-record-id"
}
الخطوة 2

الختم

ما الذي يدخل
السجلات المحفوظة منذ آخر دفعة في السلسلة.
ما الذي يخرج
دفعة في السلسلة: واحدة لكل مجموعة، تُغلق بعد عدد معين من السجلات أو كل بضع دقائق.
ما الذي يصبح صحيحا بعد ذلك
تعديل أي سجل أو حذفه يغيّر بصمة الدفعة ويكسر كل رابط بعدها. ويبيّن التوقيع أي مفتاح مسجَّل ختم الدفعة؛ ويبيّن رمز الختم الزمني أن الدفعة كانت موجودة بحلول ذلك الوقت.

ما الذي تحتويه الدفعة

  • قائمة ببصمات السجلات
  • بصمة الدفعة السابقة
  • رقم تسلسلي
  • سجل المفاتيح الذي وُقّعت بموجبه
  • معرّف مفتاح الموقّع، والتوقيع
  • رمز الختم الزمني
The chain
  • Batch 14
    212 records, signed by SHA256:q3Fv...e8
    Stamped 10:40:03
  • Batch 13
    198 records, signed by SHA256:q3Fv...e8
    Stamped 10:20:01
  • Batch 12
    240 records, signed by SHA256:q3Fv...e8
    Stamped 10:00:02
Verified offline: every record, link, signature and time stamp.

المفاتيح

  • ECDSA P-256.
  • يحتفظ بها العميل.
  • التدوير وفق فترة صلاحية: تبقى الدفعات القديمة قابلة للتحقق بالمفتاح الذي وقّعها.

الختم الزمني

  • RFC 3161.
  • توقّع الجهة البصمة والوقت.
  • ينتقل الرمز داخل الحزمة ويُتحقق منه دون اتصال مقابل شهادة الجهة.
مثال
$ firmantia sealseal: entry 2030-01-15 (close 14), 424 records, signed by SHA256:q3Fv...e8  tsa: time stamped at 2030-01-15T10:40:03Z
الخطوة 3

التصدير

ما الذي يدخل
السجلات المحفوظة والسلسلة.
ما الذي يخرج
حزمة أدلة في ملف واحد: كل سجل بايتا ببايت، والسلسلة مع توقيعاتها ورموز الختم الزمني، وكل نسخة من سجل المفاتيح تستند إليها السلسلة.
ما الذي يصبح صحيحا بعد ذلك
تحمل الحزمة كل ما يلزم للتحقق من السجل. ولا تحمل الثقة: فأداة التحقق تأتي بجهاتها الموثوقة الخاصة، فلا يستطيع منتج الحزمة أن يختار ما يثق به المدقق.
مثال
$ firmantia export --out pack.jsonexport: 1,284 records and 14 chain entries to pack.json
الخطوة 4

التحقق

ما الذي يدخل
حزمة الأدلة، وأداة التحقق: ملف HTML واحد يُفتح من الجهاز.
ما الذي يخرج
النتيجة VERIFIED، أو FAILED مع السبب الدقيق والسجل المعني بالضبط.
ما الذي يصبح صحيحا بعد ذلك
لم يتغير شيء في السجل منذ أن خُتم وخُتم زمنيا، وكل دفعة وقّعها مفتاح مسجَّل لها، وكل موافقة بشرية وقّعها صاحبها بمفتاحه الخاص. دون إنترنت، ودون حساب، ودون أي تواصل معنا.
مثال
$ firmantia verify pack.jsonVERIFIEDPASS  formatPASS  records-intact: 1,284 records hash to their hashes, in one linked sequencePASS  records-sealed: every record is in exactly one chain entryPASS  chain-links: 14 entries recompute and link without a gapPASS  anchors: 14 entries time stamped by a trusted authorityPASS  entry-signatures: 14 signed by a registered key inside its windowPASS  approvals: 46 approvals signed by the approver's own key

الفحوص السبعة، سطر لكل فحص، في صفحة التحقق.

الحالة

ما لم يُبنَ بعد

  • خدمة مستضافة.
  • حفظ المفاتيح في الأجهزة الأمنية (يستخدم العرض التجريبي ملف مفتاح).
  • جهة ختم زمني داخل الدولة (يستخدم العرض التجريبي جهة عامة مستقلة).
  • موصلات لمنصات غير Microsoft Agent 365.

هذه أمور إعداد وتكامل، لا أمور بنية. تظهر الأوامر أعلاه مع مخرجات للتوضيح؛ وأداة firmantia قيد التطوير.

اطّلع عليها أولا على سجل التدقيق الخاص بك.

فرق الوصول المبكر ترى العرض التجريبي الأول قبل أي أحد.