در این قسمت از وبسایت پرووید آموزش تصویری Salt کردن پسورد ها را در زبان برنامه نویسی سی شارپ به شما آموزش خواهیم داد. امیدواریم که این مبحث امنیتی نیز مورد توجه تمامی برنامه نویسان عزیز و کاربران گرامی وبسایت پرووید قرار بگیرد. در ابتدا قصد داریم کمی در رابطه با مکانیزم Salting صحبت کنیم.
فرآیند Salting چیست؟
در حوزه Cryptography و رمزنگاری اطلاعات در واقع Salt یک داده ی تصادفی است. که به عنوان ورودی اضافه ای به توابع یک طرفه Hash اضافه می شود تا بتوانیم گذرواژه ها را به صورت ایمن تری ذخیره کنیم در رابطه با یادگیری مباحث رمزنگاری و Hashing می توانید از آموزش رمزنگاری Cryptography در دات نت استفاده کنید. همانطور که احتمالا می دانید ذخیره کردن گذرواژه ها و اطلاعات حساس دیگر در قالب متن ساده درون یک سیستم می تواند خطرات امنیتی متعددی را در صورت هک شدن و نفوذ به سیستم ایجاد کند. به همین دلیل همواره میبایست گذرواژههای کاربران و دیگر اطلاعات حساس را به صورت رمز شده ذخیره کرد. و عملیات Salt کردن یکی از این روش ها به حساب می آید. در روند پیاده سازی فرایند Salt کردن پسوردها یک Salt جدید به طور کاملاً تصادفی برای هر کدام از پسوردها در نظر گرفته میشود. در پیادهسازی معمول مکانیسم Salting به سادگی Salt و گذرواژه مورد نظر با یکدیگر الحاق شده و توسط یک تابع Hash مورد رمزنگاری قرار می گیرند.
پس از خروجی گرفتن از تابع Hash آن مقدار در دیتابیس برنامه ذخیره میشود. از آنجایی که با استفاده از مکانیزم Hash کردن گذرواژهها دیگر خود پسورد ها به صورت ساده ذخیره سازی نمی شوند به سادگی می توان عملیات Authentication را بدون خطر منتشر شدن گذرواژهها انجام داد. این موضوع باعث می شود که حتی اگر یک هکر به داده های حساس برنامه شما دسترسی پیدا کند نتواند از آنها استفاده نماید. علاوه بر این موضوع با استفاده از مکانیزم Salting می توانید بر روی حملات دیگر از قبیل Rainbow Table ها و یا جداول رنگین کمانی نیز برنامه را ایمن کنید. از آن جایی که نیازی ندارید مقادیر Salt را به خاطر بسپارید می توانید با استفاده از آن اندازهHash Table مورد نظر برای جلوگیری کردن از حملات هکر ها را تنظیم کنید. ضمناً به دلیل اینکه مقادیر Salt برای هر کدام از گذرواژه ها متفاوت خواهند بود این موضوع باعث میشود تا گذرواژه هایی که به طور مکرر مورد استفاده قرار می گیرند نیز محافظت بگردند. این موضوع برای آن دسته از کاربرانی که از یک گذرواژه در چندین وب سایت و یا وب اپلیکیشن مختلف استفاده میکنند نیز مفید است. چرا که عملیات Salt کردن پسورد ها برای سایت های مختلف متفاوت خواهد بود.
به عبارت دیگر اگر شما برای دو وبسایت متفاوت یک پسورد یکسان نیز ایجاد کنید به دلیل اضافه شدن داده های تصادفی به گذرواژه مقدار Hash شده متفاوت خواهد بود. از مفاهیم مربوط به Salt کردن و Hash کردن پسوردها در بسیاری از مکانیزم های رمزنگاری استفاده می شود. همانطور که خدمتتان عرض کردیم در آموزش رمزنگاری Cryptography در دات نت در رابطه با این موضوعات بیشتر صحبت کردهایم. علاوه بر این توصیه می کنیم از آموزش رایگان ساختن یک Secure TextBox در سی شارپ و آموزش رایگان کلاس SecureString در سی شارپ در سی شارپ نیز دیدن بفرمایید. در پایان امیدواریم که این آموزش فوق العاده از وبسایت پرووید نیز مورد توجه تمامی عزیزان قرار بگیرد.
مخاطبین این دوره آموزشی
این دوره آموزشی برای تمامی برنامه نویسان سی شارپ تنظیم شده است که میخواهند موضوعات مربوط به Hashing و Salting را برای محافظت کردن از پسورد ها فرا بگیرند. البته برنامه نویسانی که با زبان ها و تکنولوژی های دیگر نیز کار کردند میتوانند از موضوعات مربوط به این آموزش استفاده کنند.
پیش نیازها
برای درک بهتر موضوعات مطرح شده در این آموزش می بایست دانشی در رابطه با زبان برنامه نویسی سی شارپ و موضوعات مربوط به آن را داشته باشید. در این رابطه توصیه میکنیم که از آموزش سی شارپ دات نت در ویژوال استادیو دیدن فرمایید.