چرا کلیدهای سرور و اعتبارنامههای کاربر به مالکان جداگانه نیاز دارند
هویت دروازه و اجازه کاربر دو راز متفاوت با پیامدهای متفاوتاند. سه پرسش تعیین میکند هر کدام چگونه ذخیره، تحویل و ابطال شود.
کلیدی که ثابت میکند دروازه شما خودش است و اعتبارنامهای که میگوید یک شخص میتواند بپیوندد هر دو رازند و شباهت همینجا تمام میشود. یکی یک سرویس را به هر مشتری میشناساند؛ دیگری یک کاربر را به آن سرویس. مخلوط کردن آنها در هنگام راهاندازی یک قدم صرفهجویی میکند و در هنگام یک رخداد یک بعدازظهر هزینه دارد، چون بازیابی برای هر یک همان عملیات نیست. جدا کردن خستهکننده است و فراموش کردنش بهیادماندنی.
دو راز، دو مالک متفاوت
دروازه یک کلید خصوصی یا گواهی نگه میدارد که تنها کارش اثبات هویت خود در هنگام دستدادن است. مشتریان به مواد عمومی متناظر برای بررسی آن نیاز دارند و هرگز به نیمه خصوصی نیاز ندارند. همین عدم تقارن است که احراز هویت سرور را بدون دادن توانایی جعل سرور به هر کاربر ممکن میکند.
مواد کاربر در جهت دیگر است. کلید خصوصی مشتری، گواهی مشتری یا گذرواژه نشان میدهد که به این شخص یا دستگاه خاص دسترسی داده شده است. انتظار میرود توزیع شود، بین دستگاهها کپی شود و در نهایت ابطال گردد.
WireGuard جداسازی را آشکار میکند چون هر مشارکتکننده یک جفت کلید دارد: کلید خصوصی سرور روی سرور میماند و فایل پیکربندی که به کاربر میدهید کلید خصوصی خود او بههمراه کلید عمومی سرور را دارد. نمایهای که کلید خصوصی سرور را داشته باشد میانبر نیست، یک نفوذ است که منتظر اشتراک فایل است.
سه پرسشی که جداسازی را تعیین میکند
بپرسید چه کسی باید بتواند راز را بخواند، افشا چه کاری را برای مهاجم ممکن میکند و آیا اصلاح یک ابطال است یا بازسازی سرویس.
اگر کاربری بتواند آن را بخواند و هویت دروازه را اثبات کند، پاسخ پرسش دوم این است که مهاجم میتواند سرور شما را به همه مشتریان جعل کند — بدترین نتیجه، چون مشتریان برای اعتماد به آن هویت طراحی شدهاند. اگر فقط یک کاربر را اثبات کند، افشا دسترسی آن کاربر به یک همتا را میدهد و ابطال یک عملیات معمول است. اگر کلید مرجع صدور گواهی باشد، افشا از هر دو بدتر است، چون مهاجم میتواند هویتهایی بسازد که هر نقطه پایانی به آنها اعتماد دارد.
این سه پاسخ قاعده ذخیرهسازی را میسازد: کلید CA بیرون از شبکه یا در گاوصندوق میماند، کلید دروازه روی دروازه و کلیدهای کاربر نزد کاربران. هر چیدمانی که هر سه را برای راحتی در یک پوشه بگذارد یک تصمیم را به حادثه تبدیل کرده است.
مشتری واقعاً به چه چیزی نیاز دارد
مشتری به گواهی عمومی یا کلید عمومی همتا، مواد CA یا اثر انگشتی که باید به آن اعتماد کند، کلید خصوصی خودش و جزئیات نقطه پایانی نیاز دارد. این فهرست چیزی از هویت خصوصی دروازه ندارد.
مستندات جایی است که این نشت میکند. راهنمایی که میگوید پوشه سرور را کپی کنید و آنچه لازم ندارید پاک کنید، از قبل مدل اشتباه را آموخته، چون فایلی که پس از مرحله پاککردن میماند بهندرت توسط کسی بررسی میشود.
یک کاربر را بدون دست زدن به دروازه ابطال کنید
چون هویتهای کاربر جداگانه صادر میشوند، میتوان آنها را جداگانه پس گرفت. استقرار مبتنی بر گواهی گواهی مشتری را ابطال میکند و فهرست ابطال بهروزشده را منتشر میکند؛ استقرار WireGuard ورودی همتا را از پیکربندی سرور حذف میکند. هیچیک از این عملیات کلید خود دروازه را تغییر نمیدهد.
سابقه صدور را نگه دارید، وگرنه نمیدانید کدام هویت را پس بگیرید. یک صفحهگسترده کافی است، به شرط آنکه شخص، دستگاه، شماره سریال یا کلید عمومی و تاریخ را نام ببرد و کسی پس از رفتن سازنده آن را نگه دارد.
دستورهای زیر یک گواهی مشتری را بررسی میکنند و سپس آن را از طریق مرجعی به سبک OpenSSL ابطال میکنند، که همان جریانی است که easy-rsa بستهبندی میکند:
openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pemفهرست جدید را همانجا منتشر کنید که مشتریان آن را بررسی میکنند، وگرنه ابطال یادداشتی در فایلی است که چیزی را تغییر نمیدهد. اگر دروازه شما گواهی مشتری را بدون مراجعه به فهرست ابطال میپذیرد، صریح بگویید، نه اینکه القا کنید ابطال کار میکند.
نسخههای پشتیبان را به اندازه رازها جدا نگه دارید
بایگانی بازسازی بهطور مشروع کلید دروازه و مواد CA را دارد، چون بدون آنها بازیابی نمیتواند سرویس را بازتولید کند. بسته راهاندازی مشتری نباید داشته باشد و این دو نباید با هم ذخیره شوند. هر بایگانی را بر اساس اینکه چه کسی میتواند نگهش دارد برچسب بزنید، نه تاریخ ساخت. همان برچسب است که مدیر خسته در ساعت دو بامداد میخواند.
این تمایز همچنین تعیین میکند چه کسی میتواند هر یک را بازیابی کند. اداره دروازه، صدور هویت کاربر و خواندن نسخههای پشتیبان سه اختیار متفاوتاند و کسی که یکی را لازم دارد بهطور خودکار به بقیه نیاز ندارد. آن مجوزها را بنویسید و سپس آنها را با آنچه انبار شما واقعاً اجازه میدهد بسنجید، چون وراثت پوشهها بیصدا بیش از آنچه سیاست میخواهد میدهد.