عامل‌های امضاشده کلادفلر: دروازه‌بانی برای وب باز؟

آیا برای گشت‌وگذار در وب، خود را در گوگل یا آمازون ثبت‌نام می‌کنید؟ البته که نه. بنیاد اینترنت بر باز بودن آن استوار است. با این حال، ابتکار جدید کلادفلر با عنوان «عامل‌های امضاشده» (signed agents)، هرچند در قالب یک اقدام امنیتی ارائه شده، گامی در مسیری خطرناک به نظر می‌رسد. این طرح در واقع یک لیست سفید از پیش‌تأیید شده برای وب باز است که در آن از سازندگان خواسته می‌شود برای دریافت مجوز، درخواست دهند. این یک استاندارد اینترنتی نیست؛ بلکه یک چک‌لیست شرکتی است.

مسئله هویت عامل‌ها واقعی است، اما راه‌حل کلادفلر شبیه به یک ایست بازرسی مرزی است که با عامل‌های خارج از لیست مانند متجاوزان رفتار می‌کند. این تأییدیه فروشنده است، نه یک پروتکل باز. یک لیست سفید که توسط یک شرکت واحد مدیریت شود، یک نقطه کنترل و شکست متمرکز ایجاد می‌کند. آینده احراز هویت آنلاین نباید به درخواست مجوز از کلادفلر خلاصه شود. بلکه باید بر اساس زنجیره‌های قابل تأیید نمایندگی و اثبات در سطح درخواست ساخته شود—سیستم‌هایی که باز، قابل حمل و مستقل از هر نهاد شرکتی واحدی باشند.

وب باید باز بماند

اینترنت دقیقاً به این دلیل شکوفا شد که هیچ نهاد واحدی مالک آن نبود. در دهه ۱۹۹۰، تلاش مایکروسافت برای «در آغوش کشیدن و گسترش» وب یک لحظه حیاتی بود. شکست آن تلاشی، پیروزی برای فضای باز بود. از آنجا که هیچ شرکتی کلیدها را در دست نداشت، هر کسی می‌توانست محتوا منتشر کند، در زمینه فناوری نوآوری کند و خدمات جدیدی بسازد. پروتکل‌های باز همیشه از سیاست‌های شرکتی مهم‌تر بوده‌اند.

این فیلم را قبلاً هم دیده‌ایم. استانداردهای باز همواره بر سیستم‌های بسته و انحصاری پیروز می‌شوند. HTML5 و پلتفرم وب باز در نهایت جایگزین پلاگین‌هایی مانند Flash از Adobe و Silverlight از مایکروسافت شدند. درس این ماجرا واضح است: وقتی یک جامعه استانداردها را تعریف می‌کند، نوآوری شکوفا می‌شود. اما وقتی یک فروشنده مجوز صادر می‌کند، پیشرفت متوقف می‌شود.

عامل‌ها اجتناب‌ناپذیرند

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

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

احراز هویت در برابر اعطای دسترسی

درک تفاوت بین دو مفهوم کلیدی ضروری است: احراز هویت (Authentication) تأیید می‌کند که *چه کسی* در حال اقدام است، در حالی که اعطای دسترسی (Authorization) مشخص می‌کند که او مجاز به انجام *چه کاری* است. این دو قابل جایگزینی نیستند. به نظر می‌رسد رویکرد کلادفلر این دو را با هم اشتباه می‌گیرد و پیشنهاد می‌کند که یک «گذرنامه ربات» واحد می‌تواند هر دو مشکل را حل کند. اما اینطور نیست. در دنیای فیزیکی، نشان دادن گذرنامه به شما دسترسی خودکار به حساب بانکی کسی را نمی‌دهد؛ شخص مجاز باید حضور داشته باشد. همین اصل در فضای آنلاین نیز صادق است.

یک امضای رمزنگاری‌شده که می‌گوید «من از طرف کاربر X عمل می‌کنم» اگر صرفاً توکنی باشد که می‌توان آن را به دیگران منتقل کرد، بی‌معناست. این امضا باید به یک زمینه قابل تأیید، مانند یک زیرساخت خاص یا محدوده IP، متصل باشد. بدون این اتصال، «گذرنامه» فقط کلیدی است که هر کسی می‌تواند آن را کپی و استفاده کند و کل مدل امنیتی را تضعیف می‌کند. به همین دلیل است که ایده ساده «گذرنامه ربات» اساساً ناقص است. ما باید هم احراز هویت و هم اعطای دسترسی را برای عصر عامل‌ها بازنگری کنیم.

مدلی جدید برای احراز هویت

این ضرب‌المثل قدیمی هنوز هم صادق است: در اینترنت، هیچ‌کس نمی‌داند شما یک سگ هستید.

کارتون در اینترنت، هیچکس نمی‌داند شما یک سگ هستید

یک امضای واحد و قابل انتقال چیز زیادی را ثابت نمی‌کند. آنچه ما نیاز داریم سیستمی است که بتواند کل زنجیره نمایندگی *و* اصالت هر درخواست خاص را اثبات کند. برای مثال: کاربر X در سرویس Y وظیفه‌ای را به عامل Z محول کرده و او نیز بخشی از آن را به عامل K واگذار کرده است. هنگامی که عامل K درخواستی را ارسال می‌کند، باید علاوه بر زنجیره نمایندگی، امضای خود را نیز برای اثبات هویتش ارائه دهد. بدون هر دو جزء، فرآیند احراز هویت شکست می‌خورد.

این سیستم باید دارای ویژگی‌های زیر باشد:

  • قابل تأیید (Verifiable): ادعاها را می‌توان به طور مستقل بررسی کرد.
  • ترکیب‌پذیر (Composable): در زنجیره‌های پیچیده نمایندگی کار می‌کند.
  • غیرمتمرکز (Decentralized): هیچ دروازه‌بان واحدی قدرت تأیید یا رد شرکت‌کنندگان را ندارد.

رمزنگاری کلید عمومی مسیر روشنی را پیش روی ما قرار می‌دهد. شرکت‌ها در حال حاضر از DNS برای اثبات مالکیت دامنه استفاده می‌کنند؛ به همین ترتیب می‌توانند کلیدهای عمومی را از طریق DNS منتشر کنند. این کار به هر سرویسی اجازه می‌دهد تا یک شخص ثالث را با یک بررسی ساده DNS احراز هویت کند و نیاز به فرم‌های درخواست یا ثبت‌نام در دایرکتوری‌های مرکزی را از بین ببرد. در حالی که سایت‌ها همچنان می‌توانند لیست‌های سیاه یا سفید خود را داشته باشند، حالت پیش‌فرض، باز و بدون نیاز به مجوز خواهد بود.

مدلی جدید برای اعطای دسترسی

به طور سنتی، نرم‌افزارها دامنه عملکردی بسیار محدود و قابل پیش‌بینی داشتند. یک کران جاب هفتگی که گزارشی را ارسال می‌کند، فقط به دسترسی خواندنی به پایگاه داده نیاز دارد. یک اپلیکیشن مالی ممکن است فقط به مجوز برای شروع انتقال وجه در محدوده‌های مشخصی نیاز داشته باشد. دامنه‌های دسترسی OAuth برای این موارد استفاده مشخص به خوبی کار می‌کردند.

اما عامل‌ها متفاوت هستند؛ آن‌ها عمومی‌منظوره هستند. یک عامل واحد ممکن است نیاز به رزرو پرواز، پرداخت هزینه شام و سپس تحلیل تاریخچه هزینه‌های شما داشته باشد. اعطای یک «کلید ادمین» دائمی با دسترسی کامل به آن، یک راه‌حل راحت اما فوق‌العاده خطرناک است. ما باید از این الگو اجتناب کنیم.

راه‌حل، گره زدن دسترسی به وظایف است، نه به خود عامل. اعتبارنامه‌ها باید موقت و مشخص باشند. اگر به عاملم بگویم «هزینه شام را پرداخت کن»، باید توکنی دریافت کند که فقط اجازه آن پرداخت واحد را می‌دهد. اگر سپس از آن بخواhem «تاریخچه هزینه‌هایم را به من نشان بده»، نباید بتواند از توکن قبلی برای انتقال پول استفاده کند. همان عامل، وظایف متفاوت، مجوزهای متفاوت.

ابزارهای رمزنگاری مدرن مانند ماکارون‌ها و بیسکویت‌ها و موتورهای سیاست‌گذاری باز مانند OPA یا AWS Cedar این امکان را فراهم می‌کنند. ما می‌توانیم توکن‌های دقیق، کوتاه‌مدت و قابل تفویض صادر کنیم. تصور کنید کاربری یک توکن ادمین در دست دارد و سپس می‌تواند یک توکن محدودتر برای یک عامل جهت انجام یک وظیفه خاص ایجاد کند. آن عامل نیز می‌تواند یک توکن حتی محدودتر برای یک عامل فرعی ایجاد کند، بدون اینکه نیازی به ارتباط مجدد با سرویس اصلی داشته باشد. این یک بنیان امن و انعطاف‌پذیر برای مدیریت عامل‌ها بدون ایجاد دروازه‌بانان جدید فراهم می‌کند.

پروتکل‌ها، نه دروازه‌بانان

این چالشی است که فراتر از هر شرکت واحدی، چه کلادفلر، چه گوگل یا مایکروسافت، است. آینده وب نمی‌تواند به این بستگی داشته باشد که چه کسی کلیدهای اصلی را کنترل می‌کند. ما به پروتکل‌های باز، تعامل‌پذیر و استاندارد برای احراز هویت، اعطای دسترسی و کسب درآمد نیاز داریم.

پیشنهاد کلادفلر یک زنگ خطر است. این پیشنهاد خطر اجازه دادن به چند شرکت قدرتمند برای دیکته کردن اینکه کدام عامل‌ها «معتبر» تلقی می‌شوند را برجسته می‌کند. این مسیر مستقیماً به یک وب تکه‌تکه شده از باغ‌های محصور منجر می‌شود. برای مبارزه با این روند، من ایده‌های اولیه خود را در مورد زنجیره‌های نمایندگی و دسترسی مبتنی بر وظیفه به صورت متن‌باز منتشر می‌کنم تا هر کسی بتواند آن‌ها را پیاده‌سازی کرده و بر اساس آن‌ها توسعه دهد.

اگر به باز نگه داشتن وب برای عصر آینده عامل‌ها اعتقاد دارید، بیایید برای ساخت پروتکل‌هایی که آینده آن را تعریف خواهند کرد، همکاری کنیم. این آینده باید توسط استانداردهای بازی تعریف شود که به همه قدرت ساخت، اشتراک‌گذاری و نوآوری را می‌دهد.

منبع: news.ycombinator.com

Leave a Comment