الانتقال إلى المحتوى الرئيسي

طلبات الوصول من الوكلاء تحتاج إلى ترويسة مصدر موثّق، لا إلى سلسلة User-Agent

لا تستطيع سلاسل User-Agent إثبات من يتحمل المسؤولية. تحتاج حركة الوكلاء إلى بيانات وصفية موقّعة للمصدر تحمل هوية المشغّل والغرض المُعلن ونطاقًا قابلًا للإلغاء.

Detailed view of an audio mixing console with colorful lights in a professional studio setting.

ما تراه الخدمة المستقبِلة فعليًا

يصل الطلب من وكيل مستقل كطلب HTTP عادي. ترى الخدمة المستقبِلة عنوان المصدر، وسلسلة User-Agent، ومسارًا، وطريقة، وطابعًا زمنيًا. وإذا كانت هي من ينهي TLS بنفسها، فإنها ترى مصافحة ومجموعة من المعاملات المتفاوض عليها. لا يؤكد أي من هذه الحقول من يتحمل المسؤولية عن الطلب.

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

وصفت تقارير حتى عام 2026 هذا النمط من الفشل تحديدًا: أساطيل من الوكلاء ترسل كميات كبيرة من الطلبات إلى نقاط نهاية عامة بحثًا عن حقائق غامضة، مع عجز الجهة المستقبِلة عن التمييز بين البحث وإساءة التهيئة والاختراق إلا بعد وقوع الأمر. انظر التغطية حول أسراب الوكلاء التي تضرب قواعد بيانات على الإنترنت (https://techcrunch.com/2026/09/25/for-months-openais-agent-swarms-have-been-attacking-online-databases-to-find-obscure-facts/) والتقرير حول اختراق الوكلاء لعشرات المؤسسات (https://www.ft.com/content/agents-hacked-dozens-of-organisations).

حدث الكشف في تلك الحالات في السجلات، بأثر رجعي. والسجلات أسوأ مكان لإثبات النية، لأنه بحلول الوقت الذي يقرأ فيه مشغّل السجلات تكون الطلبات قد قُدّمت بالفعل. السؤال الذي تريد الخدمة المستقبِلة إجابة عليه — من هذا، وماذا يحاول أن يفعل، وكيف أجعله يتوقف — لا يمكن الإجابة عليه من الطلب نفسه.

لماذا لا تستطيع سلاسل User-Agent حمل المسؤولية

حقل User-Agent مُعلن ذاتيًا وغير موثّق ويمكن تزويره بسهولة. يمكن لأي عميل أن يقدّم أي سلسلة. وهذا يجعله تسمية، لا ادّعاءً. التسمية تخبرك بما اختار العميل أن يسمّي به نفسه؛ أما الادّعاء فيخبرك بما يكون شخص ما مستعدًا لأن يُحاسَب عليه.

ثلاث خصائص محددة مفقودة، وهي بالضبط الخصائص التي يحتاجها المستجيب للحوادث أولًا.

  • لا مسار إلغاء. بمجرد معرفة سلسلة، يمكن لأي عميل تقديمها. لا يوجد سجل يُسحب منه، ولا مفتاح يُدوَّر، ولا طريقة للقول هذا المعرّف لم يعد مصرّحًا به وأن يصبح لهذا القول أثر.
  • لا نطاق. لا تحدد سلسلة User-Agent أي المضيفين، وأي المسارات، وأي سقف للمعدل، أو أي نافذة زمنية يعتقد العميل أنه مسموح له بلمسها. ولا تستطيع خدمة تقييم طلب مقابل حدّ معلن لم يُعلن قط.
  • لا جهة اتصال للمشغّل. لا يوجد حقل لشخص أو فريق يمكن الوصول إليه. وعندما تريد خدمة أن تسأل هل هذا أنتم، وهل يمكنكم التوقف، تكون القناة الوحيدة تذكرة دعم أو عنوان إساءة استخدام، وهما بطيئان وغالبًا غير مراقَبين.

Close-up of a woman adjusting her cutting-edge bionic prosthetic arm, showcasing innovation.

يجدر الدقة بشأن الفشل. المشكلة ليست أن الوكلاء يكذبون في سلاسل User-Agent الخاصة بهم. المشكلة أن الحقل لم يُصمم قط لحمل تأكيد قابل للتحقق، لذا حتى الوكيل الصادق ينتج طلبًا لا تستطيع الخدمة المستقبِلة التصرف بناءً عليه.

غلاف مصدر لحركة الوكلاء

ما تحتاجه الطلبات الصادرة من الوكلاء هو غلاف مصدر موقّع: مجموعة صغيرة قابلة للتحقق من التأكيدات المرتبطة بالطلب، ومرتبطة ببيانات اعتماد يستطيع المشغّل إلغاءها. ينبغي أن يحمل الغلاف ثلاثة أشياء.

هوية المشغّل، مرتبطة بمفتاح

يُوقَّع الطلب ببيانات اعتماد قصيرة العمر صادرة لهوية مشغّل. التوقيع هو ما يحوّل التسمية إلى ادّعاء. والخدمة المستقبِلة التي تستطيع التحقق من التوقيع تعرف أن الطلب جاء من طرف يحمل المفتاح الخاص المقابل، وأن هذا الطرف قبل الشروط المشفّرة في بيانات الاعتماد وقت الإصدار.

غرض مُعلن وواصف نطاق

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

{
  "iss": "operator:example-swarm-01",
  "sub": "agent:research-fetch",
  "purpose": "retrieve-public-spec-documents",
  "scope": {
    "hosts": ["docs.example.org"],
    "paths": ["/spec/", "/changelog/"],
    "rate": { "requests": 60, "per_seconds": 60 },
    "expires": "2026-10-01T12:00:00Z"
  },
  "contact": "htt

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

![Close-up view of a textile production line showcasing white thread spools in an Indian factory.](/media/automated-assembly-line-close-up-ae5d2bf169-09df11.jpg)

### نقطة نهاية تحقق معروفة

يشير حقل `contact` إلى نقطة نهاية معروفة ينشرها المشغّل. ويمكن للخدمة المستقبِلة أن تجلبها للحصول على المفتاح العام للمشغّل، والتأكد من أن بيانات الاعتماد ما زالت صالحة، والعثور على جهة اتصال يمكن الوصول إليها للمشغّل. هذا هو الجزء الذي يزيل تذكرة الدعم من المسار الحرج. فالمستجيب للحوادث الذي يستطيع تحويل هوية مشغّل إلى جهة اتصال حيّة بطلب واحد يواجه مشكلة مختلفة عن الذي عليه أن يخمّن عنوان إساءة استخدام.

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

## المقايضات ومسار التبنّي

التوقيع ليس مجانيًا. فهو يضيف عملية تشفيرية إلى كل طلب صادر، ويضيف إدارة مفاتيح: الإصدار، والتدوير، والتخزين، ومسار إلغاء سريع بما يكفي ليكون ذا معنى. ووضع عملية التوقيع داخل كل tool call هو الموضع الخاطئ — فهو ينشر المادة المفتاحية عبر كل مكوّن يمكنه إصدار طلب، ويجعل التدوير مشكلة تنسيق على مستوى الأسطول. الموضع الصحيح هو بوابة الخروج (egress gateway). تحتفظ البوابة ببيانات الاعتماد، وتوقّع نيابة عن الوكلاء الذين خلفها، ويمكن إعادة تهيئتها في مكان واحد عندما يتغير النطاق أو تُسحب بيانات اعتماد. ثم يصدر الوكلاء طلبات عادية إلى البوابة، وتُرفق البوابة الغلاف.

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

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

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

لا تحتاج الخدمة المستقبِلة إلى معرفة ما يفكر فيه الوكيل. إنها تحتاج إلى بيان قابل للتحقق عن من هو المسؤول، وما يعتقد الوكيل أنه مسموح له بفعله، وكيفية سحب هذا الإذن. هذا غلاف موقّع، لا سلسلة نصية.
مشاركةXLinkedInرابط دائم6 دقيقة قراءة

قراءات ذات صلة

الأسئلة التي يجيب عنها هذا

Why is a User-Agent string insufficient for identifying autonomous agents?

It is self-declared and unauthenticated, so any client can present any value. It carries no revocation path, no scope, no expiry and no operator contact, which means a receiving service cannot verify the claim or act on it during an incident.

What should a provenance envelope for agent traffic contain?

A signature bound to an operator identity, a declared purpose, a scope descriptor naming hosts, path prefixes, a rate ceiling and an expiry, and a well-known endpoint where a receiving service can verify the signature and reach the operator.

Where should signing happen in an agent system?

At the egress gateway rather than in each tool call. Centralising it avoids spreading key material across every component that can make a request and makes rotation a single-place change instead of a fleet-wide coordination problem.

How is a provenance envelope revoked?

It is treated as a session credential: short expiry, frequent reissuance, and a revocation endpoint the receiving service can consult cheaply. If revocation is slower than the incident, the envelope does not provide real accountability.