OpenVPN tls-crypt-v2: کلید کارخواه و بلاب پیچیده چه میکنند
یک نمایه tls-crypt-v2 کلید کنترل کارخواه و نسخهای پیچیده را نگه میدارد که فقط سرور میتواند باز کند. هر شیء و هر گام بازنشستگی را جدا نگه دارید.
چسباندن یک نمایه tls-crypt-v2 در یک تیکت بیخطر به نظر میرسد تا وقتی بشمارید فایل چه دارد. کلید کانال کنترل کارخواه کنار نسخه رمزشده همان کلید مینشیند و شیء سوم، کلید پیچیدن، هرگز از سرور پذیرنده بیرون نمیرود. این سه به پرسشهای متفاوتی درباره نگهداری، اشتراک و بازنشستگی پاسخ میدهند. جدا کردنشان بیشتر بحثهای سیاستی را پیش از شروع حل میکند.
نمایه در واقع چه دارد
نیمه کارخواه tls-crypt-v2 یک کلید بهعلاوه نسخه پیچیده آن است. کارخواه از کلید ساده برای حفاظت کانال کنترل استفاده میکند و نسخه پیچیده را هنگام راهاندازی به سرور میدهد، پس سرور همان کلید را بدون نگهداشتن نسخه متن ساده برای هر کارخواه بازیابی میکند. کلید پیچیدن این بازیابی را ممکن میکند و فقط به طرف پذیرنده تعلق دارد. همه چیز در ادامه از جای زندگی این سه شیء برمیآید.
| Object | Where it lives | What can open it | What a leak costs |
|---|---|---|---|
| Server wrapping key | accepting servers only | the unwrap step inside the server | every wrapped copy issued to that group becomes readable |
| Wrapped client key | inside the client profile | the server wrapping key | it names a client and exposes its metadata, but not the key inside |
| Client control key | inside the client profile, usable as-is | the client that owns it | someone can open handshakes as that client until the server refuses the key |
جدول را بر پایه نگهداری بخوانید نه نام، و پیامدها خودشان بیرون میآیند. از دست دادن کلید پیچیدن رویداد گران است، چون هیچ چیز در نمایه نمیتواند آن را بازسازی کند و بازیابی صادقانه دوباره صادر کردن گروه است. نمایه لورفته ارزانتر اما بسیار رایجتر است، چون نمایهها را کسانی در تیکت میچسبانند که باور دارند نسخه پیچیده فایل را برای اشتراک امن میکند. دو شکست پاسخهای متفاوتی میخواهند و همین دلیل جدا نگه داشتن اشیاء است.
چرا نسخه پیچیده تمام ماجرا نیست
نمایه مواد قابل استفاده کارخواه را همراه همتای پیچیدهاش حمل میکند، پس حفاظت از نسخه سرور چیزی درباره حفاظت از فایل نمیگوید. بلاب برای انتقال امن و برای انتشار ناامن است. فراداده درونش برای هر کسی که بلاب را دریافت میکند دیدنی است، از جمله هر کسی که بعداً تیکتی را که در آن چسبانده شده بخواند.
با نمایه مانند یک اعتبارنامه رفتار کنید نه نمونه پیکربندی. فایل لورفته به دارندهاش هویت کارخواه کارآمد میدهد تا وقتی سرور آن هویت را نپذیرد و پیچیدن هیچ کاری درباره آن پنجره نمیکند. برای هر کارخواه یک نمایه صادر کنید تا بازپسگیری تصمیم یک فایل بماند و از کلید پیچیدن جدا از پیکربندی سروری که آن را ممکن میکند نسخه پشتیبان بگیرید. هیچیک از این دو عادت نمایه بهخطرافتاده را ترمیم نمیکند، اما هر دو تعیین میکنند نمایه بعدی چقدر زود مهار میشود.
قلاب بررسی کجای دستدادن مینشیند
قلاب بررسی پیش از آشکار شدن پشته TLS اجرا میشود و کارش بازرسی فرادادهای است که در بلاب پیچیده حمل میشود. آن فراداده بهعلاوه محیطی کوچک و مستند دریافت میکند و کمتر از یک قلاب احراز هویت در اختیار دارد. این فرض که نام کاربری، وضعیت نشست یا متغیرهای افزونه را میبیند راه معمول بد نوشتن این قلاب است. بخش راهنمای خود قلاب را بخوانید نه اینکه انتظارها را از قلاب دیگری قرض بگیرید.
وضعیت خروجش تصمیم است: نتیجه نامساوی صفر کارخواه را رد میکند و نتیجه صفر اجازه ادامه دستدادن را میدهد. پس سیاست باید بگوید وقتی فراداده نیست، خوانا نیست یا غیرمنتظره است چه میشود. نخست مسیر رد را بنویسید، بعد تصمیم بگیرید کدام مقادیر پذیرفتنیاند.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shاین دو خط سطح سیاست روی سرور است: یکی کلید پیچیدن را نام میبرد و دیگری برنامهای را که درباره هر کارخواه داوری میکند. هر چیز جالبی در اسکریپت زندگی میکند که سزاوار کنترل نسخه و همان بازبینی هر قاعده دسترسی دیگری است.
حساب، گواهی و کلید کنترل جدا بازنشسته میشوند
پذیرش زودهنگام کانال کنترل احراز هویت نیست، چون پیش از بررسی هویت TLS و پیش از هر مجوز حساب رخ میدهد. غیرفعال کردن حساب، باطل کردن گواهی و رد کلید کنترل کارخواه سه کنش با سه سازوکارند. استقراری که فقط یکی را انجام میدهد شکاف دارد نه سیاست. سه را آگاهانه همراست کنید و ثبت کنید کدام گام کدام اختیار را اعمال میکند.
زمان دومین تمایز است. فهرست پذیرش تغییریافته بر دستدادنهای تازه اعمال میشود، در حالی که نشستهای برقرارشده تا وقتی چیزی آنها را پایان دهد ادامه مییابند. شمردن ورودیهای فهرست تازه بهعنوان دلیل پایان نشستهای قدیمی همان راهی است که کارخواه حذفشده ساعتها متصل میماند.
اختیارهای ناهمراست دو سوراخ میگذارند که در عمل آسان یافت میشوند. حساب میتواند غیرفعال شود در حالی که کلید کنترلش هنوز دستدادن باز میکند، و گواهی میتواند باطل شود در حالی که سیاست فراداده هنوز همان کارخواه را میپذیرد. هر دو یک اشتباه در جاهای مختلفاند، چون گرداننده یک فهرست را تمام اختیار پنداشته است. هنگام حذف سه فهرست را کنار هم بگذارید و اشتباه دیدنی میشود.
صدور و بازپسگیری نمایه
صدور نیمه آسان است: کلید کارخواه را در طرف پذیرنده بسازید، نمایه را به دقیقاً یک مالک بسپارید، مواد پیچیدن را محدود نگه دارید و همان برنامه بررسی را روی هر سرور پذیرنده اجرا کنید. پذیرش ارزان ویژگی کل گروه است نه تازهترین میزبان. سرور دوم با اسکریپت قدیمیتر یا سهلگیرانهتر بیصدا ضعیفترین مسیر استقرار میشود.
بازپسگیری سه گام را به ترتیبی سنجیده میخواهد. کارخواه را در قلاب بررسی رد کنید تا دستدادنهای تازه شکست بخورند، اگر PKI در کار است گواهیش را باطل کنید و حساب را غیرفعال کنید تا مجوزدهی بعدی چیزی برای مجوز دادن نداشته باشد. سپس نشستهایی را که پذیرش قدیم اجازه داده بود پایان دهید، چون هیچیک از سه را متوجه نمیشوند. توالی را روی کارخواهی تمرین کنید که توان خراب کردنش را دارید.
فراداده در نمایه ورودی آن سیاست است نه مدرکی بر وجود کنترل دسترسی. سند طراحی OpenVPN 2.6 اشیاء و مرزی را که میکشند توصیف میکند و اجرای آن با گرداننده میماند.