سه گوشی، یک مسیریاب و یک بررسی پایش هنوز گذرواژهٔ قدیمی را نگه داشته‌اند و یکی از آن‌ها هر نود ثانیه دوباره وصل می‌شود. گذرواژهٔ حساب ده دقیقه پیش تغییر کرده است، پس هر یک از این کارخواه‌ها اکنون مقداری را ارسال می‌کند که سرور رد می‌کند. همان لحظه است که افسانه می‌شکند: تغییر گذرواژه به حساب مربوط است، نه به نسخه‌های مقدار قدیمی که روی هر دستگاه نشسته‌اند. آنچه می‌آید کاری است که تغییر انجام نداده است.

افسانه: یک تغییر، همه‌جا هم‌زمان

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

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

پیش از چرخش، نسخه‌ها را فهرست کنید

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

دستگاه‌های آفلاین همان غفلت کلاسیک‌اند. لپ‌تاپی در کشو سه هفته بعد برمی‌گردد و مقدار کهنه را در بدترین لحظهٔ ممکن ارائه می‌کند. مکان و برنامهٔ آن را هم بنویسید، زیرا باید به دنبالش بروید نه اینکه منتظرش بمانید.

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

grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null

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

واقعاً کدام راز را می‌چرخانید

گذرواژهٔ حساب تنها یک اعتبارنامه در استقرار VPN است. عبارت عبور کلید، هویت گواهی و راز همتای اختیاری هر یک مسیر جایگزینی و صاحب خود را دارند. تغییر گذرواژهٔ حساب برای دستگاهی که با گواهی احراز هویت می‌کند کاری نمی‌کند و صدور دوبارهٔ گواهی برای کارخواهی که گذرواژهٔ ذخیره‌شده دارد کاری نمی‌کند. پیش از نام بردن راه‌حل، راز را نام ببرید.

اگر چرخش از شک برمی‌خیزد نه از سیاست، فرایند رخداد بر برنامهٔ راحتی اولویت دارد. آنچه شواهد می‌طلبد را باطل کنید و کار اضافی روی فهرست دستگاه‌ها را بپذیرید. این تصمیم از آنِ مالک رخداد است، نه هر کس که تصادفاً فرم بازنشانی گذرواژه را در دست دارد.

مقدار ذخیره‌شده را همان‌جا که زندگی می‌کند جایگزین کنید

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

کارخواهی که پروندهٔ گذرواژه ذخیره می‌کند به بازنویسی پرونده نیاز دارد، در حالی که کارخواهی که می‌پرسد به ورود کامل نیاز دارد. NetworkManager راز را درون نمایهٔ اتصال نگه می‌دارد، پس تغییر از nmcli می‌گذرد نه از ویرایشگر متن:

nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work

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

هر دستگاه موردنظر را یک بار آگاهانه دوباره وصل کنید و ببینید کدام‌ها شکست می‌خورند. اگر دستگاهی همچنان شکست می‌خورد، پیش از تغییر دوبارهٔ گذرواژه به حسابی که به آن اشاره می‌کند و انباری که می‌خواند نگاه کنید، زیرا تغییر دوم نسخه‌هایی را که باید به‌روز شوند چند برابر می‌کند. دستگاهی که دو بار شکست می‌خورد معمولاً به حساب اشتباه اشاره می‌کند یا انباری را می‌خواند که هنوز نیافته‌اید. آن را درست کنید، سپس دوباره وصل شوید.

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

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

راهنمای چرخهٔ عمر اعتبارنامه در NIST SP 800-63B احرازکننده‌ها و نشست‌ها را در دسته‌های جدا نگه می‌دارد، از این رو تغییر گذرواژه و خروج جهانی دو عملیات متفاوت‌اند. آن‌ها را دو وظیفه با دو معیار پایان بدانید. اولی وقتی تمام است که مقدار جدید کار کند و دومی وقتی که نشست‌های قدیمی رفته باشند.

پایان کار را بدون نوشتن گذرواژهٔ جدید در سابقه ثبت کنید. گزارش چرخشی که اعتبارنامه را در خود دارد رخدادی جدید است که روی دیسکی مشترک منتظر می‌ماند. تاریخ، دستگاه‌های به‌روزشده و دستگاه‌های باقی‌مانده را بنویسید.

مقالات مرتبط