رمز عبور قوی چیست و چطور یک رمز واقعاً امن بسازیم؟
قدرت رمز عبور از ظاهر پیچیدهاش نمیآید، از طول و تصادفی بودنش میآید؛ این راهنما نشان میدهد چطور رمزی بسازید که حدس زدنش عملاً غیرممکن باشد و مجبور نباشید حفظش کنید.
بیشتر ما رمز عبور را طوری انتخاب میکنیم که یادمان بماند: اسم، تاریخ تولد، شماره موبایل یا همان رمز همیشگی با یک عدد اضافه. مشکل اینجاست که همان چیزی که به خاطر سپردن رمز را آسان میکند، حدس زدنش را هم آسان میکند. در این راهنما میبینیم رمز عبور قوی دقیقاً چیست، رمزها در عمل چطور شکسته میشوند، کدام عادتها رمز را ضعیف میکنند و چطور با تولیدکننده رمز عبور، مدیر رمز و تأیید دومرحلهای از ایمیل و حسابهای مهم محافظت کنید.
رمز عبور قوی چیست؟
رمز عبور قوی رمزی است که حتی کامپیوتری که میلیاردها حدس در ثانیه میزند نتواند در زمان معقول پیدایش کند. دو ویژگی این قدرت را میسازند: طول و تصادفی بودن. ظاهر پیچیده بهتنهایی کافی نیست؛ P@ssw0rd! علامت و عدد و حرف بزرگ دارد، اما جزو اولین رمزهایی است که ابزارهای شکستن رمز امتحان میکنند.
دلیلش را باید در روش حمله دید. مهاجم کمتر پشت صفحه ورود سایت رمز امتحان میکند، چون سایتها بعد از چند تلاش ناموفق جلویش را میگیرند. خطر اصلی وقتی است که پایگاه داده یک سایت نشت کند. در این حالت مهاجم نسخه درهمسازیشده (هششده) رمزها را دارد و روی کامپیوتر خودش بدون محدودیت حدس میزند: اول فهرست رمزهای رایج و لورفته، بعد همانها با قاعدههای قابل پیشبینی مثل حرف اول بزرگ، @ بهجای a یا سال در انتها، و در آخر امتحان همه ترکیبها.
آنتروپی؛ قدرت رمز به زبان ساده
قدرت رمزی که واقعاً تصادفی ساخته شده با «آنتروپی» سنجیده میشود که واحدش بیت است. هر بیت آنتروپی تعداد حالتهایی را که مهاجم باید امتحان کند دو برابر میکند. اگر هر کاراکتر بهطور تصادفی از مجموعهای با N نویسه انتخاب شود، آنتروپی رمز برابر است با طول رمز ضربدر لگاریتم مبنای ۲ عدد N.
روی صفحهکلید انگلیسی ۹۴ نویسه قابل چاپ هست: ۲۶ حرف کوچک، ۲۶ حرف بزرگ، ۱۰ رقم و ۳۲ علامت. هر کاراکتر تصادفی از این مجموعه کمی بیش از ۶٫۵ بیت آنتروپی دارد، پس رمز ۱۶ کاراکتری تصادفی از آن حدود ۱۰۵ بیت آنتروپی دارد.
| رمز تصادفی | آنتروپی تقریبی |
|---|---|
| ۸ کاراکتر از ۹۴ نویسه | ۵۲ بیت |
| ۱۲ کاراکتر از ۹۴ نویسه | ۷۹ بیت |
| ۱۶ کاراکتر از ۹۴ نویسه | ۱۰۵ بیت |
| ۲۰ کاراکتر از ۹۴ نویسه | ۱۳۱ بیت |
| ۱۶ کاراکتر فقط از حروف و ارقام (۶۲ نویسه) | ۹۵ بیت |
| ۲۰ کاراکتر فقط از حروف و ارقام (۶۲ نویسه) | ۱۱۹ بیت |
برای ملموس شدن اعداد، مهاجمی را فرض کنید که روی یک هش سریع هزار میلیارد حدس در ثانیه میزند. او همه حالتهای یک رمز ۸ کاراکتری تصادفی را در کمتر از دو ساعت امتحان میکند، اما برای رمز ۱۶ کاراکتری به بیش از هزار میلیارد سال زمان نیاز دارد. سرعت واقعی به نوع هش و سختافزار بستگی دارد، اما الگو ثابت است: هر کاراکتر تصادفی اضافه، کار مهاجم را دهها برابر سختتر میکند.
یک شرط مهم: این محاسبه فقط برای رمزی درست است که واقعاً تصادفی ساخته شده باشد. رمزی مثل Ali@1370! نُه کاراکتر دارد، اما چون از الگوهای رایج ساخته شده، در همان مراحل اول حمله پیدا میشود.
اشتباههای رایج که رمز را ضعیف میکنند
- یک رمز برای چند حساب: خطرناکترین اشتباه. وقتی سایتی کماهمیت نشت کند، مهاجم همان ایمیل و رمز را خودکار در ایمیل، شبکههای اجتماعی و فروشگاهها امتحان میکند.
- اطلاعات شخصی: نام خود یا فرزند، تاریخ تولد، شماره موبایل، کد ملی، پلاک ماشین یا تیم محبوب؛ اطلاعاتی که اغلب در شبکههای اجتماعی پیدا میشوند.
- جایگزینیهای ساده:
p@ssw0rdبهجای password یا$بهجای s امنیتی اضافه نمیکند؛ این قاعدهها سالهاست در ابزارهای شکستن رمز وجود دارند. - سال یا علامت در انتها:
1405،123یا!در انتهای یک کلمه از اولین حالتهاییاند که امتحان میشوند؛ عوض کردن1404به1405هنگام تغییر رمز هم همینطور. - الگوهای صفحهکلید:
qwerty،1qaz2wsxو123456در فهرست رایجترین رمزهای لورفته دیده میشوند. - کلمه فارسی با صفحهکلید انگلیسی: تایپ «سلام» وقتی صفحهکلید انگلیسی است
sghlمیشود. این تبدیلی ثابت و قابل پیشبینی است و کلمههای رایج فارسی از این راه هم قابل حدساند. - نگهداری ناامن: فرستادن رمز در پیامرسان، یادداشت گوشی یا اسکرینشاتی که با فضای ابری همگام میشود.
عبارت عبور؛ رمزی که میشود به خاطر سپرد
برای چند رمزی که واقعاً باید حفظ کنید، مثل رمز اصلی مدیر رمز عبور یا رمز ورود به لپتاپ، «عبارت عبور» (Passphrase) انتخاب خوبی است: چند کلمه تصادفی و بیارتباط پشت سر هم. قدرت عبارت عبور هم از تصادفی بودن میآید. اگر هر کلمه بهطور تصادفی از فهرستی ۷۷۷۶ کلمهای انتخاب شود، مثل روش Diceware که با پرتاب تاس کلمه انتخاب میکند، هر کلمه حدود ۱۳ بیت آنتروپی دارد و شش کلمه بیش از ۷۷ بیت.
کلمهها را خودتان «انتخاب» نکنید؛ بیت شعر معروف، ضربالمثل یا جملهای معنادار، هرقدر هم طولانی باشد، تصادفی نیست. بهتر است عبارت عبور را با حروف انگلیسی بسازید، چون برخی سیستمها با نویسههای فارسی در رمز مشکل دارند. برای بقیه حسابها که رمزشان را مدیر رمز پر میکند، رشته تصادفی کوتاهتر و کاربردیتر است. تولیدکننده رمز عبور این سایت هر دو را میسازد: با منوی حالت میتوانید بین رشته تصادفی و عبارت عبوری از همان فهرست ۷۷۷۶ کلمهای جابهجا شوید؛ صفحهٔ ساخت عبارت عبور ابزار را روی همین حالت باز میکند.
ساخت رمز عبور قوی با تولیدکننده رمز عبور
تولیدکننده رمز عبور رمز را داخل مرورگر شما و با crypto.getRandomValues میسازد، یعنی منبع تصادف امن رمزنگاری که مرورگرها برای کارهای امنیتی فراهم میکنند. رمز ساختهشده به هیچ سروری فرستاده یا جایی ذخیره نمیشود.
- اگر رشتهٔ تصادفی میخواهید، منوی حالت را روی رمز عبور بگذارید. همین منو عبارت عبور و PIN را هم دارد؛ پس عبارت عبوری که بالاتر گفتیم و پین ۳ تا ۱۲ رقمی از همین ابزار درمیآید.
- با لغزنده طول اندازه رمز را از ۴ تا ۱۲۸ کاراکتر انتخاب کنید؛ پیشفرض ۱۶ است. برای ایمیل و حسابهای حساس ۲۰ یا بیشتر بگذارید.
- مجموعه نویسهها را انتخاب کنید: حروف بزرگ، حروف کوچک و اعداد بهطور پیشفرض روشناند. با تیک نمادها، ۲۶ علامت مثل
!@#$%هم اضافه میشود. - اگر قرار است رمز را از روی کاغذ بخوانید یا دستی تایپ کنید، حذف نویسههای مشابه را فعال کنید تا نویسههای مشابه
0،O،1،lوIکنار گذاشته شوند. برای رمز وایفای مهمانها هم بهجای خواندن رمز میتوانید کیو آر کد وایفای بسازید. - دستکم یکی از هر نوع بهطور پیشفرض تیک خورده است: تا وقتی طول رمز جای یک نویسه از هر مجموعه را داشته باشد، از هر مجموعهای که انتخاب کردهاید دستکم یک نویسه در رمز میآید. اگر سایتی وجود رقم یا علامت را الزامی کرده، روشن نگهش دارید.
- روی تولید رمز بزنید. تولید ۱۰ رمز یکجا ده رمز میسازد؛ چون دستکم یکی از هر نوع روشن است، همهٔ آنها از هر مجموعهای که انتخاب کردهاید نویسه دارند، پس میتوانید همان اولی را بردارید. فهرست فقط برای این است که اگر خواستید، خواناترشان را انتخاب کنید.
- با کپی رمز را بردارید و مستقیم در مدیر رمز عبور و فرم سایت بچسبانید.
با تنظیمات پیشفرض (۱۶ کاراکتر از ۶۲ حرف و رقم) آنتروپی حدود ۹۵ بیت است و با روشن کردن علامتها (۸۸ نویسه) به حدود ۱۰۳ بیت میرسد. اگر سایتی علامتها را قبول نمیکند، تیکشان را بردارید و طول را به ۲۰ برسانید؛ نتیجه با حدود ۱۱۹ بیت از رمز ۱۶ کاراکتری با علامت هم قویتر است. لازم نیست این عدد را خودتان حساب کنید: خط زیر نتیجه همان را نشان میدهد، با تنظیمات پیشفرض حدود ۹۵ بیت آنتروپی. برچسب قدرت زیر رمز فقط نشانگری ساده بر اساس طول و نوع نویسههاست؛ معیار اصلی همان طول و تصادفی بودن است.
مدیر رمز عبور؛ تنها راه عملی برای رمزهای متفاوت
هیچکس نمیتواند برای دهها حساب رمزهای تصادفی و متفاوت را حفظ کند و قرار هم نیست این کار را بکند. مدیر رمز عبور همه رمزها را در گاوصندوقی رمزنگاریشده نگه میدارد و فقط یک عبارت عبور قوی از شما میخواهد. بیشتر مدیرهای رمز فرم ورود را خودکار پر میکنند و چون نشانی سایت را تطبیق میدهند، معمولاً در صفحه جعلی که فقط ظاهرش شبیه سایت اصلی است رمز را پر نمیکنند؛ کمکی واقعی در برابر فیشینگ.
- مدیر رمز داخلی مرورگر یا سیستمعامل سادهترین شروع است و روی دستگاههایی که با یک حساب همگام شدهاند در دسترس است.
- مدیرهای رمز مستقل مثل Bitwarden (متنباز و با نسخه رایگان) یا KeePassXC (متنباز و کاملاً آفلاین) روی مرورگرها و سیستمعاملهای مختلف کار میکنند.
- برای خود مدیر رمز هم تأیید دومرحلهای را روشن کنید و کدهای بازیابیاش را جایی امن و خارج از گوشی نگه دارید.
تأیید دومرحلهای؛ لایه دوم محافظت
قویترین رمز هم ممکن است در صفحه فیشینگ وارد شود یا با نرمافزار مخرب دزدیده شود. تأیید دومرحلهای (2FA) یعنی برای ورود، علاوه بر رمز، چیزی از دستگاهی که در اختیار شماست هم لازم باشد. روشهای آن از نظر امنیت یکسان نیستند:
| روش | چطور کار میکند | امنیت |
|---|---|---|
| پیامک (SMS) | کد یکبارمصرف به شماره موبایل فرستاده میشود | از هیچ بهتر است، اما با سوءاستفاده از سیمکارت یا فریب کاربر قابل دور زدن است |
| اپ احراز هویت | اپی مثل Google Authenticator یا Microsoft Authenticator هر ۳۰ ثانیه کد تازه میسازد | بهتر از پیامک، چون به شبکه موبایل وابسته نیست |
| کلید امنیتی یا Passkey | تأیید با کلید سختافزاری یا قفل دستگاه بهجای تایپ کد | قویترین گزینه و مقاوم در برابر فیشینگ |
کدهای بازیابی (Backup codes) را که هنگام فعالسازی نمایش داده میشوند جایی امن یادداشت کنید تا با گم شدن گوشی دسترسی به حساب را از دست ندهید. هرگز هم کد تأیید را برای کسی نفرستید؛ پیامهایی مثل «کد ارسالشده را برای ما بفرستید» از رایجترین روشهای کلاهبرداریاند.
رمز عبور قوی برای ایمیل
ایمیل مهمترین حساب شماست، چون تقریباً همه سرویسها لینک بازیابی رمز را به ایمیل میفرستند؛ هر کس ایمیل شما را در اختیار بگیرد، میتواند رمز بیشتر حسابهای دیگر را هم عوض کند. برای ایمیل اصلیتان این کارها را انجام دهید:
- رمزی تصادفی با دستکم ۲۰ کاراکتر بسازید که هیچ جای دیگری استفاده نشده باشد.
- تأیید دومرحلهای را با اپ احراز هویت یا Passkey روشن کنید.
- شماره موبایل و ایمیل بازیابی را بهروز نگه دارید؛ شمارهای که دیگر در اختیارتان نیست میتواند راه نفوذ شود.
- فهرست دستگاهها و نشستهای واردشده به حساب را هر چند وقت یک بار بررسی کنید و موارد ناآشنا را خارج کنید.
- با جستجوی ایمیل خود در سایت haveibeenpwned.com ببینید در نشتهای شناختهشده بوده است یا نه.
- رمز ایمیل را فقط در صفحهای وارد کنید که خودتان نشانیاش را باز کردهاید، نه از لینکی که در یک پیام رسیده.
چه زمانی رمز را عوض کنیم؟
تعویض اجباری و دورهای رمز، مثلاً هر سه ماه، دیگر توصیه نمیشود؛ راهنمای NIST آمریکا هم میگوید سرویسها نباید کاربران را به آن مجبور کنند، چون کاربران را به تغییرهای قابل پیشبینی مثل عوض کردن عدد آخر رمز میکشاند. رمز خوب را نگه دارید، اما در این موارد فوراً عوضش کنید: سرویس از نشت اطلاعات خبر داده یا ایمیلتان در فهرست نشتها پیدا شده، رمز را برای کسی فرستادهاید یا در دستگاهی عمومی وارد کردهاید، فعالیت ناآشنایی در حساب دیدهاید، یا همان رمز را جای دیگری هم استفاده کردهاید.