افزایش امنیت سایبری
قدم اول، تغییر سه عادت فاجعهآمیز هست:
۱- گذرواژه کوتاه و ساده روی حسابهای کاربری گذاشتن: این گذرواژهها جلوی حملات جستجوی فراگیر دووم نمیارن.
https://fa.wikipedia.org/wiki/%D8%AD%D9%85%D9%84%D9%87_%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_%D9%81%D8%B1%D8%A7%DA%AF%DB%8C%D8%B1?wprov=sfla1
طبق توصیه NIST، طول گذرواژه امن در سال ۲۰۲۴ باید خداقل ۱۶ تا نویسه باشه و از حروف کوچیک، حروف بزرگ، اعداد و علائم تشکیل شده باشه.
۲- گذرواژه یکسان روی چندین حساب کاربری گذاشتن: در صورت نشت گذرواژه یک حساب، سایر حسابها هم به خطر میفتن. هر حساب باید گذرواژه منحصر به فرد داشته باشه و یک گذرواژه هرگز روی دو یا چند حساب مختلف گذاشته نشه.
۳- گذرواژه هرگز نباید تولید شده توسط ذهن انسان باشه. ذهن انسان بیش از حد قابل پیشبینی هست و گذرواژههایی که تولید میکنه جلوی حملات لغتنامهای دووم نمیارن.
https://fa.wikipedia.org/wiki/%D8%AD%D9%85%D9%84%D9%87_%D9%84%D8%BA%D8%AA%E2%80%8C%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D8%A7%DB%8C?wprov=sfla1
به عنوان مثال: تصویر زیر نتیجه بررسی ۳/۴ میلیون پین کد چهار رقمی نشت پیدا کرده هست.
محور عمودی دو رقم اول و محور افقی دو رقم آخر رو نشون میدن. خونهها هر چی روشنتر باشن یعنی اون پین پرتکرارتر بوده و هر چی تاریکتر باشن یعنی اون پین کد به ندرت توسط مردم انتخاب شده.
همونطور که میبینید الگوهای کاملاً واضحی پدید اومده که وجودشون نشون میده مغز انسان واقعاً ابزار خوبی برای تولید پسوورد نیست. وظیفه تولید پسوورد رو هرگز به مغزتون نسپارید.
استفاده از یک نرمافزار مدیریتگر گذرواژه، هر سه عادت بدی که نام بردم رو میتونه به راحتی حذف کنه.
مدیریتگر گذرواژه نرمافزاری هست که یک پایگاه داده رمزنگاری شده از تمام گذرواژههاتون تهیه میکنه. توی این پایگاه داده ثبت میشه که در کدوم وبسایت یا اپ، با چه نام کاربری و گذرواژهای حساب کاربری دارید.
هر بار که میخواید حساب جدیدی بسازید، یا گذرواژه یک حساب قدیمی رو تغییر بدید، باید داخل نرمافزار مدیریتگر گذرواژهتون برید تا نرمافزار براتون گذرواژه جدید تولید کنه. طول و تنوع نویسههای گذرواژه تولیدی قابل تنظیم هست و میتونید تنظیمش کنید که گذرواژههای پیچیده تولید کنه. اینجوری گذرواژههاتون هم از نظر طول و پیچیدگی همیشه مناسب هستن، هم منحصر به فرد برای هر حساب تولید میشن و هم ذهن انسان تولیدشون نمیکنه (از هر سه عادت بد اجتناب میشه).
هیچ کدوم از این گذرواژهها رو هم نیازی نیست حفظ کنید!
نرمافزار مدیریتگر گذرواژهتون همه این گذرواژهها رو همراه با نام کاربری حساب و اسم و لینک وبسایتی که حساب پیشش ساخته شده در پایگاه داده ذخیره میکنه و دسترسی شما به این پایگاه داده با یک «شاهرمز» (Master Password) محقق میشه. شاهرمز باید استثناً توسط خودتون (ذهن انسان) تولید بشه و باید طولانی و پیچیده هم باشه.
شاهرمز تنها گذرواژهای هست که باید حفظ کنید، به باقی گذرواژههاتون با دونستن شاهرمز دسترسی دارید.
نرمافزارهای مدیریتگر گذرواژه امن:
1. KeePass (https://keepass.info/)
مدیریتگر گذرواژهای هست که خودم ازش استفاده میکنم. متن باز هست و نرمافزارهای کلاینت زیادی با انشعاب ازش ساخته شدن.
روی اندروید از انشعاب KeePassDX استفاده میکنم:
https://www.keepassdx.com/
و روی کامپیوتر از انشعاب KeePassXC:
https://keepassxc.org/
برای iOS هم KeePassium رو پیشنهاد میکنم:
https://keepassium.com/
2. Bitwarden (https://bitwarden.com)
متن باز هست ولی استفاده ازش نیاز به ساخت حساب کاربری داره. نسخه رایگان و غیر رایگان (با قابلیتهای بیشتر) داره.
3. 1Password (https://1password.com)
متن باز نیست و نسخه رایگان هم نداره. اما به حقوق کاربرانش احترام میذاره و توسط افراد متخصصی توسعه داده میشه.
سه تا مدیریتگر گذرواژه بد هم معرفی میکنم صرفاً برای اینکه هرگز (تحت تأثیر تبلیغات یا پیشنهاد دوست و آشنا) سمتشون نرید: NordPass و LastPass و Dashlane.
با تمام توان از اینا فاصله بگیرید.
بعد از انتخاب مدیریتگر گذرواژه و شروع استفاده ازش، وقت انتخاب یک نرمافزار برای رمزهای یک بار مصرف مبتنی بر زمان (TOTP) هست. از این کدهای ۶ رقمی که هر ۳۰ ثانیه یک بار تغییر میکنن و برای تصدیق دو مرحلهای واردشون میکنید.
اکثر مدیریتگرهای گذرواژه (از جمله اون سه تایی که معرفی کردم) قابلیت ذخیره و تولید TOTP هم دارن، اما من ترجیح میدم از این قابلیتشون استفاده نکنم و TOTP ها رو در یک پایگاه داده مستقل و جدا از گذرواژههام نگه دارم. اگر شما دوست دارید TOTP ها داخل همون مدیریتگر گذرواژه نگهداری بشن میتونید این مرحله رو رد کنید و نخونید؛ اما اگر تمایل دارید مثل من TOTP ها رو جدا نگه دارید، نرمافزارهای زیر رو توصیه میکنم.
برای اندروید: Aegis
https://getaegis.app
برای سایر سیستم عاملها: Ente Auth
https://ente.io/auth/
(صرفاً چون Aegis برای هیچ سیستم عاملی جز اندروید موجود نیست)
هر کدوم از این دو نرمافزار (مدیریتگر گذرواژه و نرمافزار کدهای TOTP) یک پایگاه داده برای خودشون میسازن که تهیه نسخه پشتیبان (Backup) ازشون و هماهنگ نگه داشتنش بین دستگاههای مختلف، به مهمترین کار زندگیتون تبدیل میشه.
اگر در تهیه نسخه پشتیبان ازشون تنبلی کنید، مشکلاتی براتون ایجاد میشه که رفعشون یا غیرممکن هست یا اونقدر وقت و انرژی ازتون میگیره که دلتون بخواد خودکشی کنید. پس این هشدار رو جدی بگیرید و هیچ وقت توی تهیه نسخه پشتیبان ازشون تنبلی نکنید.
اگر در یک روز هم گوشیتون و هم کامپیوترتون رو بدزدن و برای همیشه این دستگاهها رو از دست بدید، دسترسیتون به پایگاه داده مدیریتگر گذرواژه، همچنان نباید قطع بشه.
توضیح انواع تکنولوژیهای ذخیرهسازی اطلاعات و خوبیها و بدیهای هر کدومشون از موضوع این پست خارج هست و بهش نمیپردازم، خودتون باید در این زمینه تحقیق کنید و تجهیزات ذخیرهسازی قابل اتکا برای ذخیره بکاپ از پایگاه دادهتون تهیه کنید.
برای هماهنگسازی (Sync) نسخههای مختلف پایگاه داده روی دستگاهای مختلف، میتونید از Syncthing استفاده کنید (طرز استفاده ازش رو خودتون باید با مطالعه وبسایت پروژه یاد بگیرید).
https://docs.syncthing.net
قدم بعد، تأمین امنیت حساب کاربری ایمیل هست چون حساب ایمیل قدرت بازیابی دسترسی به تمام حسابهای دیگه رو معمولاً داره، حساب خیلی حساسی محسوب میشه.
برای این کار حداقل دو تا YubiKey تهیه کنید. YubiKey یک کلید سختافزاری دارای دو شیار قابل پیکربندی به صورت مستقل از هم هست.
https://www.yubico.com/de/store/yubikey-5-series/
این دو (یا چند) تا YubiKey باید پیکربندی دقیقاً یکسانی داشته باشن.
حداقل یکیشون همیشه همراهتون باشه و اون یکی به عنوان نسخه پشتیبان همیشه یه جای امن نگهداری بشه که اگر یکی رو گم کردید، اون یکی تا زمانی که کلیدهای بیشتری بخرید و پیکربندیشون کنید کارتون رو راه بندازه.
پیکربندی پیشنهادی برای دو شیار YubiKey:
شیار شماره 1:
FIDO2
https://www.yubico.com/authentication-standards/fido2/
برای مرحله دوم ورود به حسابهای کاربر (جایگزین امنتر برای TOTP)
شیار شماره 2:
HMAC-SHA1 challenge-response https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html
برای باز کردن پایگاه داده مدیریتگر گذرواژه (در کنار شاهرمز، برای امنیت بیشتر پایگاه داده)
⚠️ بدون مطالعه وبسایت رسمی YubiCo دست به استفاده از این کلیدها نزنید. استفاده از این کلیدها امنیت رو شدیداً افزایش میده اما به شرط اینکه بدونید دارید چه کار میکنید.
حساب کاربری ایمیل خیلی مهمه، از TOTP برای تأمین امنیتش استفاده نکنید. به جاش ورود دو مرحلهای به حساب ایمیل رو توسط FIDO2 پیکربندی شده روی YubiKey انجام بدید.
هر حساب کاربری دیگهای (غیر از ایمیل) که از FIDO2 پشتیبانی میکنه هم باید تصدیق دو مرحلهایش روی YubiKey شما فعال باشه به جای TOTP. چون اساساً FIDO2 امنتر از TOTP هست.
در سیستم TOTP، سرور باید یک کپی از کلید شخصی کاربر داشته باشه تا بتونه همزمان با کاربر کد تولید کنه و کد دریافت شده از کاربر رو باهاش تطبیق بده. و این یعنی حتی اگر کاربر همه جوانب احتیاط رو رعایت کنه، کلید شخصیش میتونه همچنان توسط سرور به بیرون نشت پیدا کنه.
ولی در FIDO2 هیچ کس جز کاربر کلید شخصی رو در دست نداره. و YubiKey اصلاً اجازه استخراج کلید شخصی رو از این سختافزار نمیده. یعنی حتی اگر به سرقت هم بره، امکان کپی گرفتن ازش وجود نداره مگر اینکه از قبل بدونن کلید شخصیای که روش ذخیره شده چیه (که در این صورت اصلاً نیاز ندارن بدزدنش تا کپی ازش بسازن).
۲- گذرواژه یکسان روی چندین حساب کاربری گذاشتن: در صورت نشت گذرواژه یک حساب، سایر حسابها هم به خطر میفتن. هر حساب باید گذرواژه منحصر به فرد داشته باشه و یک گذرواژه هرگز روی دو یا چند حساب مختلف گذاشته نشه.
۳- گذرواژه هرگز نباید تولید شده توسط ذهن انسان باشه. ذهن انسان بیش از حد قابل پیشبینی هست و گذرواژههایی که تولید میکنه جلوی حملات لغتنامهای دووم نمیارن.
https://fa.wikipedia.org/wiki/%D8%AD%D9%85%D9%84%D9%87_%D9%84%D8%BA%D8%AA%E2%80%8C%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D8%A7%DB%8C?wprov=sfla1
به عنوان مثال: تصویر زیر نتیجه بررسی ۳/۴ میلیون پین کد چهار رقمی نشت پیدا کرده هست.
محور عمودی دو رقم اول و محور افقی دو رقم آخر رو نشون میدن. خونهها هر چی روشنتر باشن یعنی اون پین پرتکرارتر بوده و هر چی تاریکتر باشن یعنی اون پین کد به ندرت توسط مردم انتخاب شده.
همونطور که میبینید الگوهای کاملاً واضحی پدید اومده که وجودشون نشون میده مغز انسان واقعاً ابزار خوبی برای تولید پسوورد نیست. وظیفه تولید پسوورد رو هرگز به مغزتون نسپارید.
استفاده از یک نرمافزار مدیریتگر گذرواژه، هر سه عادت بدی که نام بردم رو میتونه به راحتی حذف کنه.
مدیریتگر گذرواژه نرمافزاری هست که یک پایگاه داده رمزنگاری شده از تمام گذرواژههاتون تهیه میکنه. توی این پایگاه داده ثبت میشه که در کدوم وبسایت یا اپ، با چه نام کاربری و گذرواژهای حساب کاربری دارید.
هر بار که میخواید حساب جدیدی بسازید، یا گذرواژه یک حساب قدیمی رو تغییر بدید، باید داخل نرمافزار مدیریتگر گذرواژهتون برید تا نرمافزار براتون گذرواژه جدید تولید کنه. طول و تنوع نویسههای گذرواژه تولیدی قابل تنظیم هست و میتونید تنظیمش کنید که گذرواژههای پیچیده تولید کنه. اینجوری گذرواژههاتون هم از نظر طول و پیچیدگی همیشه مناسب هستن، هم منحصر به فرد برای هر حساب تولید میشن و هم ذهن انسان تولیدشون نمیکنه (از هر سه عادت بد اجتناب میشه).
هیچ کدوم از این گذرواژهها رو هم نیازی نیست حفظ کنید!
نرمافزار مدیریتگر گذرواژهتون همه این گذرواژهها رو همراه با نام کاربری حساب و اسم و لینک وبسایتی که حساب پیشش ساخته شده در پایگاه داده ذخیره میکنه و دسترسی شما به این پایگاه داده با یک «شاهرمز» (Master Password) محقق میشه. شاهرمز باید استثناً توسط خودتون (ذهن انسان) تولید بشه و باید طولانی و پیچیده هم باشه.
شاهرمز تنها گذرواژهای هست که باید حفظ کنید، به باقی گذرواژههاتون با دونستن شاهرمز دسترسی دارید.
نرمافزارهای مدیریتگر گذرواژه امن:
1. KeePass (https://keepass.info/)
مدیریتگر گذرواژهای هست که خودم ازش استفاده میکنم. متن باز هست و نرمافزارهای کلاینت زیادی با انشعاب ازش ساخته شدن.
روی اندروید از انشعاب KeePassDX استفاده میکنم:
https://www.keepassdx.com/
و روی کامپیوتر از انشعاب KeePassXC:
https://keepassxc.org/
برای iOS هم KeePassium رو پیشنهاد میکنم:
https://keepassium.com/
2. Bitwarden (https://bitwarden.com)
متن باز هست ولی استفاده ازش نیاز به ساخت حساب کاربری داره. نسخه رایگان و غیر رایگان (با قابلیتهای بیشتر) داره.
3. 1Password (https://1password.com)
متن باز نیست و نسخه رایگان هم نداره. اما به حقوق کاربرانش احترام میذاره و توسط افراد متخصصی توسعه داده میشه.
سه تا مدیریتگر گذرواژه بد هم معرفی میکنم صرفاً برای اینکه هرگز (تحت تأثیر تبلیغات یا پیشنهاد دوست و آشنا) سمتشون نرید: NordPass و LastPass و Dashlane.
با تمام توان از اینا فاصله بگیرید.
بعد از انتخاب مدیریتگر گذرواژه و شروع استفاده ازش، وقت انتخاب یک نرمافزار برای رمزهای یک بار مصرف مبتنی بر زمان (TOTP) هست. از این کدهای ۶ رقمی که هر ۳۰ ثانیه یک بار تغییر میکنن و برای تصدیق دو مرحلهای واردشون میکنید.
اکثر مدیریتگرهای گذرواژه (از جمله اون سه تایی که معرفی کردم) قابلیت ذخیره و تولید TOTP هم دارن، اما من ترجیح میدم از این قابلیتشون استفاده نکنم و TOTP ها رو در یک پایگاه داده مستقل و جدا از گذرواژههام نگه دارم. اگر شما دوست دارید TOTP ها داخل همون مدیریتگر گذرواژه نگهداری بشن میتونید این مرحله رو رد کنید و نخونید؛ اما اگر تمایل دارید مثل من TOTP ها رو جدا نگه دارید، نرمافزارهای زیر رو توصیه میکنم.
برای اندروید: Aegis
https://getaegis.app
برای سایر سیستم عاملها: Ente Auth
https://ente.io/auth/
(صرفاً چون Aegis برای هیچ سیستم عاملی جز اندروید موجود نیست)
هر کدوم از این دو نرمافزار (مدیریتگر گذرواژه و نرمافزار کدهای TOTP) یک پایگاه داده برای خودشون میسازن که تهیه نسخه پشتیبان (Backup) ازشون و هماهنگ نگه داشتنش بین دستگاههای مختلف، به مهمترین کار زندگیتون تبدیل میشه.
اگر در تهیه نسخه پشتیبان ازشون تنبلی کنید، مشکلاتی براتون ایجاد میشه که رفعشون یا غیرممکن هست یا اونقدر وقت و انرژی ازتون میگیره که دلتون بخواد خودکشی کنید. پس این هشدار رو جدی بگیرید و هیچ وقت توی تهیه نسخه پشتیبان ازشون تنبلی نکنید.
اگر در یک روز هم گوشیتون و هم کامپیوترتون رو بدزدن و برای همیشه این دستگاهها رو از دست بدید، دسترسیتون به پایگاه داده مدیریتگر گذرواژه، همچنان نباید قطع بشه.
توضیح انواع تکنولوژیهای ذخیرهسازی اطلاعات و خوبیها و بدیهای هر کدومشون از موضوع این پست خارج هست و بهش نمیپردازم، خودتون باید در این زمینه تحقیق کنید و تجهیزات ذخیرهسازی قابل اتکا برای ذخیره بکاپ از پایگاه دادهتون تهیه کنید.
برای هماهنگسازی (Sync) نسخههای مختلف پایگاه داده روی دستگاهای مختلف، میتونید از Syncthing استفاده کنید (طرز استفاده ازش رو خودتون باید با مطالعه وبسایت پروژه یاد بگیرید).
https://docs.syncthing.net
قدم بعد، تأمین امنیت حساب کاربری ایمیل هست چون حساب ایمیل قدرت بازیابی دسترسی به تمام حسابهای دیگه رو معمولاً داره، حساب خیلی حساسی محسوب میشه.
برای این کار حداقل دو تا YubiKey تهیه کنید. YubiKey یک کلید سختافزاری دارای دو شیار قابل پیکربندی به صورت مستقل از هم هست.
https://www.yubico.com/de/store/yubikey-5-series/
این دو (یا چند) تا YubiKey باید پیکربندی دقیقاً یکسانی داشته باشن.
حداقل یکیشون همیشه همراهتون باشه و اون یکی به عنوان نسخه پشتیبان همیشه یه جای امن نگهداری بشه که اگر یکی رو گم کردید، اون یکی تا زمانی که کلیدهای بیشتری بخرید و پیکربندیشون کنید کارتون رو راه بندازه.
پیکربندی پیشنهادی برای دو شیار YubiKey:
شیار شماره 1:
FIDO2
https://www.yubico.com/authentication-standards/fido2/
برای مرحله دوم ورود به حسابهای کاربر (جایگزین امنتر برای TOTP)
شیار شماره 2:
HMAC-SHA1 challenge-response https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html
برای باز کردن پایگاه داده مدیریتگر گذرواژه (در کنار شاهرمز، برای امنیت بیشتر پایگاه داده)
⚠️ بدون مطالعه وبسایت رسمی YubiCo دست به استفاده از این کلیدها نزنید. استفاده از این کلیدها امنیت رو شدیداً افزایش میده اما به شرط اینکه بدونید دارید چه کار میکنید.
حساب کاربری ایمیل خیلی مهمه، از TOTP برای تأمین امنیتش استفاده نکنید. به جاش ورود دو مرحلهای به حساب ایمیل رو توسط FIDO2 پیکربندی شده روی YubiKey انجام بدید.
هر حساب کاربری دیگهای (غیر از ایمیل) که از FIDO2 پشتیبانی میکنه هم باید تصدیق دو مرحلهایش روی YubiKey شما فعال باشه به جای TOTP. چون اساساً FIDO2 امنتر از TOTP هست.
در سیستم TOTP، سرور باید یک کپی از کلید شخصی کاربر داشته باشه تا بتونه همزمان با کاربر کد تولید کنه و کد دریافت شده از کاربر رو باهاش تطبیق بده. و این یعنی حتی اگر کاربر همه جوانب احتیاط رو رعایت کنه، کلید شخصیش میتونه همچنان توسط سرور به بیرون نشت پیدا کنه.
ولی در FIDO2 هیچ کس جز کاربر کلید شخصی رو در دست نداره. و YubiKey اصلاً اجازه استخراج کلید شخصی رو از این سختافزار نمیده. یعنی حتی اگر به سرقت هم بره، امکان کپی گرفتن ازش وجود نداره مگر اینکه از قبل بدونن کلید شخصیای که روش ذخیره شده چیه (که در این صورت اصلاً نیاز ندارن بدزدنش تا کپی ازش بسازن).