توصيه به ديگران
 
کد مطلب: 365338
مراقب هکرها باشید؛
گام آخر در تامین امنیت کلمه عبور چیست؟
بخش دانش و فناوری الف،2 تیر95
می دانید که تامین امنیت داده یک اقدام نسبی است و علاوه بر آن، بخشی از آن در اختیار ما بوده و مابقی که درصد قابل توجهی را هم تشکیل می دهد، خارج از تصمیم و کنترل ماست.
تاریخ انتشار : چهارشنبه ۲ تير ۱۳۹۵ ساعت ۱۳:۵۴
 پسوردها یا کلمات عبور هرگز به گونه‌ای که آنها را تایپ می‌کنیم در سرورهای گوگل، یاهو یا فیسبوک ذخیره نمی شوند. هکرها نیز هرگز حاضر و آماده آنها را در اختیار نمی گیرند. از یک کامپیوتر قدیمی خانگی با ویندوز XP گرفته تا قدرتمند ترین ایستگاه های کاری با سیستم های عامل به روز و پیشرفته، همگی کلمه های عبور را به شکل رشته های به هم ریخته ای ذخیره می‌کنند که به Hash معروفند.

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

کوچکترین تغییری در داده ورودی منتهی به تغییر عمده در Hash شود؛ و هیچ دو ورودی متفاوتی منتهی به Hash یکسان نشوند.

همانطور که می بینید درست است که Hash ها نتیجه کد شدن یک سری داده هستند، اما ماهیت آنها کاملا خلاف کدنگاری مرسوم در یک ارتباط بوده و هیچ مسیر بازگشتی برایشان نیست و هرگز نمی شود از یک Hash به اصل داده رسید. بنابراین هکرها هم نمی توانند به سادگی به کلمه عبور دست یابند و در این اصل شبهه و استثنایی نیست. پس هکرها چه می توانند بکنند؟
 
هکرها می توانند کلمه عبور Hash شده را با جدولی از کلمات عبور مشخص و از پیش Hash شده مقایسه کنند و اگر مورد یکسانی یافت شد، آنوقت کار تمام است! به چنین جدولی در اصطلاح جدول رنگین کمان یا Rainbow table می گویند.

هکرها می توانند فایلی متنی از کلمات عبوری که میان کاربران مرسوم بوده را به کار گیرند و تک تک آن کلمات را به صورت بلادرنگ و توسط یک نرم افزار ویژه Hash نموده و آن را با Hash کلمه عبور کاربر مقایسه کنند تا به یک مورد همانند و یکسان برسند. به چنین فایلی در اصطلاح Dictionary می گویند.

هکرها می توانند توسط یک نرم افزار که کاراکترهای تصادفی با طول مشخص را تولید می کند، کلمه عبور را بارها حدس زده و به آن دست یابند. آن نرم افزار تمامی احتمالات را می سنجد. چنین حمله ای را Brute-force attack می گویند.
 
تمامی این حملات بر توان پردازش کامپیوتری هکرها تکیه دارند. حمله "جدول رنگین کمان" را می توان به کمک کمی "نمک" غیر ممکن نمود. Salt یا نمک به مجموعه ای از کاراکترهای تصادفی گفته می شود که توسط الگوریتم کدنگاری به کلمه عبور افزوده شده و پس از آن کلمه عبور به Hash تبدیل می گردد.

نتیجه اینکه حدس زدن آن با یک جدول از پیش پردازش شده همچون جدول رنگین کمان ناممکن خواهد بود. امروزه تمامی شرکت های بزرگ عرصه فناوری Salt را در الگوریتم خود لحاظ می کنند. شرکت ها تابعی (Function) که بر اساس آن Salt به کلمه عبور افزوده می شود را افشا نمی کنند. اما اگر به هر شکل افشا شود، امکان دور زدن سیستم امنیتی با دو روش بعدی ممکن می شود.
 
برای جلوگیری از حملات مبتنی بر Dictionary، نبایستی به سراغ کلمات عبور ساده و مرسوم همانند نام ماه ها، افراد، سال تولد، ترکیب ساده اعداد و مانند آن برویم. بایستی کلمه عبور نامرسوم و تا جای ممکن غیر قابل پیش بینی باشد.
 
حمله Brute-force به شدت زمان بر است و هکر ها مجبورند محدوده کارکترهای کلمه عبور را از پیش حدس بزنند. هر چه تعداد کاراکترهای احتمالی بیشتر شود، یافتن کلمه عبور زمان بیشتری می برد. از طرفی افزایش احتمالات هم به شدت به زمان دست یابی می افزاید.

فرضا اگر هکر نرم افزار را طوری تنظیم کند که دنبال پسوردی 5 کارکتری متشکل از اعداد 0 تا 9 و حروف کوچک انگلیسی بگردد، زمان محاسبه خیلی با هنگامی که حروف بزرگ هم به محاسبه وارد شوند فرق دارد.

حال فرض کنید کاراکترهایی چون @ و & هم وارد بازی شوند! برای یک حساب سر انگشتی، یافتن کلمه عبوری متشکل از حروف بزرگ و کوچک انگلیسی، عدد و کاراکترهای تصادفی با طول 13 کاراکتر، چند سالی برای یک سیستم پردازشی قدرتمند زمان می برد (کاری به سوپر کامپیوتر ها و Mainframe ها نداریم!).
 
همانطور که می بینید کلمه عبور بایستی در نهایت حدس زده شود. بنابراین در انتهای این مسیر همه چیز به شمای کاربر باز میگردد؛ اینکه در انتخاب و تقویت کلمه عبور خود چقدر وسواس و دقت به خرج دهید.

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

منبع: مجله سخت‌افزار
کلمات کلیدی : دانش و فناوری-کلمه عبور
 


نظراتی كه به تعميق و گسترش بحث كمك كنند، پس از مدت كوتاهی در معرض ملاحظه و قضاوت ديگر بينندگان قرار مي گيرد. نظرات حاوی توهين، افترا، تهمت و نيش به ديگران منتشر نمی شود.