شکستن کلیدهای RSA یه CA بازنشسته از دهه ۹۰
خلاصهٔ کاملتر
RSA بر پایهی سخت بودن فکتور کردن یه عدد نیمهاول بزرگ کار میکنه؛ یعنی ضرب دو عدد اول خیلی بزرگ تو هم، که برگردوندنش به همون دو عدد اول سخته. هرچی کامپیوترها قویتر میشن، طول کلیدی که «امن» حساب میشه هم بزرگتر میشه. وب امروز حداقل RSA ۲۰۴۸ بیتی رو قبول داره، اما کلیدهای ۱۰۲۴ بیتی از بیش از یه دهه پیش کنار گذاشته شدن، و همین چند روز پیش یکی موفق شد یه کلید ۸۶۲ بیتی رو هم بشکنه.
نویسنده، متیو مکفرین، به فکر افتاد ببینه از دل آرشیو نصبکنندههای قدیمی نتسکیپ و اینترنت اکسپلورر تو archive.org چی درمیاد. اون با کمک Claude Code همهی گواهیهای ریشهی داخل اون نصبکنندهها رو استخراج و رو یه صفحه منتشر کرد. با فیلتر کردن اینها به یه گواهی ۵۱۲ بیتی RSA از یه CA کانادایی به اسم E-Certify رسید که مارس ۱۹۹۹ همراه نتسکیپ ۴.۵۱ برای SSL و S/MIME منتشر شده بود؛ گواهیای که حتی همون موقع هم ضعیف بود، چون همون سال کلید ۵۱۲ بیتی RSA-155 هم شکسته شد.
برای شکستن این کلیدها از ابزار متنباز CADO-NFS استفاده کرد؛ روی یه دسکتاپ معمولی با پردازندهی Ryzen 9 5950X، فکتور کردن گواهی سرور ۳۲ ساعت و گواهی کلاینت ۲۹ ساعت طول کشید. با فکتور شدن کلید عمومی، دو عدد اولش به دست میاد و از روشون میشه کلید خصوصی رو بازسازی کرد. با این کلید خصوصی، اگه ساعت سیستمت رو قبل از سال ۲۰۰۳ (وقتی گواهیهای E-Certify منقضی شدن) تنظیم کنی و نتسکیپ ۴.۵۱ داشته باشی، میتونی گواهی جعلی صادر کنی که این مرورگر باهاش بهت اعتماد کنه.
چون هیچ مرورگر مدرنی دیگه با نتسکیپ ۴.۵۱ همخونی نداره، نویسنده یه سرور TLS سفارشی به زبان Go نوشت (اونم با کمک Claude Code) که بتونه اون پروتکل قدیمی رو ساپورت کنه و یه سایت تستی راه انداخت که فقط تو نتسکیپ باز میشه. کد و کلیدها رو تو گیتهاب گذاشته و میگه یه گواهی امضای کد قدیمی از اینترنت اکسپلورر ۳ هم هست که یه نفر دیگه با یه کلاستر GPU تو کمتر از یه ساعت شکسته.
نکات کلیدی:
- کلید ۵۱۲ بیتی E-Certify سال ۱۹۹۹ همراه نتسکیپ ۴.۵۱ منتشر و سال ۲۰۰۲ حذف شده بود
- فکتور کردن با CADO-NFS روی یه دسکتاپ خانگی معمولی حدود ۳۰ ساعت طول کشید
- کد، کلیدها و ابزارها تو ریپوی mcpherrinm/ancientroots رو گیتهاب موجوده
- این آزمایش فقط رو مرورگرهای خیلی قدیمی جواب میده و هیچ تاثیری رو امنیت مرورگرهای امروزی نداره




