یک اسکریپت Bash بنویسید که قابلیت ثبت‌نام کاربر با ذخیره‌ی نام کاربری و هش SHA-256 رمز عبور (با استفاده از یک salt تصادفی) در فایل امن و همچنین بررسی ورود کاربران با مقایسه‌ی هش‌ها را فراهم کند.

3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:30

0.0

در اسکریپت از read -s برای خواندن رمز عبور به‌صورت مخفی استفاده کنید، برای تولید salt امن از /dev/urandom و base64 یا hexdump بهره ببرید، و هش را با دستوراتی مانند openssl dgst -sha256 یا sha256sum بر پایه‌ی concat کردن salt+password محاسبه کنید. اطلاعات را به صورت username:salt:hash در یک فایل ذخیره کنید و دسترسی فایل را با chmod 600 محدود نمایید؛ برای ورود، ابتدا salt مربوط به نام کاربری را از فایل بخوانید، هش جدید را بسازید و با مقدار ذخیره‌شده مقایسه کنید. حین پیاده‌سازی به نکات امنیتی ساده توجه کنید (عدم ذخیره‌ی متن‌خام، جلوگیری از نمایش رمز در ترمینال، و مدیریت درست مجوزهای فایل).

توسط پژوهشگر در 221 روز قبل ساعت 01:30
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arash در 221 روز قبل ساعت 13:03

اگرچه استفاده از salt تصادفی و هش SHA-256 برای مخفی‌سازی رمز عبور مفید است، اما بهتر است از یک KDF مانند PBKDF2، bcrypt یا scrypt استفاده کنید تا امنیت بیشتری در برابر حملات brute-force و rainbow tables فراهم شود. به‌جای ترکیب ساده salt+password برای هش، از یک تابع مشتق کلیدی با چند دور محاسبه استفاده کنید و salt را برای هر کاربر به‌طور جداگانه ذخیره کنید. همچنین اطمینان حاصل کنید که فایل حاوی نام کاربری، salt و hash با مجوزهای 600 و مالکیت معتبر نگهداری شود و رمز عبور با read -s گرفته شود تا نمایش داده نشود. برای ورود، می‌توانید محدودیت‌های تلاش ناموفق، تأخیر تدریجی یا قفل کاربری را اعمال کنید تا از سوءاستفاده جلوگیری شود و از نمایش پیام‌های جزئی دربارهٔ وجود نام کاربری جلوگیری کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری