ایجاد و استفاده از کلمات عبور مستحکم به هیچ عنوان سخت نیست. کلمات عبور مناسب و قابل اطمینان برای حفظ امنیت اطلاعات موجود در یک پیسی حیاتی هستند. اما اگر از یک کلمه عبور ناصحیح (از لحاظ ساختار) استفاده کنید، قویترین الگوریتمهای رمزگذاری دنیا یا روالهای احراز هویت هم نمیتوانند امنیت اطلاعات شما را تضمین کنند.
همچنین اگر کلمه عبور شما زمانی امن بوده، تضمینی وجود ندارد که بعداً نیز چنین امنیتی وجود داشته باشد، کلمات عبوری که تا همین چند سال پیش به اندازه کافی امن بودند، امروزه به دلیل پیشرفتهای عظیم سختافزاری و نرمافزاری به شدت آسیبپذیر و ناامن شدهاند. هکرها ابزارهای پیشرفتهای دارند که توانایی حدس زدن یکصدهزار کلمه ترکیبی در ثانیه را دارند. در گذشته برای اینکه یک کلمه عبور شناسایی شود، با استفاده از ابزار و تکنیکهای موجود ماهها و حتی گاهی سالها زمان نیاز بود، اما اکنون با توجه به پیشرفتهای موجود، زمان شکسته شدن یک اسم رمز به چند دقیقه یا نهایتاً یک ساعت کوتاه شده است!
طراحی یک حمله به کلمه عبور، به مهارت بسیار کمی نیاز دارد. سادهترین نوع حمله برپایه استفاده از یک فهرست یا واژهنامه طرحریزی میشود. نرمافزارهای شکننده کلمات عبور، به سادگی شروع به آزمایش تمام کلمات فهرست شده در یک واژهنامه (که حاوی ترکیبات مختلف الفبایی است) میکنند. هرکلمهای که با کلمه عبور مطابقت داشته باشد، به عنوان کلمهعبور نمایش داده میشود. این نوع نرمافزارها از الگوریتمهای واقعاً سادهای استفاده میکنند و نیازی به استفاده از آنالیزهای عمقی سنگین یا تشخیص تکنیکهای پیچیده رمزنگاری ندارند. در حقیقت این روش در حیطه مهارتهای یک دانشآموز دبیرستانی است و هنوز هم توانایی شکستن بسیاری از کلمات عبور را دارد.
به همین نحو، کلمات عبوری که بر اساس واژهها و اصطلاحات روزمره و رایج انتخاب شوند، حتی در برابر چنین حملههایی نیز بسیار سست و ضعیف هستند. هکرها همچنین دارای واژهنامههایی متشکل از عبارات مشهور و پرکاربرد هستند که به طور اختصاصی برای همین کار طراحی و ساخته شدهاند. همچنین هر کلمه عبوری که بر اساس یکی از عبارتهای مشهور ساخته شده باشد، به راحتی قابل تشخیص خواهد بود.
تغییر دادن جایگاه کاراکترها یا تغییر در اندازه (درشت یا کوچک بودن حروف) آنها، به منظور پوشاندن یا تغییر دادن یک اصطلاح رایج به کمک روشهای معمول کار را برای یک هکر تنها اندکی پیچیدهتر خواهد کرد. به عنوان مثال، برخی از افراد یک کلمه را برای کلمه عبور انتخاب میکنند و اقدام به تغییر دادن مکان برخی کاراکترها یا اندازه آنها مینمایند و با اینکار (تغییر دادن یا اصطلاحاً شیفت دادن کاراکترها به مکان بعدی یا قبلی خود) در ظاهرِ کلمه اصلی تغییر به وجود میآورند. در نتیجه عبارت حاصل کمی نامفهوم خواهد بود، اما واقعاً اینگونه نیست. تشخیص الگوی اصلی واژه به کمک کامپیوتر به راحتی امکانپذیر است.
استفاده از ترکیبات حروف و عدد به عنوان روشی برای پیچیدهکردن کلمه عبور راه مفیدی است، اما این روش نیز امروزه به تنهایی کارایی چندانی نخواهد داشت. بهطور مشابه استفاده از کلمات یا عبارات رایج و تلاش برای پیچیدهکردن آنها به کمک تغییر اندازه حروف به صورت تصادفی یا اضافه کردن مقادیر عددی تصادفی تنها تکنیکهایی هستند که کمی کار را پیچیدهتر کردهاند و امنیت دلخواه را به یک کلمهعبور نمیدهند. به عنوان مثال، یک ابزار شکستن کلمه عبور (نرمافزار) که روی یک کامپیوتر کند پنتیوم 3 پانصد مگاهرتزی اجرا میشد، توانست کلمه عبور را تنها در مدت 26 ثانیه تشخیص دهد. مطمئناً کامپیوترهای قدرتمند امروزی توانایی تشخیص چنین تکنیکهایی را در کسر کوچکی از ثانیه دارند. 1
چه چیزی یک کلمه عبور خوب میسازد؟
بالاخره چگونه یک کلمه عبور خوب طراحی کنیم؟ در اینجا قصد داریم در مورد سه فاکتور اصلی و تعیینکننده صحبت کنیم: طول، پیچیدگی و تصادفی بودن (غیر قابل پیشبینی بودن).
بحث را با غیر قابل پیشبینی بودنِ یک کلمه عبور آغاز میکنیم. یک کلمه عبور باید از یک ترکیب منحصر به فرد از کاراکترها برخوردار باشد. در عین حال نباید به هیچ شکل یا فرم خاصی در هیچ دایره`المعارف، کتاب یا مرجعی یافت شود. کلمهعبور همچنین نباید بر اساس تغییر یا جانشانی کلمات یا عبارات رایج استوار باشد. در صورت وجود هرگونه الگوی اصولی در ساختارکلمه عبور - غیرقابل پیشبینی نبودن صرف - به راحتی شکسته میشود.
اهمیت فاکتور پیچیدگی به راحتی قابل درک است. به عنوان مثال، اگر شما خود را به استفاده از کلمات کوچک الفبای انگلیسی محدود کنید (اصطلاحا Lowercase)، هر کاراکتر از کلمه عبور شما تنها میتواند یکی از 26 حالت ممکن را دارا باشد. با استفاده از حروف کوچک و بزرگ به سادگی این مقدار را به 52 حالت مختلف افزایش دادهاید، اضافه کردن اعداد محدوده 0 تا 9 نیز مقدار را به 62 حالت متفاوت خواهید داشت. نشانهگذاری و استفاده از سمبلهای گرافیکی معمول و موجود روی صفحه کلیدهای انگلیسی نظیر $ ، % ، * ، ؛ و ... در نهایت به شما امکان استفاده از حدود 92 حالت مختلف و منحصر به فرد برای هر کاراکتر از کلمه عبور را میدهد. به وضوح مشاهده میشود که استفاده از تمام کاراکترهای موجود روی صفحه کلید انگلیسی میزان پیچیدگی کلمه عبور را افزایش میدهد.
طول کلمه عبور نیز بسیار مهم است. یک کلمه عبور دوحرفی با در نظر گرفتن اینکه هر حرف امکان استفاده از هر 92 حالت ذکر شده قبلی را دارد، توانایی ایجاد 8464 ترکیب مختلف را دارد. استفاده از سه کاراکتر امکان به وجود آمدن 778688 ترکیب مختلف، چهار کاراکتر 71639296 حالت و پنج کاراکتر امکان به وجود آمدن 6590815232 ترکیب را به شما میدهد. به وضوح مشاهده میشود که افزایش تعداد حروف یک کلمه عبور میتواند به صورت نمایی، ترکیبات ممکن برای یک کلمه عبور و در نتیجه زمان جستوجو به دنبال یافتن ترکیب اصلی را افزایش دهد.
اما نکته وحشتناک در مورد عدد 6590815232 این است که این رقم با توجه به شرایط و معیارهای انسانی عدد بسیار بزرگی است نه برای یک پیسی. سایت Last Bit ابزاری در اختیار شما میگذارد که میتوانید در این مورد کمی بررسی کنید. با مراجعه به آدرس، این ماشینحساب آنلاین به شما امکان میدهد به کمک متغیرهای دادهشده پی ببرید که چه مدت طول میکشد تا یک برنامه شکستن کلمه عبور با استفاده از روش موسوم به
Brut-force کلمات عبور با طولهای مختلف و میزان پیچیدگی متفاوت را بشکند.
نکته در مورد آیتم در این ماشین محاسبه این است که این آیتم تنها به سرعت پیسی وابسته نیست، بلکه تاحدود زیادی به توانمندی و قدرت نرمافزار شکننده کلمه عبور بستگی دارد؛ بسته به اینکه از چه متغیرهایی استفاده کند. اما این ماشین حساب بر اساس توان محاسباتی کامپیوترها و برنامههای امروزی طراحی نشده و فناوری ساخت آن نیز کمی قدیمی است و توانایی نشان دادن قدرت کامپیوترهای امروزی را ندارد. برای مشاهده واقعبینانه سطح خطر فعلی، مقدار متغیر را با مقادیر مختلف مقداردهی کنید.
روشهای مختلفی وجود دارند که به کمک آنها میتوان دریافت چگونه کلمه عبوری طراحی کنیم که هم به قدری پیچیده باشد که دیگران نتوانند آن را تشخیص دهند و هم شما توانایی به خاطر سپاری آن را داشته باشید. به عنوان نمونه، در بولتن سال 2003 ما در مورد ایده بحث کردیم.2 تا زمانی که مثالهای این مقاله منسوخ نشدهاند، ایده استفاده از تکنیک یک ایده کامل و بینقص است. در واقع Passphraseها یکی از راههای تولید کلمات عبور طولانی، ایمن و به یادماندنی هستند.
پیش از هرچیز، Passphrase میتواند هر طول دلخواهی داشته باشد: عدد زوج بیست، چهل یا شصت کاراکتری یا حتی بیشتر؛ بدون داشتن هیچگونه مشکل. ولی چون به جای استفاده از تعدادی کاراکتر تصادفی از مجموعهای از لغات ساخته میشوند، در مقایسه با کلمات عبور مرسوم با طول یکسان راحتتر به خاطر سپرده میشوند.
اما تمام Passphraseها یکسان و شبیه هم نیستند. پیشتر دیدیم که عبارتی که در دایره`المعارفها یا مجموعههای نقل قول و سخنان نغز یافت میشوند، نمونههای بسیار بدی برای انتخاب به عنوان کلمه عبور هستند. در اینجا نیز یک Passphrase هر قدرهم که طولانی باشد، اگر بر اساس یک جمله معروف طراحی شده باشد، به راحتی قابل تشخیص خواهد بود.
همچنین Passphraseهایی که از قاعده و ساختار مرسوم و رایج یا از ساختار گرامری مشخصی نیز استفاده کنند، به راحتی توسط برنامههای هوشمند قابل استخراج خواهند بود. بنابراین بهترین Passphrase آن است که از قاعده و روش گرامری مرسومی استفاده نکند.
یکی از تکنیکهای موجود، تکنیک <ضربه بدون منطق> یا Shocking nonsense است. ضربه یا تکان بدون منطق به این معنی است که برای ساخت یک عبارت عبور از عبارات یا جملاتی استفاده شود که هم بیمعنی و یاوه باشد و هم در فرهنگ بومی و منطقهای کاربران تا حدودی تکاندهنده و منزجرکننده باشد. استفاده از این تکنیک ایده خوبی است؛ چرا که ماهیت یک کلمه عبور فاش نشدنی است و به این دلیل نمیتوان آن را نزد کسی افشا کرد.
البته در شرکتها و سازمانها، استفاده از این تکنیک باید با دقت بسیار زیاد و تحت نظر مقام مافوق صورت گیرد. خط مشی و سیاست امنیتیای که استفاده از این تکنیک را موجه میکند این است که طرحریزی یک حمله مبتنی بر دایره`المعارف یا جستوجوی کلمات عبور مبتنی بر دستور زبان خاص با استفاده از روشهای مرسوم به نتیجه نخواهد رسید؛ زیرا چنین کلمات یا عباراتی در دایره`المعارفها و فرهنگ لغات معمول یافت نمیشوند و در مکالمات روزمره نیز جایگاهی ندارند. اما هنوز این خط مشی در محاکم قضایی چندان مطلوب نیست.
خوشبختانه هنوز هم راههای مناسبی برای تهیه کلمات عبور امن وجود دارد. یکی از بهترین ابزارها که به صورت رایگان نیز در دسترس است، 3DiceWare، تهیه شده توسط A. G. Reinhold است. روش کار به این صورت است که از یک یا چندین ماتریس چند ظرفیتی (شبیهسازی یک تاس شش وجهی) جهت تولید فهرستی از اعداد واقعاً تصادفی استفاده میکند.
با استفاده از فهرست اعداد تصادفی تولید شده اقدام به جستوجوی کلمات در فهرستی شامل هشتهزار کلمه و کاراکتر و رشتههای اعداد مینمایید که به خاطرسپاری آنها بسیار ساده است. با استفاده از قطعات تولید شده توسط این تکنیک و در کنارهم قراردادن آنها، میتوانید عبارات عبور معقولانهای بسازید که به راحتی قابل تشخیصدادن یا شکسته شدن نیستند. این عبارتهای تولید شده نیز زمانی که از ترکیب منطقیای از حروف کوچک و بزرگ انگلیسی، اعداد و نشانهگذاری استفاده کنید، غیرقابل دسترستر خواهد شد.
 |
شکل 1 |
راهکار جایگزین در شرایط خاص
زمانی که اجازه استفاده از کلمات یا عبارات عبور طولانی را نداریم، چه راهی در پیش است ؟
عبارات عبور یکی از راههای مطمئن جهت رسیدن به یک کلمه عبور قدرتمند و مقاوم در برابر شکسته شدن است، اما نکته شگفتانگیز و البته کمی متأثرکننده اینجاست که هنوز هم سختافزارها و نرمافزارهایی وجود دارند که اجازه استفاده از رشتههای طولانی جهت کاربری به عنوان کلمه عبور را نمیدهند و شما را به استفاده از کلمات عبور کوتاه در حد شش یا هشت کاراکتر محدود میکنند. در این گونه موارد Passphrase متأسفانه سودمند نخواهد بود و بهترین راه استفاده از کلمات عبور تصادفی با ترکیبی از حروف کوچک، حروف بزرگ، اعداد و کاراکترهای نشانه گذاری است.
4PassGen2 یک اپلت جاوای آنلاین و رایگان جهت تولید کلمه عبور است که به خوبی از پس تولید انواع کلمه عبور برای Login کردن، تولید کلیدهای رمزگشایی WEP و انواع دیگر کلیدها برمیآید. (شکل 1) اما اگر ترجیح میدهید از برنامهای به صورت محلی و آفلاین جهت تولید کلیدهای مورد نظرتان استفاده کنید، PWGen for Windows انتخاب خوبی است.
با این حال من ترجیح میدهم از 5Roboform استفاده کنم؛ زیرا توانایی این برنامه در تولید کلمات عبور مطمئن خلاصه نمیشود، بلکه این برنامه توانایی نگهداری از کلمات عبور من را نیز دارد. (شکل 2) به عنوان نمونه، برای جلوگیری از دسترسی آسان یک هکر به شبکه وایرلس من و تغییر تنظیمات امنیتی AP آن، میتوانم نرمافزار مدیریتی WAP آن را به کمک یک کلمه عبور بیست کاراکتری با ترکیبی از حروف کوچک و بزرگ به اضافه اعداد و کاراکترهای نشانهگذاری محافظت کنم.
 |
شکل 2 |
یک مثال ساده از چنین کلمه عبوری (در این مورد خاص من از Roboform خواستم یک نمونه کلمه عبور برای نمایش آن به شما طراحی کند) چنین چیزی است:(mkz!3;$NyY$Pr*u&%#rp).
احتمال اینکه کسی توانایی حدس زدن چنین ترکیبی را داشته باشد، کاملاً منتفی است. ( ترکیبی از بیست کاراکتر با امکان جانشانی 92 کاراکتر در هر مکان؛ با در نظر گرفتن مجوز تکرار هر کاراکتر! محاسبه تعداد حالات ممکن آن نیاز به دانش ریاضی چندانی ندارد. کافی است بیست بار عدد 92 را در خودش ضرب کنید؛ به عبارتی 92 به توان بیست.
البته توانایی من نیز در به خاطرسپاری چنین چیزی کاملاً منتفی است، اما من به Roboform اجازه میدهم کلمه عبورم را ذخیره کند و به کمک متدهای پیشرفته DES از آن محافظت نماید. کاری که من باید انجام دهم، به خاطر سپاری تنها یک کلمه عبور است. در واقع کلمه عبور اصلی برای خود Roboform بقیه کلمات عبور را خود برنامه به خوبی بهخاطر خواهد سپارد. این برنامه توانایی ذخیره تعداد بسیار زیادی کلمه عبور و همچنین توانایی تولید کلمات عبور تصادفی با حداکثر طول 512 کاراکتر را دارد.
شاید یکی از نکات منفی این برنامه این باشد که نسخه رایگان آن تواناییهای محدودی دارد. در واقع این برنامه یک محصول تجاری است. همچنین به دلیل اینکه اختصاصی است، مشخص نیست به چه صورت به رمزگذاری یا تولید کلمات عبور اقدام مینماید. به عبارتی، نحوه عملکرد برنامه مشخص نیست. ممکن است این فاکتور در استفادههای شخصی زیاد مشکلساز نباشد، اما در وضعیتهای امنیتی سطح بالا یک ابزار تولید کلمات عبور منبع باز مانند PWGen، میتواند انتخاب بهتری باشد.
6Password Safe(شکل 3) و 7KeePass، (شکل 4) به عنوان دو ابزار اپنسورس دیگر میتوانند در مدیریت و تولید و نگهداری کلمات عبور به شما کمک کنند؛ بدون اینکه نگرانیای بابت نحوه عملکردشان داشته باشید.
 |
شکل 3 |
در نهایت، در هر جایی که امنیت برای ما اهمیت داشته باشد، باید کلمات عبور کوتاهتر از هشت کاراکتر را فراموش کنیم. در واقع تمام کلمات عبور من در محدوده میان هشت تا بیست کاراکتر با ترکیبی از حروف کوچک و بزرگ، اعداد، علامتهای نشانهگذاری و سمبولهای گرافیکی موجود روی صفحهکلید ( همانند؛ ، $، % ، ّ و ... ) قراردارند و به صورت تصادفی تولید شدهاند. برای برنامههای حساستر، کلمات عبور طولانیتر و با ترکیب بیشتری از موارد ذکر شده بالا را تهیه میکنم.
 |
شکل 4 |
در موارد خاص، جایی که نیاز به سطح امنیتی بسیار بالا داشته باشم یا امکان استفاده از کلمات عبور طولانی تر از بیست کاراکتر را داشته باشم، یا قابلحمل بودن مد نظرم باشد ( یعنی زمانی که باید کلمهعبور را بدون کمک نرمافزار خاصی به خاطر بسپارم)، مطمئناً از کلمات عبور (Passphrase) استفاده خواهم کرد.
البته روش و تکنیک شما میتواند کاملاً متفاوت از موارد ذکر شده در این مقاله باشد. موارد مطرحشده تنها به عنوان مثال ذکر گردیدند. اما نکته مهم در مورد کلمات عبور کوتاه یا کلمات عبور طولانی که به راحتی تشخیص داده میشوند این است که کاملاً بیاستفاده هستند. اگر خط مشی خود را در مورد تهیه کلمات عبور در طی چند سال اخیر تغییر ندادهاید، اکنون زمان مناسبی برای پرداختن به این کار است. همچنین زمان مناسبی جهت توجه به ابزارهایی است که امکان تولید و استفاده از کلمات عبور طولانیتر و مطمئنتری را به راحتی در اختیار ما قرار میدهند.
پی نوشت
1- توان محاسباتی پردازندهها به سرعت در حال افزایش است و دانشمندان به دنبال دستیابی به سرعتهای بیشتری هستند.
2- تکنیک جدید برای انتخاب کلمات عبور. در مقابل پین کد چهاررقمی که ترکیبی از اعداد است و کلمات عبور که ترکیبی از اعداد و حروف است و گاه میتواند طول محدودی داشته باشد استفاده از Passphrase یا <عبارت عبور> امکان استفاده از عبارتهایی با طول بیشتر از کلمه عبور را میدهد و طبعاً امنیت بیشتری را به ارمغان میآورد. برای آشنایی بیشتر با این روش میتوانید به آدرس مراجعه کنید.
3- http://world.std.com/reinhold/diceware.html.diceWare4
4- www.brothersoft.com/security/misc_passwords/passgen_download_21706.html.5.PassGen2
5- www.roboform.com.6.Roboform
6- http://passwordsafe.sourceforge.net.passwordSafa
7- http://keepass.sourceforge.net.KeePass
سلام
اینها اصلا در حد سواد من نیست .....
من با یک واقعیت دیگه از دنیای خودم به روز هستم
---
موفق باشی