تصور کنید یک عامل (Agent) — شبیه دستیاری که کارهای اداری شما را پیش میبرد — در حین پر کردن یک فرم تنظیمات، ناگهان متوقف میشود و از شما میخواهد «رمز عبور خود را اینجا بچسبانید» یا یک کلید API را در کادر چت وارد کنید. چون این گفتگو خصوصی به نظر میرسد، احتمالاً فکر میکنید خطری ندارد؛ اما تیم Octuo در شرکت Tutuo, Inc هشدار میدهد که برخورد با رابط چت مانند یک گاوصندوق امن، یک شکست امنیتی بحرانی است. به نقل از این تیم، یک چتباکس هرگز گاوصندوق نیست و تنها یک رمز عبورِ وارد شده در آن میتواند کل هویت دیجیتال شما را برای همیشه به خطر بیندازد.
چرا محیط چت جای مناسبی برای رمزها نیست؟
بسیاری از کاربران تصور میکنند گفتگوهایشان خصوصی است، اما هر متنی که در یک پرامپت وارد شود، بخشی از پنجره زمینه (Context Window) — مثل میز کاری که جا برای چند ورق دارد، نه برای کل کتابخانه — مدل میشود. طبق گزارش این تیم، بسته به ابزار مورد استفاده، این دادهها اغلب در لاگها ثبت، در تاریخچه ذخیره، به مدلهای میزبانیشده ارسال یا در حافظه بلندمدت مدل خلاصه میشوند تا گفتگوهای بعدی بتوانند آنها را بخوانند.
به دلیل توزیع این نسخهها در مدلهای میزبانیشده و پایگاههای داده داخلی، شما نمیتوانید پس از ارسال، آنها را بهطور قابلاعتمادی حذف کنید. این خطر حتی به فایلهای دستورالعمل مانند CLAUDE.md یا AGENTS.md نیز سرایت میکند. در حالی که این فایلها برای تعیین قراردادهای پروژه مفید هستند، اما در هر بار اجرا توسط مدل خوانده میشوند. این ویژگی آنها را به «بدترین مکان برای قرار دادن یک توکن» تبدیل میکند. علاوه بر این، این فایلها اغلب برای هر کسی که به مخزن (Repository) دسترسی دارد، قابل مشاهده هستند.
هدف ساده است: عامل باید بتواند از اعتبارنامه استفاده کند، اما مقدار خام آن هرگز نباید وارد متنی شود که مدل میخواند یا مینویسد.
معماری امن برای عاملهای هوش مصنوعی
برای جلوگیری از نشت دادهها، تیم Octuo الگویی را پیشنهاد میکند که در آن عامل از یک ذخیرهساز اعتبارنامه یا خزانه (Vault) استفاده کند که کاملاً خارج از محیط گفتگو قرار دارد. این رویکرد با مفاهیم پیشرفتهتری مانند تفکیک حوزههای اعتماد برای توقف نشت دادهها از عاملهای هوش مصنوعی همسو است تا دسترسیها به شدت محدود شوند. در این گردشکار:
- مدل درخواستی را ارسال میکند، مثلاً: «به پورتال صورتحساب وارد شو» یا «با توکن استقرار، API را فراخوانی کن».
- یک ابزار، رمز را از Keychain سیستمعامل یا یک خزانه اختصاصی بازیابی میکند.
- ابزار مستقیماً از رمز استفاده میکند؛ یعنی مدل فقط یک ارجاع یا نتیجه را میبیند و هرگز به مقدار خام رمز دسترسی ندارد.
استفاده از Keychain سیستمعامل سادهترین نسخه از این روش است. یک خزانه اختصاصی، رمزگذاری بیشتر، قوانین دسترسی سختگیرانهتر و تاریخچه استفاده (Usage History) را اضافه میکند. با این حال، باید یک نکته حیاتی را چک کنید: وقتی عامل از رمز استفاده میکند، آیا مقدار آن در متن گفتگو (Transcript) ظاهر میشود؟ اگر بله، آن خزانه صرفاً یک «تزیین» است و امنیت واقعی ایجاد نمیکند.
کاهش شعاع تخریب
علاوه بر استفاده از خزانه، این راهنما بر محدود کردن قدرت توکنهای اعطایی تأکید دارد. بهجای رمز عبور اصلی (Master Password)، کاربران باید توکنهای محدود (Scoped Tokens) را پیادهسازی کنند. توکنی بسازید که فقط برای یک کار خاص باشد: اگر خواندن کافی است، دسترسی را روی Read-only قرار دهید، یا آن را به یک مخزن یا یک پروژه خاص محدود کنید. هرگز از کلیدی که میتواند هر کاری انجام دهد، مجدداً استفاده نکنید.
تعیین تاریخ انقضای کوتاه در لحظه ایجاد توکن — و نه بعد از آن — تضمین میکند که یک نشت احتمالی، بهجای یک فاجعه، به یک حادثه کوچک تبدیل شود. دسترسیهای تفویضشده از طریق OAuth یا رمزهای مخصوص اپلیکیشن، بسیار بهتر از اعتبارنامههای اصلی هستند چون میتوان آنها را فوراً ابطال کرد بدون اینکه نیاز به تغییر رمز کلی باشد. یک رمز عبور اصلی هرگز نباید چیزی باشد که یک عامل در اختیار دارد.
بسیار حیاتی است که اقدامات حساس در دست انسان باقی بماند. تأیید دومرحلهای (2FA) همان جایی است که انسان قصد خود را تأیید میکند. اجازه دهید عامل شما را تا صفحه پرداخت یا تنظیمات ببرد، اما تأیید کد، خرید یا انتقال وجه باید توسط خود شما انجام شود. پرداختها و تنظیمات امنیتی را تحت کنترل انسان نگه دارید.
نظارت و بازیابی پس از نشت
هر اعتبارنامهای که یک عامل استفاده میکند باید ردی از خود به جای بگذارد: کدام رمز، در چه زمانی و برای چه وظیفهای استفاده شد. بسیاری از سرویسها صفحات فعالیت API و ورود را ارائه میدهند. توصیه میشود یک یادآور منظم برای بررسی هر دو لاگ تنظیم کنید. به دنبال استفادههایی بگردید که نمیشناسید، فعالیتهایی در زمانهایی که کار نمیکردید، یا فراخوانیهایی از سرویسهایی که خودتان درخواست نکردهاید.
اگر رمزی بهطور تصادفی در چت، لاگ یا یک فایل ثبتشده (Committed File) قرار گرفت، فرض کنید که افشا شده است. حذف پیام خوب است، اما جایگزین «چرخش رمز» (Rotation) نمیشود. تنها پاسخ امن، تغییر رمز در منبع اصلی و ابطال فوری مقدار قدیمی است، پیش از آنکه نسخههای موجود را پاک کنید.
چکلیست ورود از طریق مرورگر
ورود از طریق مرورگر جایی است که عاملها بیشترین کاربرد را در کارهای وب دارند. قبل از دادن دسترسی، این موارد را بررسی کنید:
- اعتبارنامه از یک خزانه میآید، نه از چت یا فایلی که مدل میخواند.
- حساب کاربری کمترین دسترسی مورد نیاز را دارد؛ اگر سایت اجازه میدهد، از یک حساب مجزا و محدود استفاده کنید.
- تأیید دومرحلهای (2FA) فعال است و کد به شما میرسد، نه به عامل.
- پرداختها، حذف حساب و تنظیمات امنیتی نیاز به تأیید دستی شما دارند.
- میتوانید ببینید عامل در چه زمانی و به کدام سایتها وارد شده است.
- میدانید چگونه نشست (Session) یا توکن را در یک مرحله ابطال کنید.
- نشستهای ذخیرهشده در مرورگر پس از اتمام کار پاک یا منقضی میشوند.
این تغییر عادت، عامل را از یک موجود مورد اعتماد با دسترسی کامل، به ابزاری محدود تبدیل میکند که تحت نظارت شدید انسان عمل میکند. با حذف مقدار خام از متنی که مدل میخواند، شما بردار اصلی سرقت اعتبارنامه در گردشکارهای عاملمحور را از بین میبرید. برای مقابله با تهدیدات پیچیدهتر، میتوان از معماریهای صفر-اعتماد برای جلوگیری از سرقت وزنهای مدلها بهره برد تا امنیت در لایههای عمیقتر مدل نیز تامین شود.
گام بعدی شما
- تمام رمزهای عبوری که در تاریخچه چتهای AI خود دارید را شناسایی و در منبع اصلی تغییر دهید.
- برای هر ابزار AI، یک توکن API مجزا با دسترسی محدود (Read-only) بسازید.
- بررسی کنید آیا ابزارهای عاملمحور شما، رمزها را در لاگهای خروجی نمایش میدهند یا خیر.
اما داستان سختافزاری مدیریت رمزها در لبههای شبکه حتی پیچیدهتر است — به تحلیل ما درباره رایانش لبه مراجعه کنید.




گفتگو