کلود منشأ اعداد اولیه منحنی‌های ECDSA را کشف کرد: بذرهای NSA فقط مُهر زمانی بودند

pasqualepillitteri.it

انتشار در منبع: انتشار در سایت ما:

مقاله اصلی · English

کلود توانسته است چگونگی تولید بذرهای منحنی‌های بیضوی NIST، یعنی P-192، P-224، P-256، P-384 و P-521 را که در امضاهای دیجیتال ECDSA به کار می‌روند، مشخص کند. اعداد اولیه‌ای که آژانس امنیت ملی آمریکا (NSA) ارائه کرده بود، هش یک عبارت نبودند؛ بلکه خروجی مولد اعداد شبه‌تصادفی قدیمی lrand48 بودند که با تاریخ و ساعت رایانه راه‌اندازی شده بود. شرکت آنتروپیک یافته‌های خود را در ۱۶ اکتبر ۲۰۲۶ منتشر کرد و نتیجه را در سه کلمه خلاصه کرد: «فقط مُهرهای زمانی هستند». این کشف به معمایی ۲۵ساله در دنیای رمزنگاری پایان می‌دهد و نشان نمی‌دهد که سامانه‌های مورد استفاده امروز به اصلاح نیاز دارند.

الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) پرکاربردترین استاندارد امضای مبتنی بر منحنی‌های بیضوی است و برای نمونه، اصالت گواهی‌های وب‌سایت‌ها را تأیید می‌کند. مؤسسه ملی استانداردها و فناوری آمریکا (NIST)، نهاد دولتی مسئول تدوین استانداردهای فنی، در سال ۲۰۰۰ این الگوریتم را در سند FIPS 186-2 پذیرفت و منحنی‌های قابل استفاده را در آن مشخص کرد. اعداد اولیه این منحنی‌ها که «بذر» نامیده می‌شوند، از سوی آژانس امنیت ملی آمریکا (NSA)، نهاد اطلاعات سیگنالی این کشور، ارائه شده بودند، بی‌آنکه منشأ آن‌ها توضیح داده شود. آنتروپیک شرکت سازنده کلود است و این پژوهش را گروه ردتیم مرزی این شرکت انجام داده؛ گروهی که مدل‌ها را در وظایف امنیتی آزمایش می‌کند.

کلود و منحنی‌های ECDSA استاندارد NIST؛ بازسازی بذرهای NSA با استفاده از مُهرهای زمانی یونیکس در سال ۱۹۹۷
بذر منحنی P-256 و مُهر زمانی‌ای که طبق پژوهش آنتروپیک از آن به دست آمده است.

آیا منحنی‌های NIST دارای درِ پشتی متعلق به NSA هستند؟

خیر. این یافته حتی بیش از گذشته احتمال چنین فرضیه‌ای را کاهش می‌دهد. پارامترهای منحنی‌های NIST با استفاده از یک مولد اعداد شبه‌تصادفی معمولی تولید شده‌اند که ساعت رایانه آن را راه‌اندازی می‌کرد؛ فرایندی که هر کسی می‌تواند امروز آن را بازتولید کند. آنتروپیک می‌گوید این نتیجه اعتماد به منحنی‌ها را افزایش می‌دهد، اما آن را اثبات ریاضی قطعی نمی‌داند.

البته این بدگمانی بی‌دلیل شکل نگرفته بود. دن شومو و نیلز فرگوسن در سال ۲۰۰۷ نشان دادند که مولد اعداد شبه‌تصادفی Dual_EC_DRBG، یکی دیگر از مولدهای استانداردشده از سوی NIST، دارای ضعفی است که می‌توانست به‌عنوان درِ پشتی مورد استفاده قرار گیرد. سال‌هاست که نگرانی مشابهی درباره منحنی‌های بیضوی نیز مطرح بوده است؛ برای نمونه، در سپتامبر ۲۰۱۳ این موضوع در وب‌سایت اسلش‌دات به بحث گذاشته شد. اگر بذر از هش یک عبارت به دست آمده باشد، هیچ نشانه‌ای از چگونگی انتخاب آن باقی نمی‌ماند و هر کسی که بخواهد منحنی ضعیفی بسازد، می‌تواند عبارت‌های مختلفی را امتحان کند تا به نتیجه دلخواه برسد. آنتروپیک توضیح می‌دهد که استفاده از ساعت به‌عنوان مبنا، امکان چنین دست‌کاری‌ای را بسیار محدودتر می‌کند، زیرا تمام مراحل قابل بازتولید هستند. این شرکت می‌گوید هیچ شکست امنیتی، حمله تازه یا ضعفی در منحنی‌ها پیدا نکرده است و یادآوری می‌کند که پژوهشگران پیش از این نیز به پارامترهای آن‌ها اعتماد داشتند.

چرا منشأ بذرها ۲۵ سال یک معما بود؟

در مشخصات منتشرشده در سال ۲۰۰۰ برای منحنی‌های تعریف‌شده روی میدان‌های اول و میدان‌های دودویی، بذری ارائه شده بود که با گرفتن هش از آن می‌شد ضریب b منحنی را محاسبه کرد. بذر منحنی P-256 برابر است با C49D3608 86E70493 6A6678E1 139D26B7 819F7E90، اما هیچ توضیحی درباره منشأ این مقدار وجود نداشت. نیل کوبلیتز و آلفرد منزس، دو ریاضی‌دان از برجسته‌ترین متخصصان این حوزه، در مقاله «معمایی پیچیده در پوششی از راز» (A Riddle Wrapped in an Enigma) تاریخچه این مناقشه را بازسازی کرده‌اند.

معتبرترین سرنخ به جری سولیناس، رمزنگار باسابقه NSA که در سال ۲۰۲۳ درگذشت، مربوط می‌شد. او در سال ۲۰۱۵ گفته بود به یاد دارد که از هش یک عبارت طنزآمیز، همراه با یک شمارنده، استفاده شده بود؛ چیزی شبیه به «به باب و جری افزایش حقوق بدهید». بااین‌حال، جزئیات بیشتری در دست نداشت و هیچ سندی نیز باقی نمانده بود. در اکتبر ۲۰۲۳، فیلیپو والسوردا برای یافتن بذرها جایزه‌ای ۱۲٬۲۸۸ دلاری تعیین کرد که در صورت اهدای مبلغ از سوی برنده به امور خیریه، به ۳۶٬۸۶۴ دلار می‌رسید. هیچ‌کس موفق به حل معما نشد. برخی کارکنان آنتروپیک نیز همان عبارت پیشنهادی را بررسی کرده بودند، اما به نتیجه نرسیدند.

کلود چگونه به مُهرهای زمانی رسید؟

ماجرا از آنجا آغاز شد که یکی از کارکنان کنجکاو آنتروپیک در اکتبر ۲۰۲۶ از یک مدل پژوهشی داخلی این شرکت خواست مشخص کند بذرها چگونه تولید شده‌اند، بی‌آنکه سرنخ مربوط به عبارت طنزآمیز را در اختیار مدل بگذارد. مدل در کمتر از نیم ساعت منشأ بذرهای P-192، P-224، P-256، P-384 و P-521 را پیدا کرد. هیچ‌یک از این بذرها از هش یک عبارت به دست نیامده بود. همه آن‌ها حاصل اجرای lrand48 بودند؛ مولد اعداد شبه‌تصادفی موجود در کتابخانه C سامانه‌های یونیکس که با یک مُهر زمانی یونیکس، یعنی تعداد ثانیه‌های سپری‌شده از اول ژانویه ۱۹۷۰، راه‌اندازی می‌شد.

این فرایند پنج مرحله داشت:

  • مدل فرضیه مربوط به عبارت را کنار گذاشت و به این فکر کرد که نرم‌افزار تولیدکننده منحنی‌ها احتمالاً چگونه کار می‌کرده است. به‌احتمال زیاد، این نرم‌افزار از مولدی استفاده می‌کرده که در کتابخانه‌های C دهه ۱۹۹۰ رایج بوده است؛ مولدی به‌اندازه کافی ضعیف که خروجی‌هایش اثرانگشت قابل تشخیصی بر جا بگذارند.
  • مدل برنامه‌ای برای جست‌وجو نوشت که هر بذر را بیت‌به‌بیت بررسی می‌کرد و ۳۴ ترکیب مختلف از مولد و بخش‌های خروجی آن را می‌آزمود. در بذرهای چهار منحنی دودویی، متوجه شد که بالاترین بیت هر کلمه همیشه صفر است؛ نظمی که نمی‌توان آن را به تصادف نسبت داد و با ویژگی شناخته‌شده lrand48 مطابقت دارد. این مولد از حالت داخلی ۴۸بیتی خود تنها ۳۱ بیت خروجی می‌دهد.
  • برای بازیابی حالت داخلی مولد، مدل تمام ۱۳۱٬۰۷۲ مقدار ممکن برای ۱۷ بیت پنهان را آزمایش کرد و بررسی کرد که آیا کلمات بعدی نیز با خروجی مورد انتظار مطابقت دارند یا خیر. این روش برای هر چهار بذر منحنی‌های دودویی جواب داد.
  • بذر منحنی‌های تعریف‌شده روی میدان‌های اول از همان مولد استفاده می‌کنند، اما فقط ۸ بیت از هر خروجی را نگه می‌دارند. در این مورد، حالت داخلی با الگوریتم LLL، مخفف نام لِنسترا، لِنسترا و لوواس، بازیابی شد؛ روشی شناخته‌شده برای حل مسائل مربوط به مولدهای خطی با خروجی ناقص. هر پنج بذر NIST و پنج بذر دیگر از استاندارد ANSI X9.62 الگوی یکسانی داشتند و حالت بازیابی‌شده در هر مورد توانست تمام ۱۶۰ بیت بذر را بازتولید کند.
  • از آنجا که مولد می‌تواند در جهت معکوس نیز اجرا شود، مدل حالت آن را برای هر بذر به عقب برگرداند تا به شکلی برسد که تابع srand48 هنگام دریافت یک مُهر زمانی ایجاد می‌کند؛ در این حالت، ۱۶ بیت پایانی برابر با 0x330E هستند. این ویژگی به‌تنهایی اثبات‌کننده چیزی نیست، زیرا چنین حالتی هر ۶۵٬۵۳۶ گام یک‌بار تکرار می‌شود. اما در این بررسی، تمام مقادیر به‌دست‌آمده مُهرهای زمانی معقولی بودند که بین مه ۱۹۹۷ و آوریل ۱۹۹۸ قرار داشتند.

طبق توضیح آنتروپیک، مدل در جریان استدلال داخلی خود مکث کرد و از خود پرسید آیا در یک محیط آزمایشی قرار دارد یا نه؛ زیرا کشفی که پس از ۲۵ سال تا این اندازه آشکار به نظر می‌رسید، برایش مشکوک بود. بررسی دستی نتیجه را تأیید کرد. تطبیق ۱۶۰ بیت خروجی با استفاده از یک بذر ۳۲بیتی و یک شاخص کوچک، آن هم برای ده بذر، نمی‌تواند حاصل تصادف باشد.

تاریخ بذرها؛ از مه ۱۹۹۷ تا آوریل ۱۹۹۸

مُهرهای زمانی بازسازی‌شده، زمان اجرای واقعی یک برنامه را بر اساس ساعت هماهنگ جهانی (UTC) نشان می‌دهند. تعداد تکرارها مشخص می‌کند مولد پیش از تولید بذر منتشرشده، چند بار ۲۰ بایت خروجی تولید کرده است. برای نمونه، در مورد P-256 این فرایند ۱٬۸۴۲ بار تکرار شده که معادل ۳۶٬۸۴۰ گام مولد است.

منحنیمُهر زمانی (UTC)تعداد تکرارها
P-192۱۸ مه ۱۹۹۷، ساعت ۱۴:۴۵:۳۴۱۳۹
P-521۸ اوت ۱۹۹۷، ساعت ۰۱:۱۲:۰۴۱٬۱۳۶
P-256۱۶ اوت ۱۹۹۷، ساعت ۰۱:۵۲:۳۴۱٬۸۴۲
P-384۳۰ اوت ۱۹۹۷، ساعت ۱۴:۵۰:۰۸۲٬۶۸۸
P-224۳ آوریل ۱۹۹۸، ساعت ۱۲:۵۲:۰۷۷٬۰۲۶

چهار منحنی دودویی B-233، B-283، B-409 و B-571 اثرانگشت متفاوتی دارند. مُهرهای زمانی آن‌ها، اگر مستقیماً خوانده شوند، به فوریه ۱۹۸۴ می‌رسند. اما اگر این مقادیر دو برابر شوند، تاریخ ۱۷ آوریل ۱۹۹۸ به دست می‌آید؛ یعنی دو هفته پس از تاریخ مربوط به P-224. آنتروپیک بر همین اساس این فرضیه را مطرح می‌کند که برنامه مقدار ساعت را نصف کرده بوده است. این فرضیه هنوز اثبات نشده، اما با اعداد موجود سازگار است. با استفاده از مُهر زمانی نصف‌شده، کد منتشرشده می‌تواند برای نمونه بذر B-233 را بازتولید کند.

نقاط پایه؛ معمای دومی که فقط بخشی از آن حل شده است

هر منحنی یک نقطه پایه نیز دارد؛ نقطه‌ای ثابت که کلید عمومی با ضرب‌های اسکالر آن ساخته می‌شود. بذر به‌تنهایی این نقطه را تعیین نمی‌کند. کلود هنگام جست‌وجو برای تأیید منشأ بذرها، توانست منشأ برخی از نقاط پایه را نیز پیدا کند. شش منحنی متعلق به مه ۱۹۹۷، یعنی P-192 و پنج منحنی نمونه از استاندارد ANSI X9.62، نقاط پایه خود را از مولد اعداد شبه‌تصادفی کتابخانه FreeLIP گرفته‌اند. این کتابخانه محاسبات اعداد بزرگ را آرژن لِنسترا توسعه داده بود و کد آن بعدها در نسخه‌های اولیه کتابخانه NTL متعلق به ویکتور شوپ نیز به کار رفت.

روش تولید این نقاط ساده است: مولد با یک عدد صحیح کوچک راه‌اندازی می‌شود؛ برای P-192 این عدد ۲۰٬۰۰۰ است. سپس هفت خروجی نخست کنار گذاشته می‌شود و مختصات x با طول ۲۶ بیت تولید می‌شوند تا نقطه‌ای به دست آید که روی منحنی قرار داشته باشد.

به گفته آنتروپیک، تا پیش از این هیچ‌یک از نقاط پایه منحنی‌های NIST توضیح داده نشده بود. بااین‌حال، منشأ نقاط پایه P-224، P-256، P-384، P-521 و منحنی‌های دودویی همچنان مشخص نیست، زیرا با این روش مطابقت ندارند.

محدودیت‌هایی که باید در نظر داشت

  • نتیجه‌گیری مبنی بر نبود درِ پشتی، استنباط آنتروپیک است، نه یک اثبات قطعی. این شرکت می‌نویسد که فرضیه وجود درِ پشتی اکنون «بسیار نامحتمل‌تر» شده است. بااین‌حال، در همان پژوهش پذیرفته می‌شود که جست‌وجوی هدفمند مُهرهای زمانی همچنان قابل تصور است؛ هرچند چنین کاری تنها زمانی منطقی به نظر می‌رسد که مُهر زمانی بعداً به‌عنوان مدرکی برای اثبات بی‌گناهی ارائه شود.
  • این پژوهش در وب‌سایت خود آنتروپیک منتشر شده و داوری همتا نشده است. کد آن متن‌باز است و بذرها را بازتولید می‌کند؛ بنابراین می‌توان محاسبات را ظرف چند ثانیه دوباره بررسی کرد. اما تفسیر معنای این نتایج همچنان موضوع بحث در جامعه رمزنگاری است.
  • برخی موارد هنوز توضیح داده نشده‌اند؛ از جمله بذر منحنی دودویی B-163 و نقاط پایه P-224، P-256، P-384، P-521 و منحنی‌های دودویی. همچنین معلوم نیست چرا برخی گزینه‌های معتبر کنار گذاشته شده‌اند. برای نمونه، گزینه ۸۷۶ در مورد P-256 می‌توانست منحنی معتبری با مرتبه اول تولید کند و در مورد P-224 نیز سه گزینه حذف شده‌اند. داده‌های موجود حتی مشخص نمی‌کنند که برنامه چند بار اجرا شده است.
  • سامانه‌ای که بذرها را پیدا کرد، یک مدل پژوهشی داخلی بود. صفحه پژوهش مشخص نمی‌کند که آیا می‌توان با مدل‌های در دسترس عموم نیز به همین نتیجه رسید یا خیر. بنابراین، خوانندگان نمی‌توانند صرفاً بر اساس این پژوهش توانایی یک مدل هوش مصنوعی تجاری را در حل مسائل مشابه ارزیابی کنند.

این کشف چه تغییری برای ECDSA، بیت‌کوین و تیم‌های امنیتی ایجاد می‌کند؟

برای استفاده‌کنندگان از ECDSA هیچ تغییری لازم نیست. آنتروپیک می‌گوید نیازی به انجام هیچ اقدامی نیست و این پژوهش را پایان پرونده‌ای قدیمی می‌داند. این منحنی‌ها ضعیف‌تر نمی‌شوند، زیرا یافته جدید فقط به منشأ بذرها مربوط است، نه به ریاضیات آن‌ها. بیت‌کوین و اتریوم از منحنی secp256k1 استفاده می‌کنند که در میان پنج منحنی NIST بررسی‌شده در این پژوهش قرار ندارد. خطرهای مطرح‌شده درباره کیف‌پول‌های این شبکه‌ها نیز از نوع دیگری هستند؛ خطرهایی که پیش‌تر، هنگام راه‌اندازی حالت پناهگاه از سوی جاستین دریک و زمانی که شرکت IonQ احتمال شکستن رمزنگاری بیت‌کوین را بررسی کرد، مطرح شده بودند. برای آشنایی با مبانی رمزنگاری متقارن نیز می‌توان به راهنمای نحوه کار رمزنگاری AES-256 مراجعه کرد.

برای کسانی که کاربرد هوش مصنوعی در امنیت را دنبال می‌کنند، نکته مهم جای دیگری است. آنتروپیک طی ماه‌های گذشته تلاش کرده است مدل‌های خود را برای انجام وظایف تخصصی آماده کند. برنامه تأیید امنیت سایبری دسترسی به مدل مایتوس را برای گروه‌های ردتیم تأییدشده فراهم می‌کند؛ آژانس امنیت سایبری و زیرساخت آمریکا (CISA) از مایتوس برای بررسی کدهای دولت آمریکا استفاده می‌کند و بانک آو آمریکا نیز هزار پیمانکار را برای رسیدگی به ضعف‌های کشف‌شده به کار گرفته است. در این پرونده، دشواری اصلی در نحوه طرح پرسش بود. طی ۲۵ سال، جست‌وجوگران می‌پرسیدند کدام عبارت چنین بذری تولید می‌کند؛ اما مدل به‌جای آن بررسی کرد که چه برنامه‌ای می‌تواند این خروجی را تولید کرده باشد. این تغییر رویکرد امکان بررسی و تأیید تمام مراحل را در سطح بیت فراهم کرد.

آنتروپیک جایزه ۳۶٬۸۶۴ دلاری را به گروه پژوهشی امنیت اینترنت (Internet Security Research Group)، سازمان اداره‌کننده سرویس Let's Encrypt، اهدا خواهد کرد. این شرکت از والسوردا برای سازمان‌دهی تلاش‌ها جهت یافتن بذرها قدردانی کرد و یاد جری سولیناس را نیز گرامی داشت؛ کسی که در زمان حیاتش با خوش‌رویی با برچسب‌های بدنام‌کننده مرتبط با NSA برخورد می‌کرد.

پرسش‌های متداول

۱. lrand48 چیست و چرا می‌شد آن را شناسایی کرد؟

این مولد شبه‌تصادفی متعلق به دهه ۱۹۹۰ است که در کتابخانه C سامانه‌های یونیکس وجود داشت. این مولد با حالت داخلی ۴۸بیتی کار می‌کند و ۳۱ بیت از آن را به‌عنوان خروجی برمی‌گرداند. ساختار خطی آن به‌اندازه‌ای ساده است که در خروجی‌هایش الگوهای قابل شناسایی باقی می‌گذارد. اگر کسی بخشی از بیت‌ها را بداند، می‌تواند حالت داخلی مولد را بازیابی کند و از آنجا به زمان آغاز کار آن برسد.

۲. اگر این منحنی‌ها بیست سال استفاده شده‌اند، توضیح منشأ بذرها چه اهمیتی دارد؟

زیرا اعتماد به یک منحنی به چگونگی انتخاب آن نیز بستگی دارد. وقتی منشأ بذر مشخص نبود، این احتمال وجود داشت که یک نهاد اطلاعاتی آن را به‌گونه‌ای انتخاب کرده باشد که از حمله‌ای شناخته‌شده فقط برای همان نهاد جلوگیری کند. فرایندی که هر کسی بتواند آن را بازتولید کند، فضای تردید را کاهش می‌دهد؛ تردیدی که از سال ۲۰۱۳ در محافل فنی مطرح بود، اما هیچ‌گاه به مدرکی قطعی منجر نشد.

۳. آیا مدلی که این معما را حل کرد همان مدلی است که همه استفاده می‌کنند؟

چنین چیزی اعلام نشده است. آنتروپیک از یک مدل پژوهشی داخلی با نام کلود سخن می‌گوید، اما مشخص نمی‌کند که این مدل کدام نسخه بوده یا آیا در دسترس عموم قرار دارد.

چه مواردی هنوز باید روشن شوند؟

منشأ تقریباً تمام بذرها مشخص شده است و تنها بذر B-163 همچنان توضیح‌داده‌نشده باقی مانده است. در عین حال، منشأ نقاط پایه چهار منحنی تعریف‌شده روی میدان‌های اول و منحنی‌های دودویی هنوز روشن نیست. جامعه رمزنگاری ۲۵ سال به دنبال یک عبارت زیرکانه پنهان در این اعداد می‌گشت، اما پاسخ در ساعت رایانه‌ای در سال ۱۹۹۷ نهفته بود. کشف آن تنها نیم ساعت زمان برد و به طرح پرسش درست نیاز داشت.