چرا کلید مدل هرگز داخل پنل شما نیست
کلیدی که روی صد نصب پخش شده باشد، دیر یا زود لو میرود و هزینهاش را همه میدهند. توضیح معماری دروازهای که آوند برای نگهداشتن کلید در یک نقطه ساخت.
سادهترین راه ساختن یک پنل هوش مصنوعی این است: کلید تأمینکننده را در فایل تنظیمات هر نصب بگذار و تمام. ما این کار را نکردیم و دلیلش امنیتِ نمایشی نیست؛ ریاضی است.
هر نصب یک نسخه از کلید است. صد مشتری یعنی صد نسخه، روی صد سرور، با صد سطح متفاوت از سختگیری، در دست تعداد نامعلومی مدیر سیستم. کافی است یکی از این صد جا لو برود تا هزینهٔ استفادهٔ ناخواسته را همه بدهند و تعویض کلید یعنی صد استقرار مجدد در یک بعدازظهر.
آنچه بهجایش هست
پنل هیچ کلید مدلی ندارد. وقتی کاری به مدل نیاز دارد، درخواست به هاب مرکزی میرود، و هاب تنها جایی است که کلید را میبیند.
روی سیم دو لایهٔ محافظ هست، و این دو تکراری نیستند:
- امضا ثابت میکند چه کسی درخواست داده و چیزی در راه دستکاری نشده. TLS این را ثابت نمیکند، چون TLS را هر پراکسیای که مشتری جلوی پنلش گذاشته، خاتمه میدهد.
- پاکت رمز محتوای درخواست و پاسخ را برای هر چیزی که بین دو سر ایستاده ناخوانا میکند — شامل همان پراکسی، شامل یک پورت آینهشده، شامل لاگی که بهاشتباه بدنه را ثبت کرده. کلید پاکت برای هر درخواست از راز نصب و nonce همان درخواست ساخته میشود، پس یک مکالمهٔ ضبطشده را نمیشود با کلید مکالمهٔ بعدی باز کرد.
چیزی که این معماری اضافه هم میدهد
وقتی کلید یکجاست، انتخاب مدل هم یکجاست. انتخاب مدل در آوند یک ردیف در جدول است، نه یک خط کد. نتیجههای عملی:
- تأمینکنندهای که ساعت بدی دارد، ساعت سه بامداد و بدون استقرار مجدد دور زده میشود.
- مدل هر مشتری میتواند متفاوت باشد، بدون اینکه دو نسخهٔ متفاوت از پنل وجود داشته باشد.
- هزینهٔ واقعی هر فراخوان همانجا و از پاسخ خود تأمینکننده خوانده میشود، نه از یک جدول تخمینی.
آن مورد آخر همان چیزی است که به کیف اعتبار اعتبار میدهد.
«پس اگر لایسنس را دور بزنم چه؟»
این سؤال را زیاد میپرسند و جواب صادقانهاش این است: پنل کد است و کد روی سرور مشتری قابل تغییر است. ولی پنلی که بررسی لایسنسش را بردارید، هنوز پنلی است که برای هر پاسخ باید به هاب بیاید — و اینجا لایسنس دوباره بررسی میشود، روی دیتابیسی که مشتری به آن دسترسی ندارد.
یعنی محافظ، نگهداشتن کلید است، نه پنهان کردن یک if.
هزینهای که پرداختیم
این معماری مجانی نیست. یک وابستگی شبکهای به هاب اضافه میکند، یعنی هاب باید بالا بماند و باید سریع باشد. برای همین:
- کارهای داخلی پنل که نیازی به مدل ندارند، اصلاً به هاب نمیروند.
- قطعی هاب پنل را نمیخواباند؛ فقط قابلیتهای مدلمحور موقتاً در دسترس نیستند.
- زمان پاسخ هاب بخشی از تعهد ماست، نه یک جزئیات پنهان.
ما ترجیح دادیم این هزینه را بدهیم تا اینکه روزی مجبور شویم به صد مشتری ایمیل بزنیم که کلیدتان را عوض کنید.