احراز هویت پروتکل A2A: چرا مشخصات فنی ناقص است و حفرهها کجا هستند؟
پروتکل A2A (Agent2Agent) در حال تبدیل شدن به استاندارد ارتباطات عاملهای هوش مصنوعی (AI agent) است. گوگل آن را در سال ۲۰۲۵ معرفی کرد و اکنون بنیاد لینوکس (Linux Foundation) آن را مدیریت میکند.
وقتی به بخش احراز هویت در مشخصات فنی نگاه کردم، تقریباً هیچ چیزی پیدا نکردم. این پروتکل مکانیزم احراز هویت جدیدی را تعریف نمیکند؛ بلکه صرفاً به شما میگوید از استانداردهای موجود مانند OAuth2، OpenID Connect یا mTLS استفاده کنید.
این کمحجم بودن عمدی است. A2A چارچوب را تعریف میکند اما محتوا را به استانداردهای دیگر واگذار میکند. اگر مراقب نباشید، این موضوع باعث ایجاد حفرههای امنیتی میشود.
A2A چگونه کار میکند A2A پروتکلی است که به یک عامل اجازه میدهد وظیفهای را به عامل دیگری بسپارد. این پروتکل از JSON-RPC روی HTTP استفاده میکند.
• عامل کلاینت (Client Agent): عاملی که درخواست را ارسال میکند. • عامل از راه دور (Remote Agent): عاملی که وظیفه را دریافت میکند. • کارت عامل (Agent Card): یک فایل JSON که در آن عامل از راه دور، قابلیتها و الزامات احراز هویت خود را فهرست میکند.
کارت عامل مهمترین بخش است. یک کلاینت پیش از ارسال درخواست، ابتدا این کارت را میخواند تا از نحوه احراز هویت مطلع شود.
حفرههای امنیتی A2A چندین وظیفه حیاتی را بر عهده پیادهساز میگذارد. اگر این موارد را مدیریت نکنید، عاملهای شما در معرض خطر خواهند بود.
- دستکاری کارت (Card Tampering): امضای کارت عامل اختیاری است (MAY). اگر آن را امضا نکنید، یک مهاجم میتواند عامل شما را به یک سرور مخرب هدایت کند.
- حملات بازپخش (Replay Attacks): A2A راهی برای متصل کردن توکنها به یک کلاینت خاص ندارد. اگر کسی یک bearer token را سرقت کند، میتواند خود را به جای عامل شما جا بزند.
- افزایش سطح دسترسی (Privilege Escalation): احراز صلاحیت (Authorization) به زیرساختهای خارجی واگذار شده است. اگر بررسیهای مربوط به هر مهارت (per-skill checks) را اعمال نکنید، یک عامل «فقط خواندنی» ممکن است به دسترسی «نوشتن» دست یابد.
- زنجیرهسازی هویت (Identity Chaining): A2A مدیریت نمیکند که هویت کاربر چگونه در زنجیرهای از عاملها منتقل میشود.
چگونه آن را به صورت ایمن بسازیم تنها به مشخصات فنی تکیه نکنید. شما باید قوانین اختیاری را به قوانین اجباری تبدیل کنید.
• همیشه کارتهای عامل خود را امضا کنید. از JWS و JCS استفاده کنید. • برای مسیرهای عامل-به-عامل از mTLS استفاده کنید. این کار باعث میشود سرقت توکن به تنهایی برای به خطر انداختن سیستم شما کافی نباشد. • احراز صلاحیت مربوط به هر مهارت (per-skill authorization) را در API Gateway خود اعمال کنید. • از توکنهای محدودشده به فرستنده (مانند DPoP) برای جلوگیری از حملات بازپخش استفاده کنید.
A2A مانند لولهکشی است. امنیت از آبی که در آن جریان دارد تامین میشود. برای پر کردن شکافها، از استانداردهای اثباتشده مانند SPIFFE یا Identity Chaining استفاده کنید.
جامعه یادگیری اختیاری: https://t.me/GyaanSetuAi