بیا یک نگاهی بیندازیم.
کارهایی که نباید انجام داد
ذخیره رمزهای عبور در متن ساده ایده خوبی نیست زیرا هر کسی که دسترسی داخلی دارد می تواند آنها را ببیند.
ذخیره سازی هش رمز عبور به طور مستقیم کافی نیست زیرا برای حملات پیش از محاسباتی، مانند جداول rainbow ، قابل حدس زدن می باشد
برای کاهش حملات پیش محاسباتی، رمزهای عبور را salt می زنیم.
salt چیست ؟
طبق دستورالعمل های OWASP، “یک salt رشته ای منحصر به فرد است که به طور تصادفی تولید می شود که به عنوان بخشی از فرآیند هش به هر رمز عبور اضافه می شود”.
چگونه رمز و salt را ذخیره کنیم؟
1- salt به معنای مخفی بودن نیست و می توان آن را به صورت متن ساده در پایگاه داده ذخیره کرد. برای اطمینان از منحصر به فرد بودن نتیجه هش برای هر یک استفاده می شود
کلمه عبور.
2- رمز عبور را می توان با فرمت زیر در پایگاه داده ذخیره کرد:
𝘩𝘢𝘴𝘩( 𝘱𝘢𝘴𝘴𝘸𝘰𝘳𝘥 + 𝘴𝘢𝘭𝘵)
چگونه یک رمز عبور را تایید کنیم
برای تأیید اعتبار رمز عبور، میتوان مراحل زیر را طی کرد:
1- یک کلاینت رمز را وارد می کند.
2- سیستم salt مربوطه را از پایگاه داده واکشی می کند.
3- سیستم salt را به رمز عبور اضافه می کند و آن را هش می کند. بیایید مقدار هش شده را H1 بنامیم.
4 – سیستم H1 و H2 را با هم مقایسه می کند، که در آن H2 هش ذخیره شده در پایگاه داده است. اگر آنها یکسان هستند، رمز عبور معتبر است.
شما از چه مکانیسم های دیگری می توانیم برای اطمینان از ایمنی رمز عبور استفاده کنیم؟