AI Security

هویت ماشین: ایمن‌سازی احراز هویت عامل-به-عامل در سیستم‌های هوش مصنوعی چندعاملی

با تکامل هوش مصنوعی از مدل‌های ایزوله به اکوسیستم‌های پیچیده و هماهنگ‌شده، محیط امنیتی به طور بنیادین تغییر کرده است. در معماری‌های سنتی تک‌تکه، ما مرز اپلیکیشن را ایمن می‌کردیم. با این حال، در سیستم‌های چندعاملی (MAS) مدرن، عامل‌ها به صورت پویا ارتباط برقرار می‌کنند و اغلب در مرزهای شبکه یا درون میکروسرویس‌های موقتی عمل می‌کنند. این تغییر نیازمند گذار از احراز هویت متمرکز بر انسان (نام کاربری/رمز عبور) به مدیریت هویت متمرکز بر ماشین است. این پست بررسی می‌کند که چگونه می‌توان احراز هویت قوی و از نظر رمزنگاری معتبر را برای ارتباط عامل-به-عامل پیاده‌سازی کرد.

گذار به اعتماد صفر برای ماشین‌ها

در یک محیط چندعاملی، یک هماهنگ‌کننده ممکن است وظایفی را به زیرعامل‌های تخصصی واگذار کند. یک عامل مسئول بازیابی داده‌ها، عامل دیگر مسئول منطق و عامل سوم مسئول اجرا است. اگر این عامل‌ها بدون احراز هویت دقیق از طریق شبکه ارتباط برقرار کنند، ریسک‌های قابل توجهی ایجاد می‌شود: عامل‌های جعلی، حملات مرد میانی و سرقت داده‌ها. اصل اعتماد صفر به همان اندازه که برای انسان‌ها صدق می‌کند، برای ماشین‌ها نیز اعمال می‌شود: هرگز اعتماد نکنید، همیشه تأیید کنید. هر درخواست بین عامل‌ها باید بر اساس هویت رمزنگاری فرستنده احراز هویت و مجوزدهی شود.

برخلاف کاربران انسانی، ماشین‌ها رمز عبور ندارند. در عوض، آن‌ها از گواهینامه‌ها و کلیدهای دیجیتال استفاده می‌کنند. رویکرد استاندارد صنعتی از زیرساخت کلید عمومی (PKI) که امروزه در وب استفاده می‌شود، به ویژه گواهینامه‌های X.509 بهره می‌برد. هر عامل یک گواهینامه هویت منحصر به فرد دریافت می‌کند که توسط یک مرجع صدور گواهینامه (CA) داخلی مورد اعتماد امضا شده است.

پیاده‌سازی Mutual TLS (mTLS)

استاندارد طلایی برای ایمن‌سازی ارتباط ماشین-به-ماشین، Mutual TLS (mTLS) است. برخلاف TLS استاندارد که در آن فقط سرور هویت خود را به کلاینت اثبات می‌کند، mTLS از هر دو طرف می‌خواهد که گواهینامه‌های معتبر ارائه دهند. این اطمینان حاصل می‌کند که عاملی که با او صحبت می‌کنید همان کسی است که ادعا می‌کند و شما نیز شرکت‌کننده مورد اعتمادی در سیستم هستید.

در زیر یک پیاده‌سازی عملی با استفاده از پایتون و کتابخانه requests آورده شده است تا نشان دهد چگونه یک عامل می‌تواند گواهینامه کلاینت خود را ارائه دهد و گواهینامه سرور را در طول دست‌دادن (Handshake) تأیید کند.

import requests
import os

# Configuration for Agent A (The Client)
AGENT_CERT_FILE = "agent_a_cert.pem"
AGENT_KEY_FILE = "agent_a_key.pem"
TRUSTED_CA_FILE = "root_ca.pem"

def secure_agent_communication(target_url, payload):
    """
    Sends a request to another agent using Mutual TLS.
    """
    try:
        response = requests.post(
            target_url,
            json=payload,
            # Agent A presents its identity
            cert=(AGENT_CERT_FILE, AGENT_KEY_FILE),
            # Agent A verifies Agent B's identity against the Root CA
            verify=TRUSTED_CA_FILE
        )
        
        # Check for standard HTTP errors
        response.raise_for_status()
        
        print(f"Communication successful. Response: {response.json()}")
        return response.json()
        
    except requests.exceptions.RequestException as e:
        print(f"Authentication or Network error: {e}")
        # In a real scenario, you might inspect the error to determine
        # if it was a certificate rejection (403/400) or a network issue
        raise

# Example usage
payload = {"task": "summarize", "document_id": "doc_123"}
secure_agent_communication("https://agent-b.internal:8443/api/process", payload)

مدیریت کلید و چرخه عمر

پیاده‌سازی mTLS تنها نبرد نیمی از راه است؛ مدیریت چرخه عمر این هویت‌ها بخش دیگر است. عامل‌ها اغلب موقتی هستند—برای یک وظیفه خاص ایجاد شده و مدت کوتاهی پس از آن منقضی می‌شوند. هاردکد کردن گواهینامه‌ها یک الگوی امنیتی نامناسب است. در عوض، با یک مش خدمات (مانند Istio یا Linkerd) یا یک ارائه‌دهنده هویت ماشین تخصصی (مانند Spiffe/Spire) یکپارچه شوید. این ابزارها می‌توانند به طور خودکار گواهینامه‌ها را برای عامل‌ها در زمان واقعی تأمین، چرخش و لغو کنند. وقتی یک عامل مورد حمله قرار می‌گیرد، گواهینامه آن می‌تواند بلافاصله از طریق فهرست لغو گواهینامه (CRL) یا OCSP stapling لغو شود تا دسترسی غیرمجاز بیشتری جلوگیری گردد.

نتیجه‌گیری

ایمن‌سازی سیستم‌های هوش مصنوعی چندعاملی تنها درباره محافظت از وزن‌های مدل نیست؛ بلکه درباره محافظت از گفتگو بین خود عامل‌هاست. با پذیرش هویت‌های ماشین و پیاده‌سازی Mutual TLS، توسعه‌دهندگان می‌توانند اطمینان حاصل کنند که هر تعامل درون یک اکوسیستم هوش مصنوعی احراز هویت، رمزنگاری و قابل ردیابی است. با حرکت به سمت هوش مصنوعی خودمختارتر، مدیریت دقیق هویت ماشین به یک جزء حیاتی در هر معماری امنیتی جدی هوش مصنوعی تبدیل خواهد شد.

Share: