مارس 25, 2020 توسط sobhan 0

چرا رمز یا گذرواژه jK8v!ge4D پسورد خوبی نیست؟!

چرا رمز یا گذرواژه jK8v!ge4D پسورد خوبی نیست؟! گذرواژه مناسب چه ویژگی هایی دارد؟

به دو پسورد زیر نگاه کنید:

  1. jK8v!ge4D
  2. greenelephantswithtophats

به نظر شما کدامیک از دو رمز عبور بالا زمان بیشتری طول می کشد تا هک شود؟ بخاطر سپردن کدامیک راحتتر است؟ جواب هر دو سوال رمز عبور شماره 2 است. این درحالی است که اغلب گفته می شود رمز عبور شامل حروف کوچک و بزرگ، اعداد و نشانه ها باشند!

در استانداردهای اینترنت موارد الزامات بسیاری وجود دارد که اعتبار سنجی یکی از آنهاست. توسعه دهندگان باید هویت کاربران را جهت ورود به اصطلاح اعتبار سنجی کنند. این اعتبارسنجی توسط ایمیل، آدرس خانه، نام کاربری،شماره پستی و غیره انجام می شود.

به عنوان مثال، فیلدی که شماره پستی را درخواست می کند، معمولاً فقط فاصله و شماره ها را مجاز می داند، و اگر بداند کاربر در کدام کشور زندگی می کند، محدودیت آدرس محل زندگی را نیز می تواند اعمال نماید. کاراکترهای مجاز برای ورود شماره تلفن غالباً شامل اعداد، علامت بعلاوه (فقط در آغاز) و خط فاصله باشد، اگر موارد امنیتی اجازه دهد ممکن است انواع پرانتز نیز قابل بکارگیری باشد. اعتبارسنجی آدرس های ایمیل دشوار است، اما در هر صورت با توجه به فرمت آدرس ایمیل ها، یک روش معمول این است که آنها باید علامت (@) را داشته باشند که بین دو رشته درج شده باشد. برخی محدودیت ها جامع نیستند زیرا حتی اگر آدرس ایمیلی @ نداشته باشد می تواند کاملاً معتبر باشد.

اعتبار سنجی به دلایل مختلفی اجرا می شود. یک دلیل می تواند نگرانی های امنیتی باشد. اعتبار سنجی باعث می شود تا از وارد کردن کدهای مخرب به فیلدهایی که می توانند پایگاه داده را تغییر دهند یا اقدامات مخربی انجام دهند، جلوگیری شود. روش دیگر اجبار کردن به ورود نوع خاصی از داده است. اگر قرار است فیلدی صرفا شامل اعداد باشد، مهندس بانک اطلاعات (پایگاه داده) می تواند ستون مربوطه بانک اطلاعات را طوری تنظیم کند که فقط اعداد مجاز مجاز باشند و درغیر اینصورت با خطا مواجه می شود.

اما دلیل اصلی اعتبار سنجی جلوگیری از خطای کاربر می باشد.

اجبار پسوردها به فرمت متداول

بنا به دلایلی که قبلا نیز در موضوع «انتخاب پسورد قوی» نیز شرح داده شد، در اکثر سیستم های تجاری و طبقه بندی نشده، انتخاب پسورد به گونه ای که دارای 8 کارکتر و شامل حروف کوچک و بزرگ، اعداد و علامت ها باشند یک اجبار است.

با این توصیفات پسورد jK8v! ge4D پسورد خوبی تلقی می شود. اما اینطور نیست بلکه احمقانه است و رمز بدی است!

 اولا، چگونه کسی این را بخاطر خواهد سپرد؟ اتفاقی که در نهایت رخ خواهد داد این است که کاربران نمی توانند آن را به خاطر بسپارند، درنتیجه آن را در جایی یادداشت خواهند کرد و در نتیجه ممکن است به راحتی هک شوند.

 ثانیا، کاربران ممکن است یک رمز شبیه این را بخاطر بسپارند و در نتیجه همین رمز را در سایر وبسایت ها یا سیستم ها بکاربرند. وقتی در یک وبسایت معتبر ایجاد حساب کاربری می کنید پسوردی که وارد می کنید تبدیل به هش شده و سپس در بانک اطلاعاتی ذخیره می شود از این رو خود پسورد وارد شده ذخیره نمی شود بلکه هش آن که ترکیب تصادفی و طولانی است (مثلاً k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX) ذخیره می شود. درنتیجه حتی اگر پایگاه داده هک شده باشد، هکر با این اطلاعات واقعاً نمی تواند کاری انجام دهد. اگر رمز عبور خیلی متداول بوده و الگوریتم هش ساز (hash function) نیز ساده باشد، شاید احتمالا می توان رمزعبور اصلی را کشف کرد اما با یک رمز عبور تا حدی مناسب که به درستی از آن استفاده شده باشد، امنیت برقرار بوده و هکر موفق نخواهد بود.

اما مسئله این است که همه سرویس ها رمزعبور کاربران خود را هش نمی کنند. لذا اگر کاربر برای بسیاری از سرویس ها از همان رمز عبور استفاده می کند، ممکن است در نهایت از یک سرویس با برنامه نویسی ضعیف استفاده کرده که در واقع رمز عبور خود را به صورت ساده (هش نشده) در پایگاه داده آنها ذخیره می کند. اگر این پایگاه داده به خطر بیفتد مثل این است که امنیت تمام سرویس هایی که با این پسورد از آنها استفاده می کرده به خطر می افتد. این می تواند واقعا ترسناک باشد!

به همین دلیل باید از کلمه عبور های مختلف برای وب سایت های مختلف استفاده کنید. اما آیا وقتی که تعداد سرویس ها زیاد شوند آیا باز هم می توان همگی را بخاطر سپرد؟! کاربران قوی ممکن است از یک ابزار رمز عبور استفاده کنند، اما شما نمی توانید انتظار داشته باشید که یک کاربر متوسط نیز ​​این کار را انجام دهد.

خوب چه کنیم؟ در ادامه خواهیم گفت که راه حل بهتری نیز وجود دارد.

شکستن یک پسورد چه مدت طول می کشد؟

نگاهی به این رشته از کارکترها بیندازید: gtypohgt. این هشت کارکتر تصادفی است، همه با حروف کوچک. با استفاده از یک کامپیوتر مدرن تنها چند دقیقه زمان لازم است تا هک شود. حال برخی از کارکترها را با چند عدد جایگزین کنید مثلا g9ypo3gt. شکستن این پسورد چند ساعت طول می کشد. اگر برخی از حروف را بزرگ درج کنید مثلا g9YPo3gT آنگاه برای شکستن آن چند روز زمان لازم خواهد بود. اگر یک علامت ویژه هم داشته باشد مثلا بصورت g9Y! o3gT باشد شکستن آن یک ماه زمان خواهد برد.

رمز g9Y! o3g از نظر فنی رمز عبور مناسبی است. هیچ کس قادر نخواهد بود آن را حدس بزند، در لیست کوتاه کلمات عبور رایج نیست و رایانه ها به زمان معقولی را برای کشف آن نیاز دارند. مسئله این است که به خاطر سپردن این رمز عبور برای انسان دشوار است و دشوارتر وقتی خواهد بود که برای هر وبسایت یا سرویس رمزی مشابه این الگو اما متفاوت داشته باشیم.

مثلا فرض کنید پسوردهای fX&sic89، N#dc40g)، mZo35*&2، af7@3cU و چندتای دیگر را بخاطر سپرده و نیز بدانیم در کدام وبسایت بکار گرفته شده اند و بلکه لازم به تغییر آنها پس از مدتی نیز باشیم. دشوار است!

حالا به این زیبایی نگاه کنید: greenelephantswithtophats (فیل های سبز با کلاه های برتر). شامل 24 کارکتر است، همه حروف کوچک. بدون اعداد، بدون کاراکتر تصادفی، بدون shenanigans. با این وجود این رمز عبور هزاران هزار سال طول می کشد تا کامپیوتر آن را هک کند. دقت کنید که برای هر کاراکتری که اضافه می کنید مدت زمان کرک شدن بسیار افزایش می یابد. greenelephantswithtophats در لیست کوتاه کلمات عبور رایج نیست و هیچ انسانی قادر به حدس زدن آن نیز نیست.

بنابراین رمز عبور خوبی است!

یک گذرواژه درست کنید که یک داستان را بیان می کند. به رمز عبور فیس بوک احتیاج دارید؟ در مورد afaceforabookbutapizzaforahorse (چهره کتاب اما پیتزا برای اسب) چطور است؟ آن را تجسم کنید. حافظه مکانی، قوی ترین حافظه ما است. پس یک گذرواژه فوق العاده قدرتمند دارید که به راحتی به خاطر سپرده می شود و منحصر به فرد برای یک وب سایت خاص نیز می باشد. رمز عبور باید چیزی باشد که حتی افرادی که شما را به خوبی می شناسند نتوانند حدس بزنند. شما اغلب در مورد لاک پشت ها صحبت نمی کنید ، اینطور است؟ آیا تا به حال یک لاک پشت بنفش دیده اید؟ نه؟ آن را تجسم کنید. شما من بعد دارید. اشکالی ندارد که در رمزهای عبور خود دروغ بگویید: ionceswapurpleturtleiswear (من یک بار یک لاک پشت بنفش را دیدم قسم می خورم). میلیون ها سال طول خواهد کشید تا یک کامپیوتر مدرن آن را کشف کند و حتی خواهرتان نیز قادر به حدس زدن آن نیست!

walkingdowngrandpasroadwithlittlerufus میلیون ها سال طول می کشد تا هک شود. حدس زدن آن برای انسان غیرممکن است. حتی اگر کسی دریابد که نام حیوان خانگی شما روفوس است، باز هم هرگز نمی توانند حدس بزنند که این جمله خاص، رمز عبور شما است.

با این وجود برخی از وب سایت ها اجازه ثبت این گذرواژه ها را نمی دهند. احتمالا خواهند گفت که یک عدد یا یک حرف بزرگ اضافه کنید یا اینکه خیلی طولانی است یا سایر الزامات.

بنابراین شما می توانید کمی سیستم را فریب دهید. به پایان پسورد A1! اضافه کنید که ترکیب حرف بزرگ، عدد و علامت است. می توان A1! ا به انتهای تمام پسوردها اضافه کرد بدون اینکه امنیت آنها به خطر بیفتد.

منبع: Medium

الزامات فنی متداول رمزهای عبور را اینجا ببینید.