پروفایل OpenVPN سه بلوک گواهی دارد: کدام یک محرمانه است؟
یک پروفایل گواهی CA، گواهی کلاینت و یک کلید خصوصی حمل میکند که شبیه هم به نظر میرسند. تنها یکی محرمانه است و هر یک به شکلی متفاوت شکست میخورد.
فایل .ovpn را باز میکنید تا یک خط را تغییر دهید و سه بلوک base64 مییابید که همه شبیه اعتبارنامه هستند. یکی برای انتشار امن است، یکی به اندازه یک گذرواژه حساس است، و یکی کلید عمومی است که هیچ معنایی ندارد مگر آنکه چیز دیگری با جفت آن امضا شده باشد. مردم کل فایل را در یک رشته پشتیبانی میچسبانند چون بلوکها قابل تبادل به نظر میرسند، و اینطور است که کلید کلاینت در یک بایگانی عمومی سر میآورد. روشن کردن اینکه هر بلوک چه میکند بیشتر سردرگمی پیرامون این پروفایلها را توضیح میدهد و به شما میگوید کدام خرابیها را باید خودتان درست کنید.
یک فایل، سه بلوک، کارهای متفاوت
یک پروفایل معمول بلوک ca، بلوک cert و بلوک key را میان نشانههای BEGIN و END جای میدهد، یا به همان سه به صورت فایلهای جداگانه اشاره میکند. برخی پروفایلها بلوک چهارمی برای کلید tls-auth یا tls-crypt میافزایند که رازی مشترک است و نه گواهی. کلاینت هر بلوک را بر پایه دستوری که آن را نام میبرد میخواند، پس برچسبها از ترتیب ظهور مهمترند.
پروفایل مونتاژشده را حساس بدانید تا وقتی واقعاً داخلش را نگاه کنید. گواهی عمومی و کلید خصوصی میتوانند در همان فایل چند خط فاصله داشته باشند، و یک تصویر صفحه که سرصفحه را در بر میگیرد میتواند هر دو را شامل شود. پوشاندن دستی base64 نمایان هم نامطمئن است، چون بلوک ناقص هم فراداده گواهی را که نام استقرار شما را میبرد افشا میکند. کپی کردن سه دستور بدون مقدارهایشان معمولاً برای پرسیدن یک پرسش سودمند کافی است.
دستورهای پیرامون بلوکها تعیین میکنند که چگونه استفاده شوند. ca را تغییر دهید و کلاینت به مرجع دیگری اعتماد میکند؛ cert را بدون تغییر key عوض کنید و دستدهی با ناسازگاریای شکست میخورد که هیچ ربطی به اعتماد ندارد.
بلوک CA عمومی است، کلید CA هرگز
یک مرجع صدور گواهی گواهیهایی را امضا میکند که کلید عمومی را به هویت گره میزنند، و گواهی خودش لنگرهایی است که کلاینت با آن تصمیم میگیرد زنجیره قابل اعتماد است یا نه. آن گواهی به حکم طراحی عمومی است: فرستادنش درون هر پروفایل عادی است، و همین دلیل آن است که استقرار خودامضا میتواند بدون مرجع تجاری کار کند.
چیزی که هرگز نباید در پروفایل کلاینت ظاهر شود کلید امضای خصوصی مرجع است. کلاینت برای هیچ اعتبارسنجی به آن نیازی ندارد، و وجودش یعنی هر که پروفایل را دارد میتواند هویتهای تازه برای تمام استقرار بسازد.
اعتماد به یک مرجع هم از آنچه به نظر میرسد تنگتر است. کلاینتی که هر گواهی امضاشده با CA را میپذیرد باز هم گواهی صادرشده برای سرویس دیگری روی همان CA را میپذیرد. گزینههایی که نقش یا نام مورد انتظار سرور را سنجاق میکنند این شکاف را میبندند، و مرجع گزینههای TLS دستورهای بررسیای را که این کار را میکنند فهرست میکند.
گواهی سرور و کلاینت در جهتهای مخالف اشاره میکنند
گواهی سرور چیزی است که کلاینت بازرسی میکند تا تأیید کند به نقطه پایانی درست رسیده است. گواهی کلاینت شما برعکس کار میکند: سرور از آن استفاده میکند تا تصمیم بگیرد این دستگاه یا کاربر یکی از ثبتشدههای اوست. قالب یکسان، جهت اعتماد مخالف.
نشانی هویت نیست. رسیدن به IP درست هیچ چیز درباره اینکه چه کسی پاسخ داده اثبات نمیکند، به همین دلیل بررسی نام میزبان یا نام گواهی هنوز به پروفایل تعلق دارد. گذرواژه حساب هم به آرامی جای گواهی کلاینت لازم را نمیگیرد، چون هر دو در مراحل متفاوت بررسی میشوند و یک استقرار میتواند هر دو را بخواهد.
کلید خصوصی کلاینت بخشی است که باید خصوصی بماند. اگر ممکن است افشا شده باشد، حذف فایل از لپتاپ شما چیزی را روی سرور تغییر نمیدهد، که همچنان گواهی متناظر را میپذیرد تا وقتی بهرهبردار آن را باطل کند. درخواست از بهرهبردار برای جایگزینی یا باطل کردن آن هویت تنها اصلاحی است که با شما سفر میکند.
دو پرسش که یکسان به نظر میرسند و نیستند
کلیدی که به شکل رمزشده ذخیره شده پیش از آنکه کلاینت بتواند استفاده کند یک عبارت عبور میخواهد. سرویس VPN ممکن است جداگانه گذرواژه حساب را بخواهد، و دو پرسش میتوانند ثانیههایی فاصله با واژهبندی تقریباً یکسان ظاهر شوند. عبارت عبور از فایلی روی دیسک شما محافظت میکند؛ گذرواژه حساب را به سرور اثبات میکند. اشتباه گرفتن این دو مردم را به بازنشانی گذرواژههایی میفرستد که امکان کمک ندارند.
پیش از بازنشانی هر چیزی پرسش را بخوانید. بازنشانی گذرواژه حساب برای عبارت عبور فراموششده کلید، گواهی باطلشده یا منقضی هیچ کاری نمیکند، و بازنشانی گذرواژه وقتی خرابی اعتبارسنجی گواهی است یک اصلاح دو دقیقهای را به یک پرونده پشتیبانی تبدیل میکند. اگر شکایت تاریخهای اعتبار را ذکر میکند، نخست ساعت دستگاه را بررسی کنید و سپس پنجره خود گواهی نامبرده را.
وقتی گواهی واقعاً منقضی شده باشد، جایگزین باید از کسی بیاید که آن را صادر کرده است. کلیدی که به کس دیگری تعلق دارد مسیر تمدید نیست، و قرض گرفتن یک پروفایل کارآمد از یک همکار هم نیست.
دستدهی پاک چه چیزی را اثبات میکند و چه چیزی را نه
رسیدن به یک دستدهی کامل TLS یعنی رابطه هویتی پیکربندیشده برقرار مانده است: گواهی سرور به CA شما زنجیر شده و گواهی شما پذیرفته شده است. این هیچ چیزی درباره سیاست ثبت رویداد بهرهبردار نمیگوید و هیچ چیزی درباره اینکه برنامههایتان پس از بالا آمدن تونل کار میکنند یا نه.
مسیرها و DNS مراحل بعدی اتصالاند، پس میزبان اینترانت دسترسناپذیر پس از ورود موفق یک مشکل اتصال است نه مشکل گواهی. روی همان لایه کار کنید به جای عوض کردن اعتبارنامهها، و وقتی پروفایل را به کسی میدهید خاستگاه آن، مواد خصوصیاش و بررسیهای هویتش را کنار هم نگه دارید.