طراحی صفحه ورود ساده به نظر میرسد، اما یکی از پرخطرترین تصمیمهای هر محصول است. NIST، مؤسسه استاندارد آمریکا، در نسخه چهارم راهنمای SP 800-63B توصیههایش را بهروز کرده است. این سند برای سازمانهای دولتی آمریکا نوشته شده و برای ما الزامآور نیست، ولی از مرجعترین منابع این حوزه است.
سه باور قدیمی درباره رمز عبور که کنار گذاشته شده
- ترکیب اجباری حروف و نماد: سند صریحاً میگوید نباید قوانین ترکیب مثل «حتماً نماد داشته باشد» تحمیل شود. این قوانین معمولاً به رمزهای قابل حدسی مثل
Password1!میرسند. - تغییر دورهای رمز: تغییر اجباری هر چند ماه نباید خواسته شود. تغییر فقط وقتی لازم است که نشانهای از لو رفتن رمز وجود داشته باشد.
- رمز کوتاه: وقتی رمز تنها عامل ورود است، حداقل طول باید ۱۵ نویسه باشد. اگر رمز فقط بخشی از ورود چندمرحلهای است، حداقل ۸ نویسه کافی است.
خلاصهاش این است: طول را زیاد کنید و دست از قانونهای پیچیده بردارید.
جایگاه کد پیامکی
بسیاری از محصولات ایرانی با کد پیامکی کار میکنند و دلیلش هم روشن است: ساده است و کاربر رمزی به خاطر نمیسپارد. NIST استفاده از شبکه تلفن برای ارسال کد را «محدودشده» میداند. این یعنی ممنوع نیست، اما ریسک بیشتری دارد و باید گزینه جایگزین هم در دسترس کاربر باشد. همچنین پیشنهاد میشود پیش از ارسال کد، نشانههای خطر مانند تعویض سیمکارت یا انتقال شماره سنجیده شود.
برای یک فروشگاه یا سایت خدماتی، کد پیامکی همراه با محدودیت تعداد تلاش معمولاً تعادل قابل قبولی است. برای پنل مدیریت یا پول، کافی نیست.
چرا Passkey موضوع مهمی است
Passkey بر پایه استاندارد WebAuthn کار میکند. بهجای رمز، کلیدی روی دستگاه کاربر ساخته میشود و به دامنه سایت گره میخورد. به همین دلیل در برابر فیشینگ مقاوم است: حتی اگر کاربر وارد سایت جعلی شود، کلید برای آن دامنه کار نمیکند.
NIST در سطح AAL2 الزام میکند دستکم یک گزینه مقاوم در برابر فیشینگ به کاربر پیشنهاد شود. کلیدهای همگامشونده میان دستگاهها در این سطح مجازند، اما در بالاترین سطح یعنی AAL3 نباید استفاده شوند؛ آنجا کلید باید غیرقابل خروج از دستگاه باشد.
پیشنهاد عملی بر اساس نوع محصول
- سایت محتوایی یا فروشگاه کوچک: کد یکبارمصرف ایمیلی یا پیامکی. رمزی نگه نمیدارید که لو برود.
- محصول حرفهای با کاربران ثابت: همان کد یکبارمصرف بهعلاوه امکان فعال کردن Passkey.
- پنل مدیریت: رمز قوی همراه با ورود دومرحلهای با برنامه احراز هویت یا کلید امنیتی. پیامک برای این سطح انتخاب خوبی نیست.
- مسیر بازیابی: ضعیفترین مسیر ورود، سطح واقعی امنیت شماست. اگر بازیابی حساب فقط با یک پیامک انجام شود، امنیت ورود دومرحلهای را دور زدهاید.
کنار روش ورود، اینها را فراموش نکنید
- برای هر کد، تعداد تلاش و مدت اعتبار محدود بگذارید.
- ارسال کد را هم به ازای نشانی IP و هم به ازای مقصد محدود کنید، وگرنه هزینه پیامک شما هدف حمله میشود.
- پاسخ فرم نباید لو بدهد که این شماره یا ایمیل حساب دارد یا نه.
- کد را بهصورت هششده ذخیره کنید و بعد از یک بار استفاده باطل کنید.
- مسیر ورود مدیر را از مسیر ورود کاربر عادی جدا کنید.
دسترسپذیری را هم در نظر بگیرید. معیار 3.3.8 در WCAG 2.2 میگوید ورود نباید به آزمون حافظه یا معما وابسته باشد، مگر اینکه راه جایگزین وجود داشته باشد. اجازه دادن به مدیر رمز عبور و چسباندن کد، کار کوچکی است که اثر بزرگی دارد.
اگر میخواهید ورود محصولتان را بررسی کنیم، صفحه امنیت سایبری را ببینید.