ممکن است در مورد ایمن کردن رمزهای عبور، اصطلاح “salting” را شنیده باشید، اما این چیست و واقعاً نمک زدن چگونه کار می کند؟
امنیت رمز عبور بخش مهمی از امنیت سایبری است. رمز عبور در همه جا استفاده می شود. هنگامی که وارد یک حساب کاربری می شوید، رمز عبوری را وارد می کنید که برای تأیید هویت شما استفاده می شود.
ممکن است اصطلاح “salting” را در رابطه با رمزهای عبور شنیده باشید، پس نمک زدن چیست؟ چگونه رمزهای عبور در برابر هکرها ایمن می شوند؟ و آیا نمک زدن رمزهای عبور شما را ایمن نگه می دارد؟
نمک زدن چیست؟
Salting فرآیند اضافه کردن رشته های تصادفی منحصر به فرد از کاراکترها به رمزهای عبور در پایگاه داده یا هر رمز عبور قبل از هش شدن رمز عبور است (اصطلاحی که به آن باز خواهیم گشت). این کار برای تغییر هش و ایمن تر کردن رمز عبور انجام می شود. رشته کاراکترهایی که به رمز عبور اضافه می شود salt نامیده می شود. نمک را می توان در جلو یا پشت یک رمز عبور اضافه کرد.
نمک عمومی نیست و فقط برای سایت شناخته شده است.
نمک زدن چگونه کار می کند؟
هنگامی که یک حساب کاربری در یک وبسایت یا برنامه ایجاد میکنید، رمز عبوری که استفاده میکنید باید ذخیره شود، بنابراین میتوانید دفعه بعد که از سایت بازدید میکنید تأیید شوید. اما این رمز عبور را نمی توان به صورت متن ساده یعنی بدون هیچ گونه قالب بندی یا کدگذاری ذخیره کرد. رمز عبور باید هش شود تا هکرها نتوانند به راحتی به حساب شما دسترسی پیدا کنند.
بگویید که با این رمز عبور وارد سایتی شده اید: myPassword. قبل از اینکه رمز عبور هش شود، یک مقدار salt به آن اضافه می شود. اگر مقدار salt برای آن سایت یا کاربر خاص MUOrocks باشد، رمز عبور نمکشده شما myPasswordMUOrocks میشود.
رمز عبور سالت شده سپس هش می شود و در پایگاه داده در کنار سایر هش های رمز عبور ذخیره می شود.
تفاوت بین رمزگذاری، هش کردن و نمک زدن چیست؟
Salting، هش کردن، و رمزگذاری تکنیکهای امنیتی هستند که هر روز در سایتها و سیستمها استفاده میشوند. آنها اصطلاحات رمزنگاری لازم برای امنیت رمز عبور هستند. اما تفاوت آنها چگونه است؟
رمزگذاری
رمزگذاری شکلی از رمزنگاری است که در آن اطلاعات به صورت ریاضی رمزگذاری میشوند و تنها توسط شخصی با یک کلید مجاز قابل دسترسی و رمزگشایی است. اطلاعاتی که باید ایمن شوند با استفاده از الگوریتمی که اطلاعات را برای کاربران غیرمجاز غیرقابل رمزگشایی میکند، از متن ساده به متن رمزی ترجمه میشود.
رمزگذاری یک فرآیند دو طرفه است، به این معنی که داده های رمزگذاری شده می توانند معکوس و خوانده شوند، اما فقط توسط کسانی که کلید رمزگشایی مناسب را دارند.
هش کردن
هش کردن فرآیند تبدیل اطلاعاتی است که میخواهید امن نگه داشته شوند به رشتهای از کاراکترها که به نام هش نیز شناخته میشوند. این اساساً اطلاعات را با استفاده از یک الگوریتم درهم میکشد.
هش کردن یک تابع رمزنگاری یک طرفه است و این بدان معنی است که بر خلاف رمزگذاری، به طور کلی نمی توان آن را معکوس کرد. تنها راهی که می توانید یک هش را رمزگشایی کنید، مقایسه آن با هش دیگری با مقدار متن ساده شناخته شده است.
از هش برای تأیید صحت شما استفاده می شود. هنگامی که وارد یک وب سایت می شوید و رمز عبور خود را تایپ می کنید، هش رمز عبور شما با هش شناسایی شده با حساب کاربری شما مقایسه می شود. اگر دو هش یکسان باشند، به شما اجازه دسترسی به سایت داده می شود.
نمک زدن
Salting لایه دیگری از امنیت است که به هش اضافه شده است. برای ایمنتر کردن هش، رشتههای منحصربهفردی از کاراکترها قبل از هش به رمز عبور اضافه میشوند تا هش را بهطور کلی تغییر دهند.
چرا رمزهای عبور نمک زده می شوند؟
نمک زدن در امنیت بسیار مهم است. این به کاهش خطر دریافت رمز عبور توسط هکرهای مخرب کمک می کند.
صرفاً ذخیره گذرواژهها در پایگاههای اطلاعاتی روشی بسیار ناامن برای حفظ حریم خصوصی کاربران است. هر هکر ماهری می تواند وارد پایگاه داده شود و به تمام حساب های موجود در سایت دسترسی داشته باشد.
سپس هش آمد. تا زمانی که هکرها از آن استفاده کنند، امنیت رمزهای عبور را بهبود بخشید. هکرها از حملات brute-force، حملات فرهنگ لغت، پاشش رمز عبور یا جداول رنگین کمان برای مهندسی معکوس گذرواژه ها برای به دست آوردن اعتبار ورود استفاده می کنند.
برای تقویت رمزهای عبور ضعیف
نمک زدن سطح دیگری از امنیت را به سایت اضافه می کند. هنگامی که یک مقدار salt به رمز عبور اضافه می شود، هش به طور کامل تغییر می کند. این کار مهندسی معکوس رمز عبور را بسیار سخت می کند و جدول رنگین کمان را بی فایده می کند. در اینجا یک مثال است.
همانطور که در جدول مشاهده می کنید، هش ها کاملاً متفاوت هستند. رمز عبور هنگام بازدید از سایت ثابت می ماند، اما هش در برابر سوء استفاده ایمن تر است. هنگامی که کاربران از رمزهای عبور ضعیف و محبوبی مانند “password” یا “12345” استفاده می کنند، نمک زدن اهمیت ویژه ای دارد. نمک زدن خطر ناشی از رمزهای عبور ضعیف را کاهش می دهد.
برای منحصر به فرد کردن هش رمز عبور
زمانی که دو یا چند کاربر رمز عبور یکسانی داشته باشند، نمک زدن نیز مهم است. افزودن نمک های تصادفی مختلف به هر رمز عبور به منحصر به فرد شدن هر رمز کمک می کند. به عنوان مثال، اگر رمز عبور شما iL0veCh3ese است! و کاربر دیگری، Chioma، دقیقاً آن رمز عبور را دارد، از salting برای منحصربهفرد کردن هشهای رمز عبور استفاده میشود.
حالا این پسوردها اگرچه یکسان هستند اما هش های کاملا متفاوتی دارند. وقتی به هش ها نگاه می کنید، هرگز نمی توانید تشخیص دهید که این دو کاربر یک رمز عبور مشترک دارند.
انتخاب یک نمک خوب
انتخاب یک نمک خوب به اندازه انتخاب رمز عبور مهم است. یک نمک خوب باید منحصر به فرد باشد. اطمینان حاصل کنید که از کاراکترها و/یا نمادهای منحصر به فرد استفاده می کنید که هش شما را ایمن تر می کند. نمک یا نمکی که برای وب سایت خود انتخاب می کنید نباید قابل پیش بینی یا به راحتی حدس زدن باشد، مانند نام سایت یا کاربر. یکی دیگر از مزیت های اضافه شده استفاده از نمک های طولانی است.
بهترین راه برای انتخاب یک نمک منحصر به فرد و قوی استفاده از مولدهای ارزش نمک است. اینها به شما کمک می کند نمک های تصادفی و قوی ایجاد کنید تا امنیت خود را افزایش دهید.
نمک ها را همراه با پایگاه داده رمز عبور ذخیره نکنید و از نمک های یکسان برای همه رمزهای عبور استفاده نکنید. یکی دیگر از نکات خوب نمک این است که هر بار که کاربر رمز عبور خود را تغییر می دهد، نمک را تغییر دهید.
آیا نمک زدن در افزایش امنیت موثر است؟
آره. نمک زدن امنیت رمز عبور را افزایش می دهد. هنگامی که رمز عبور را نمک می زنید، برای هکر غیرممکن است که با استفاده از جداول فرهنگ لغت یا جداول رنگین کمان رمز عبور را بشکند. اجبار بی رحمانه رمز عبور هش شده نیز بیهوده است زیرا زمان زیادی طول می کشد تا ترکیب کاملی از هش پیدا شود. به این ترتیب رمزهای عبور از هکرها امن تر و ایمن تر هستند.