حساب پیمانهای که یک راز مشترک را در بستری ناامن بنا میکند
در سال ۱۹۷۶، ویتفیلد دیفی و مارتین هلمن ثابت کردند که دو طرف میتوانند یک کلید رمزنگاری امن را در مقابل چشمان همه و بدون اینکه هرگز آن را ارسال کنند، تولید کنند. پنجاه سال بعد، این تلهدرِ ریاضیاتی همچنان شالوده حریم خصوصی اینترنت است.
به قلم کاوان رامین
این خبر را به اشتراک بگذارید
- نابگرایان رمزنگاری
- مدافعان پنهانسازی کامل پیشرو و پیادهسازیهای دقیق ریاضیاتی.
- پژوهشگران امنیتی
- تمرکز بر آسیبپذیریهای دنیای واقعی و خطرات ناشی از میانبرهای اجرایی.
- مجریان سازمانی
- تمرکز بر سبکسنگین کردنهای عملی بین امنیت، تأخیر و بار پردازشی.
دیدگاههایی که این گزارش پوشش نداده
- پژوهشگران رایانش کوانتومی
- نگهدارندگان سختافزارهای قدیمی
ادبیات بازاریابی اغلب رمزنگاری را به عنوان یک گاوصندوق دیجیتال توصیف میکند و اینطور القا میکند که امنیت به ضخامت فولاد آن بستگی دارد. اما قابلیت واقعی ارتباطات امن امروزی به چیزی بسیار شکنندهتر متکی است: توانایی دو غریبه برای توافق بر سر یک کلید مخفی، در حالی که یک شبکه متخاصم هر حرکت آنها را زیر نظر دارد. فرض رایج - و ادعایی که اغلب در بروشورهای سادهسازیشده امنیتی تکرار میشود - این است که ارتباط امن نیازمند آن است که دو طرف از قبل یک رمز عبور را مخفیانه با هم تبادل کنند. اگر این موضوع صحت داشت، اینترنت مدرن اصلاً نمیتوانست کار کند. در سال ۱۹۷۶، ویتفیلد دیفی و مارتین هلمن مقالهای در نشریه «تراکنشهای آیتریپلئی در نظریه اطلاعات» منتشر کردند که این فرض را از نظر ریاضی باطل کرد. آنها نشان دادند که دو طرف میتوانند یک راز مشترک را روی یک کانال کاملاً ناامن و تحت نظارت ایجاد کنند، بدون اینکه هرگز خود راز را ارسال کنند.[1]
پروتکلی که آنها معرفی کردند و اکنون به عنوان تبادل کلید دیفی-هلمن شناخته میشود، در واقع هیچ کلیدی را تبادل نمیکند. در عوض، به دو طرف اجازه میدهد تا با استفاده از حساب پیمانهای، مشترکاً یک کلید را استخراج کنند. همانطور که مستندات فنی کلودفلر توضیح میدهد، این الگوریتم بر یک تابع تلهدر متکی است - یک عملیات ریاضی که محاسبه آن در یک جهت بسیار ساده است، اما معکوس کردن آن عملاً غیرممکن است. به طور خاص، این روش از مسئله لگاریتم گسسته استفاده میکند.[4]
برای درک این سازوکار، رمزنگاران اغلب از تشبیه ترکیب رنگها استفاده میکنند. آلیس و باب به صورت علنی روی یک رنگ شروع مشترک، مثلاً زرد، توافق میکنند. این رنگ به صورت واضح ارسال میشود؛ هر کسی که به شبکه گوش میدهد میتواند آن را ببیند. سپس آلیس یک رنگ مخفی، مثلاً قرمز، انتخاب میکند و آن را با زرد مخلوط میکند تا نارنجی به دست آید. باب نیز رنگ مخفی خود، یعنی فیروزهای، را انتخاب کرده و با زرد مخلوط میکند تا سبز تولید شود.[6]
سپس آلیس و باب رنگهای مخلوطشده خود را از طریق کانال عمومی تبادل میکنند. استراقسمعکننده رنگهای نارنجی و سبز را میبیند، اما از آنجا که جدا کردن رنگهای ترکیبشده عملاً غیرممکن است، نمیتواند رنگهای مخفی اولیه آلیس یا باب را تشخیص دهد. در نهایت، آلیس رنگ سبز باب را میگیرد و رنگ قرمز مخفی خود را با آن مخلوط میکند، در حالی که باب رنگ نارنجی آلیس را گرفته و رنگ فیروزهای مخفی خود را به آن میافزاید. هر دو دقیقاً به یک رنگ نهایی یکسان میرسند - یک قهوهای مشترک - که همان کلید رمزنگاری آنها میشود.[6]
در واقعیت، این «رنگها» اعداد اول بسیار بزرگی هستند. بر اساس سند RFC 2631 کارگروه مهندسی اینترنت، این پروتکل با دو پارامتر عمومی آغاز میشود: یک عدد اول بزرگ (پ) و یک مولد (گ). آلیس یک عدد صحیح خصوصی (الف) را انتخاب میکند و مقدار عمومی خود را به صورت آ = گ^الف پیمانه پ محاسبه میکند. باب نیز یک عدد صحیح خصوصی (ب) انتخاب کرده و ب = گ^ب پیمانه پ را محاسبه میکند. آنها مقادیر آ و ب را روی شبکه تبادل میکنند.[2]
پس از تبادل، آلیس راز مشترک را با به توان رساندن مقدار عمومی باب با توان خصوصی خودش محاسبه میکند: س = ب^الف پیمانه پ. باب نیز عمل معکوس را انجام میدهد و س = آ^ب پیمانه پ را محاسبه میکند. به دلیل خاصیت جابهجایی توانها در حساب پیمانهای، هر دو محاسبه دقیقاً یک نتیجه یکسان را به دست میدهند: گ^(الفب) پیمانه پ. این عددِ بهدستآمده همان راز مشترک است که سپس به عنوان یک کلید متقارن برای رمزنگاری ترافیکهای بعدی با استفاده از الگوریتمهایی مانند AES به کار میرود.[2]
امنیت کل این عملیات کاملاً به اندازه عدد اول بستگی دارد. اگر عدد اول خیلی کوچک باشد، کامپیوترهای امروزی میتوانند با روش جستجوی فراگیر لگاریتم گسسته را حل کرده و کلیدهای خصوصی را از مقادیر عمومی استخراج کنند. در روزهای اولیه اینترنت، اعداد اول ۵۱۲ بیتی رایج بودند که دلیل عمده آن محدودیتهای صادراتی ایالات متحده در زمینه رمزنگاری بود. امروزه، سند RFC 5114 پارامترهای بسیار بزرگتری را استاندارد کرده است و به طور خاص گروههای نمایی پیمانهای با اندازههای ۱۰۲۴ بیتی و ۲۰۴۸ بیتی را برای استفاده در پروتکلهای اینترنت تعریف میکند.[3]
اگر عدد اول خیلی کوچک باشد، کامپیوترهای امروزی میتوانند با روش جستجوی فراگیر لگاریتم گسسته را حل کرده و کلیدهای خصوصی را از مقادیر عمومی استخراج کنند.
با این حال، تولید اعداد اول عظیم و از نظر رمزنگاری امن در لحظه، از نظر پردازشی پرهزینه است. برای سرعت بخشیدن به فرآیند دستدهی، بسیاری از سرورها و فروشندگان ویپیان سیستمهایی را روانه بازار کردند که به گروههای اعداد اولِ استاندارد و از پیش محاسبهشده متکی بودند - یعنی استفاده از دقیقاً یک عدد اول یکسان برای میلیونها اتصال مختلف. این میانبر اجرایی که اغلب به عنوان یک ویژگی بهینهسازی بازاریابی میشد، یک آسیبپذیری عظیم ایجاد کرد.[7]
در ماه مه ۲۰۱۵، تیمی از دانشمندان علوم کامپیوتر حمله لاگجم را منتشر کردند و نقص مهلک در استفاده مجدد از اعداد اول را افشا ساختند. این پژوهشگران نشان دادند که کارآمدترین الگوریتم برای شکستن یک اتصال دیفی-هلمن - یعنی غربال میدان اعداد - از چهار مرحله تشکیل شده است. سه مرحله اول تنها به عدد اول بستگی دارند، نه به اتصال خاص. اگر یک مهاجم آن سه مرحله اول را برای یک عدد اول مشخص از پیش محاسبه کند، میتواند اتصالات فردی که از آن عدد اول استفاده میکنند را تقریباً در لحظه بشکند.[5]
تیم لاگجم نشان داد که یک مهاجم مرد میانی میتواند سرور را مجبور کند تا اتصال خود را به رمزنگاری ۵۱۲ بیتیِ درجه صادراتی تنزل دهد. از آنجا که هشت و چهار دهم درصد از یک میلیون دامنه برتر از این سایفرهای ضعیف پشتیبانی میکردند، پژوهشگران توانستند رایجترین عدد اول ۵۱۲ بیتی را از پیش محاسبه کرده و ترافیک را به طور فعال رمزگشایی کنند. این پژوهشگران نوشتند: حمله لاگجم به یک مهاجم مرد میانی اجازه میدهد تا اتصالات آسیبپذیر را به رمزنگاری ۵۱۲ بیتی درجه صادراتی تنزل دهد.[5]
هشداردهندهتر اینکه، پژوهشگران محاسبه کردند که یک دشمن در سطح دولت با بودجهای چند صد میلیون دلاری میتواند پیشمحاسبه را برای رایجترین اعداد اول ۱۰۲۴ بیتی انجام دهد. از آنجا که میلیونها سرور در سطح جهان از همان تعداد انگشتشمار اعداد اول ۱۰۲۴ بیتی استفاده میکردند، شکستن تنها یکی از آنها به یک آژانس اطلاعاتی اجازه میداد تا بخش عظیمی از ترافیک اینترنت جهان را به صورت غیرفعال رمزگشایی کند.[5]
برای کاهش این آسیبپذیریها، صنعت تا حد زیادی از دیفی-هلمن سنتی در میدان متناهی به سمت دیفی-هلمن منحنی بیضوی مهاجرت کرده است. همانطور که کلودفلر در مستندات خود اشاره میکند، منحنیهای بیضوی همان سطح از امنیت را با بار پردازشی بسیار کمتری ارائه میدهند. به جای تکیه بر لگاریتم گسسته اعداد اول عظیم، این روش بر ساختار جبری منحنیهای بیضوی روی میدانهای متناهی متکی است.[4]
پیادهسازیهای مدرن همچنین استفاده از دیفی-هلمن زودگذر را الزامی میکنند. در یک پیکربندی زودگذر، سرور به جای استفاده مجدد از یک کلید ثابت، برای هر اتصال یک کلید خصوصی کاملاً جدید تولید میکند. این امر پنهانسازی کامل پیشرو را فراهم میکند. حتی اگر یک مهاجم سالها ترافیک رمزنگاریشده را ضبط کند و بعداً موفق شود کلید هویت بلندمدت سرور را به خطر بیندازد، نمیتواند دادههای تاریخی را رمزگشایی کند، زیرا کلیدهای موقت دیفی-هلمن که برای رمزنگاری واقعی استفاده شده بودند، بلافاصله دور انداخته شدهاند.[4]
ذکر این نکته بسیار مهم است که دیفی-هلمن، بهتنهایی، هیچگونه احراز هویتی ارائه نمیدهد. این پروتکل تضمین میکند که آلیس و باب یک راز مشترک دارند، اما ثابت نمیکند که باب واقعاً همان باب است. یک مهاجم فعال میتواند مقدار عمومی آلیس را رهگیری کند، مقدار خودش را برای او بفرستد و همین کار را با باب نیز انجام دهد - و بدین ترتیب دو کانال امن جداگانه ایجاد کرده و هر چیزی را در این میان بخواند. برای جلوگیری از این امر، دیفی-هلمن همیشه با یک الگوریتم امضای دیجیتال جفت میشود، جایی که سرور پارامترهای عمومی خود را برای اثبات هویتش امضا میکند.[7]
پنجاه سال پس از انتشار، تبادل کلید دیفی-هلمن همچنان سنگبنای حریم خصوصی اینترنت است. هر بار که یک مرورگر به یک وبسایت امن متصل میشود، یک تونل ویپیان برقرار میگردد، یا یک اپلیکیشن پیامرسان امن چتی را آغاز میکند، حساب پیمانهایِ زیربنایی دقیقاً همانطور که در سال ۱۹۷۶ پیشنهاد شده بود، در حال اجراست. پارامترها از مفاهیم نظری به گروههای استاندارد ۲۰۴۸ بیتی رشد کردهاند، اما این تلهدرِ ریاضیاتی همچنان پابرجاست.[1][7]
نکات کلیدی
- پروتکل دیفی-هلمن به دو طرف اجازه میدهد تا بدون ارسال خود راز، یک راز مشترک را در یک کانال عمومی ایجاد کنند.
- این پروتکل بر مسئله لگاریتم گسسته متکی است؛ یک تابع ریاضی که محاسبه آن آسان اما معکوس کردنش عملاً غیرممکن است.
- در پیادهسازیهای اولیه، برای صرفهجویی در بار پردازشی، از اعداد اول ۵۱۲ بیتی و ۱۰۲۴ بیتیِ از پیش محاسبهشده استفاده مجدد میشد که یک آسیبپذیری عظیم ایجاد کرد.
- حمله لاگجم در سال ۲۰۱۵ ثابت کرد که مهاجمان در سطح دولتها میتوانند این اعداد اول مشترک را از پیش محاسبه کرده و ترافیک اینترنت را در لحظه رمزگشایی کنند.
- اتصالات امن امروزی از پروتکل دیفی-هلمن منحنی بیضوی زودگذر (ECDHE) استفاده میکنند تا پنهانسازی کامل پیشرو را تضمین کنند.
- دیفی-هلمن بهتنهایی هیچگونه احراز هویتی ارائه نمیدهد و برای جلوگیری از حملات مرد میانی باید با امضاهای دیجیتال ترکیب شود.
چرا مهم است
هر اتصال امنی در اینترنت - از بانکداری آنلاین گرفته تا پیامرسانی رمزنگاریشده - برای ایجاد اعتماد در شبکههای متخاصم به این سازوکار ریاضی متکی است. درک نحوه کارکرد آن نشان میدهد که چرا میانبرهای اجرایی، مانند استفاده مجدد از اعداد اول، میتواند ارتباطات جهانی را به خطر بیندازد.
منابع
[1]IEEE Transactions on Information TheoryNew Directions in Cryptography
مطالعه در IEEE Transactions on Information Theory →
[2]IETFمجریان سازمانیDiffie-Hellman Key Agreement Method
مطالعه در IETF →
[3]IETFمجریان سازمانیAdditional Diffie-Hellman Groups for Use with IETF Standards
مطالعه در IETF →
[4]Cloudflareنابگرایان رمزنگاریWhat happens in a TLS handshake?
مطالعه در Cloudflare →
[5]WeakDH.orgپژوهشگران امنیتیWeak Diffie-Hellman and the Logjam Attack
مطالعه در WeakDH.org →
[6]WikipediaDiffie–Hellman key exchange
مطالعه در Wikipedia →
[7]تیم سردبیری کوهستاننابگرایان رمزنگاریتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
بیشتر در متا
مشاهده همه →معماری DNS
چگونه پرسوجوهای بازگشتی و تکرارشونده DNS کارایی شبکه را با امنیت معامله میکنند
7 منبع
خطاهای آماری
چگونه تجمیع دادهها در «پارادوکس سیمپسون» روندها را معکوس میکند
4 منبع
سیستمهای پیچیده
چهار ویژگی کلیدی سیستمهای پیچیده انطباقپذیر و دلیل مقاومت آنها در برابر پیشبینیهای بلندمدت
6 منبع
اصالت دیجیتال
اپل با احراز هویت سختافزاری عکسها در iOS 27، استانداردهای باز را دور میزند
4 منبع
هر زاویه. هر روز.
دریافت متا اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





