تصادفی ضعیف: ایمن سازی تولید اعداد تصادفی در برنامه های کاربردی بهار

به من خوش آمدید شیرجه عمیق سه قسمتی به دنیای رمزنگاری جاوا!

در این مجموعه، مشکلات رایجی را که می‌توانند امنیت برنامه‌های کاربردی Spring شما را به خطر بیندازند، بررسی می‌کنیم و راه‌حل‌های عملی و کد محور برای رفع آنها ارائه می‌کنیم. با این گفته، ما با نگاهی انتقادی به تولید اعداد تصادفی، یک جنبه اساسی از بسیاری از عملیات رمزنگاری، شروع می کنیم. شما یاد خواهید گرفت که چرا استفاده کنید java.util.Random می تواند خطرناک باشد و چگونه تصادفی ایمن را به درستی در برنامه های Spring خود پیاده سازی کنید.

این را تصور کنید: شما یک برنامه قوی Spring ساخته‌اید، تست‌های شما در حال گذراندن است، و شما آماده استقرار هستید. اما پنهان شدن در کد شما یک بمب ساعتی است – تولید اعداد تصادفی ناامن. این یک مسئله ظریف است که می تواند کل مدل امنیتی شما را تضعیف کند.

در دنیای رمزنگاری، تصادفی بودن پادشاه است. از تولید نشانه‌های جلسه گرفته تا ایجاد کلیدهای رمزگذاری، امنیت بسیاری از سیستم‌ها به غیرقابل پیش‌بینی بودن اعداد تصادفی بستگی دارد. اما نکته مهم اینجاست – همه اعداد تصادفی برابر نیستند.

بیایید به دام رایجی بپردازیم که حتی توسعه دهندگان باتجربه را دیده ام و بررسی کنیم که چگونه می توانیم آن را برطرف کنیم.

دام: java.util.Random

بسیاری از توسعه دهندگان به دنبال آن هستند java.util.Random زمانی که آنها نیاز به تولید مقادیر تصادفی دارند. این به راحتی در دسترس است، استفاده از آن آسان است و به نظر می رسد …

Source link