موضوع مقاله: حمله مولد عدد تصادفی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # حمله مولد عدد تصادفی | مقدمه: امنیت سیستم های رمزنگاری وابسته به برخی داده های سِرّی است که تنها برای افراد خاصی شناخته شده است و برای سایرین، ناشناخته و غیرقابل پیش بینی می باشد. | ## بخش 1: حمله مولد عدد تصادفی | برای دستیابی به این خاصیت غیرقابل پیش بینی بودن، انواع مختلفی از تصادفی سازی به کار گرفته می شود. حملات رمزنگاری که باعث ایجاد ضعف یا برهم زدن این فرایند شوند، به عنوان حملات مولد عدد تصادفی شناخته می شوند. تقریباً همیشه یک فرایند تولید عدد تصادفی با کیفیت بالا (RNG) برای امنیت لازم است و به طور کلی، عدم کیفیت باعث ایجاد آسیب پذیری در مقابل حملات و در نتیجه منجر به عدم امنیت در سیستم های رمزنگاری می شود. فرایند RNG از نظر مهاجمین بسیار جذاب است زیرا معمولاً پیدا کردن یک سخت افزار یا نرم‌افزار ایزوله و مجزا آسان است. اگر مهاجم بتواند بیت های شبه تصادفی تولید شده را به روشی که قابل پیش بینی باشد جایگزین کند، امنیت کاملاً به خطر می افتد، با این حال با هر تستی غیر قابل کشف خواهد بود. علاوه بر این، چنین حملاتی تنها به دسترسی واحد به سیستمی که به خطر افتاده نیاز دارد و برخلاف ویروس کامپیوتری که کلیدها را دزدیده و سپس آنها را به بعضی از نقاط ایمیل ارسال می کند، نیازی به ارسال اطلاعات نیست. نسل انسانی مقادیر تصادفی معمولاً انسانها در تولید مقادیر تصادفی ضعیف عمل می کنند. حرفه ی جادوگران و قماربازهای حرفه ای نیز به قابل پیش بینی بودن رفتار انسان وابسته هستند. در جنگ جهانی دوم به کارمندان رمزنگاری آلمانی دستور داده شد تا سه حرف را به طور تصادفی به عنوان تنظیم اولیه روتور برای هر دستگاه انیگما انتخاب کنند. در عوض برخی از آنها مقادیر قابل پیش بینی را انتخاب کردند و کمک بزرگی به متفقین در شکستن این سیستم های رمزگذاری شده کردند. مثال دیگر، ، روش های اغلب قابل پیش بینی است که کاربران کامپیوتر برای انتخاب رمزهای عبور استفاده می کنند. با این وجود ، در مورد خاص بازی های استراتژیک مختلط ، استفاده از آنتروپی گیم پلی انسانی برای تولید تصادفی توسط ران هالپرین و مونی نور مورد بررسی قرار گرفت. حملات مولد های نرم‌افزاری عدد تصادفی مولد عدد تصادفی نرم‌افزار نیز، مانند سایر اجزای سیستم رمزنگاری، باید طوری طراحی شود تا در مقابل حملات مشخصی مقاومت کند. (از ): حمله مستقیم کریپتانالیستی (آنالیز رمز) این حمله هنگامی رخ می دهد که مهاجم بخشی از جریان بیت های رندم را بدست آورده و بتواند آن را در جهت تشخیص خروجی RNG از یک جریان واقعاً تصادفی، به کار گیرد. برای مثال، با "فلاش کردن" آنتروپی موجود از سیستم و قرار دادن آن در یک وضعیت شناخته شده میتوان این نوع حمله را شکل داد. حملات گسترش مصالحه ای دولت در بعضی مواقع که وضعیت مخفی داخلی rng شناخته شده است، از این روش برای خروجی های پیش رو یا بازیابی خروجی های پیشین استفاده میشود. این اتفاق زمانی رخ میدهد که ژنراتور تازه راه اندازی شده باشد و آنتروپی ناچیزی داشته باشد. (به خصوص اگر کامپیوتر تازه بوت شده باشد و دنباله استانداردی از عملیات را دنبال کند) بنابراین مهاجم میتواند حدس اولیه را در آن وضعیت بدست آورد. | ## بخش 2: حمله مولد عدد تصادفی | مولد های سخت افزاری عدد تصادفی تعدادی حمله به مولد های عدد تصادفی سخت افزاری امکان پذیر است، از جمله تلاش برای ضبط انتشار فرکانس های رادیویی انتشار یافته از رایانه (مانند به دست آوردن زمان های قطع هارد دیسک از سر و صدای موتور)، یا تلاش برای تغذیه سیگنال های کنترل شده در یک منبع ظاهراً تصادفی (مانند خاموش کردن چراغ ها در یک لامپ گدازه یا تغذیه یک سیگنال قوی و شناخته شده در کارت صوتی). براندازی RNG اعداد تصادفی واژگون را می توان با استفاده از یک مولد عدد شبه تصادفی رمزنگاری شده با ارزش دانه شناخته شده برای مهاجم ایجاد کرد اما ب طوری که در نرم‌افزار پنهان شده باشد. 24 - 40 بیتی از بذر برای جلوگیری از تکرار، می تواند واقعاً تصادفی باشد، اما نه به اندازه ای که برای جلوگیری از بهبودی مهاجم کافی باشد. اعداد تصادفی معمولاً قبل از اینکه استفده شوند، از چند لایه نرم‌افزاری و سخت افزاری عبور میکنند. بیت ها ممکن است در یک دیوایس جانبی تولید شده، توسط کابل های سری ارسال شده، در یک سیستم عامل جمع آوری شده و توسط یک فراخوانی سیستم، بازیابی شوند. بیت های واژگون شده میتوانند در هر مرحله از این پروسه، با احتمال کمی تشخیص، جایگزین (تعویض) شوند. یک مدار سخت افزاری برای تولید بیت های واژگون شده می تواند در یک مدار یکپارچه چند میلی متر مربعی ساخته شود. پیشرفته ترین تولیدکننده عدد تصادفی سخت افزاری را می توان با قرار دادن چنین تراشه ای بالای مکانی که منبع تصادفی در آن دیجیتالی شده است، مثلاً در یک تراشه درایور خروجی یا حتی در کابل اتصال RNG به رایانه، واژگون ساخت. تراشه واژگون کننده می تواند شامل یه کلاک برای محدود کردن شروع عملیات به مدتی پس از راه اندازی یونیت، یا میتواند شامل یک گیرنده رادیویی برای کنترل خاموش/روشن باشد. این تراشه می تواند توسط سازنده در کارخانه یا بعداً توسط هر کس که دسترسی فیزیکی دارد، نصب شود. تراشه های CPU با ژنراتورهای شماره تصادفی سخت افزاری داخلی ساخته شده را می توان با تراشه های سازگار با RNG واژگون ساز در جایگزین کرد. پدافندها از تولید کننده های سخت افزاری مختلط (مانند xor ) عدد تصادفی با خروجی با کیفیتی از جریان رمزگذاری استفاده کنید. کلید رمزنگاری جریان یا دانه باید به قدری قابل تغیر باشد که بتوان از یک منبع قابل اطمینان مشتق و حسابرسی شود. به عنوان مثال تولید کننده عدد تصادفی Fortuna نمونه ایست که از این مکانیزم استفاده می کند. برخی سیستم ها به جای اینکه اجازه دهند کاربران خوشان رمز عبور دلخواهی را پیشنهاد دهند، به طور اتومات رمزهای عبور تصادفی برای کاربرانشان انتخاب میکنند. از سیستم های رمزگذاری ای استفاده کنید که نحوه تولید اعداد تصادفی را مستند میکنند و روشی را برای بازرسی و ممیزی روند تولید ارائه می دهند. سیستم های امنیتی را ترجیحاً به روشهایی خریداری کنید که کاربرد مورد نظر آن را آشکار نکند، از این منظر، کارتهای صوتی و وب کم ها می توانند منبع تصادفی بهتری نسبت به سخت افزارهای ساخته شده بدین منظور باشند. طراحی یک ژنراتور تصادفی ایمن، به اندازه سایر عناصر یک سیستم رمزنگاری هنگام طراحی، نیاز به مراقبت و توجه دارد. | ## بخش 3: حمله مولد عدد تصادفی | این مقادیر معمولاً تا حدی قابل پیش بینی هستند و بنابراین نسبت به تصادفی ها، آنتروپی کمتری دارند. مشکل موجود در کد در حال اجرا در سال 1995 توسط یان گلدبرگ و دیوید واگنر، که مجبور شدند کد را مهندسی معکوس کنند زیرا Netscape از افشای جزییات مربوط به تولید عدد تصادفی اش، خودداری کرد (امنیت از طریق گمنامی).این RNG در نسخه های بعدی (ورژن 2 و بالاتر) توسط استحکام بیشتر یعنی آنتروپی تصادفی تر و بالاتر از دید مهاجم، اصلاح شد. تولید کننده عدد تصادفی مایکروسافت ویندوز 2000 / XP مایکروسافت از یک الگوریتم منتشر نشده برای تولید مقادیر تصادفی برای سیستم عامل ویندوز خود استفاده می کند. نتیجه گیری این مقاله بر مبنای جداسازی کد در ویندوز 2000 بود، اما به گفته کایکروسافت، در ویندوز XP نیز کاربرد دارد. مایکروسافت اظهار داشت که مشکلات مشروح در مقاله، در ورژن های بعدی ویندوز که از یک نوع متفاوت از پیاده سازی RNG استفاده میکند، در نظر گرفته شده است. حیاط خلوت احتمالی در DRBG مؤسسه ملی استاندارد و فناوری ایالات متحده مجموعه ای از "ژنراتورهای بیت تصادفی قطعی" را منتشر کرد که از آن به عنوان انتشارات ویژه NIST 800-90 یاد می شود. بدین ترتیب این حقیقت که آژانس امنیت ملی آمریکا، حمله ای بدافزاری علیه مردم انجام داده، فاش شد. این ضعف امنیتی ناشی از تغیراتی است که توسط یک توسعه دهنده ی دبیان در کد opensl ایجاده شده است. این امر باعث احیاء و بازتولید حجم زیادی از کلید ها در سرتاسر جهان شد و با وجود توجه زیادی که به این موضوع معطوف شد، این امر قابل تصور است که بسیاری از این کلید های قدیمی هنوز در دست استفاده هستند. کلیدهای تولید شده با GnuPG یا GNUTLS تحت تاثیر قرار نمی‌گیرند؛ زیرا این این برنامه ها از روش های مختلفی برای تولید اعداد تصادفی استفاده میکنند. آسیب پذیری تولید کلیدهای ضعیف بلافاصله پس از گزارش برطرف شد اما کلیه خدماتی که از کلیدهایی استفاده میکنند که توسط کد قدیمی تولید شده اند، همچنان آسیب پذیر هستند. امروزه شماری از پکیج های نرم‌افزاری حاوی چک هایی در برابر بلک لیست کلیدهای ضعیف هستند تا از مورد استفاده قرار گرفتن هر یک از این کلیدهای ضعیف باقی مانده جلوگیری کنند اما محققان همچنان به دنبال یافتن پیاده سازی هایی برای کلید های ضعیف هستند. این حمله به این دلیل امکان پذیر شد که سونی نتوانست به ازای هر امضا، یک عدد تصادفی جدید تولید کند. آنها از یک ضعف منحصر به فرد برای سیستمهای رمزنگاری مبتنی بر فاکتورسازی عدد صحیح بهره برداری کردند. اگر یک کلید عمومی و یک کلید عمومی دیگر باشد، و اگر به طور اتفاقی باشد، آنگاه محاسبه عبارت هر دو کلید را به خطر می اندازد. نادیا هنینجر، عضوی از یک گروه که آزمایش مشابهی را انجام داده اند، گفته است که کلیدهای بد غالباً در برنامه های نهفته رخ داده اند و توضیح می دهد که یک مشکل مشترک اصلی که هر دو گروه به آن برخورده اند و قادر به حل آن نبوده اند، ناشی از شرایطی است مولد عدد شبه تصادفی در کاشتن بذر در ابتدای کار و کاشت مجدد آن بین نسل اول و دوم ضعیف عمل کرده است. | ## جمع‌بندی | هنگامی که این اتفاق رخ داد و کلید خصوصی قابل بازیابی است، باعث شد Bitcoin ها از کیف پول مربوطه قابل سرقت شوند.