رفتن به محتوای اصلی
کوهستان
توضیح کوهستانرمزنگاریگزارش تشریحی· 7 دقیقه مطالعه· در قالب‌های محتوا

حساب پیمانه‌ای که یک راز مشترک را در بستری ناامن بنا می‌کند

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

به قلم کاوان رامین

به‌طور خلاصه

  • پروتکل دیفی-هلمن به دو طرف اجازه می‌دهد تا بدون ارسال خود راز، یک راز مشترک را در یک کانال عمومی ایجاد کنند.
  • این پروتکل بر مسئله لگاریتم گسسته متکی است؛ یک تابع ریاضی که محاسبه آن آسان اما معکوس کردنش عملاً غیرممکن است.
  • در پیاده‌سازی‌های اولیه، برای صرفه‌جویی در بار پردازشی، از اعداد اول ۵۱۲ بیتی و ۱۰۲۴ بیتیِ از پیش محاسبه‌شده استفاده مجدد می‌شد که یک آسیب‌پذیری عظیم ایجاد کرد.

ادبیات بازاریابی اغلب رمزنگاری را به عنوان یک گاوصندوق دیجیتال توصیف می‌کند و این‌طور القا می‌کند که امنیت به ضخامت فولاد آن بستگی دارد. اما قابلیت واقعی ارتباطات امن امروزی به چیزی بسیار شکننده‌تر متکی است: توانایی دو غریبه برای توافق بر سر یک کلید مخفی، در حالی که یک شبکه متخاصم هر حرکت آن‌ها را زیر نظر دارد.

فرض رایج - و ادعایی که اغلب در بروشورهای ساده‌سازی‌شده امنیتی تکرار می‌شود - این است که ارتباط امن نیازمند آن است که دو طرف از قبل یک رمز عبور را مخفیانه با هم تبادل کنند.

اگر این موضوع صحت داشت، اینترنت مدرن اصلاً نمی‌توانست کار کند. در سال ۱۹۷۶، ویتفیلد دیفی و مارتین هلمن مقاله‌ای در نشریه «تراکنش‌های آی‌تریپل‌ئی در نظریه اطلاعات» منتشر کردند که این فرض را از نظر ریاضی باطل کرد. آن‌ها نشان دادند که دو طرف می‌توانند یک راز مشترک را روی یک کانال کاملاً ناامن و تحت نظارت ایجاد کنند، بدون اینکه هرگز خود راز را ارسال کنند.[1]

پروتکلی که آن‌ها معرفی کردند و اکنون به عنوان تبادل کلید دیفی-هلمن شناخته می‌شود، در واقع هیچ کلیدی را تبادل نمی‌کند. در عوض، به دو طرف اجازه می‌دهد تا با استفاده از حساب پیمانه‌ای، مشترکاً یک کلید را استخراج کنند. همان‌طور که مستندات فنی کلودفلر توضیح می‌دهد، این الگوریتم بر یک تابع تله‌در متکی است - یک عملیات ریاضی که محاسبه آن در یک جهت بسیار ساده است، اما معکوس کردن آن عملاً غیرممکن است. به طور خاص، این روش از مسئله لگاریتم گسسته استفاده می‌کند.[4]

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

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

در نهایت، آلیس رنگ سبز باب را می‌گیرد و رنگ قرمز مخفی خود را با آن مخلوط می‌کند، در حالی که باب رنگ نارنجی آلیس را گرفته و رنگ فیروزه‌ای مخفی خود را به آن می‌افزاید. هر دو دقیقاً به یک رنگ نهایی یکسان می‌رسند - یک قهوه‌ای مشترک - که همان کلید رمزنگاری آن‌ها می‌شود.[6]

تشبیه ترکیب رنگ‌ها نشان می‌دهد که چگونه دو طرف می‌توانند بدون افشای ورودی‌های خصوصی خود، به یک راز مشترک دست یابند.

در واقعیت، این «رنگ‌ها» اعداد اول بسیار بزرگی هستند. بر اساس سند RFC 2631 کارگروه مهندسی اینترنت، این پروتکل با دو پارامتر عمومی آغاز می‌شود: یک عدد اول بزرگ (پ) و یک مولد (گ). آلیس یک عدد صحیح خصوصی (الف) را انتخاب می‌کند و مقدار عمومی خود را به صورت آ = گ^الف پیمانه پ محاسبه می‌کند. باب نیز یک عدد صحیح خصوصی (ب) انتخاب کرده و ب = گ^ب پیمانه پ را محاسبه می‌کند. آن‌ها مقادیر آ و ب را روی شبکه تبادل می‌کنند.[2]

پس از تبادل، آلیس راز مشترک را با به توان رساندن مقدار عمومی باب با توان خصوصی خودش محاسبه می‌کند: س = ب^الف پیمانه پ. باب نیز عمل معکوس را انجام می‌دهد و س = آ^ب پیمانه پ را محاسبه می‌کند. به دلیل خاصیت جابه‌جایی توان‌ها در حساب پیمانه‌ای، هر دو محاسبه دقیقاً یک نتیجه یکسان را به دست می‌دهند: گ^(الف‌ب) پیمانه پ. این عددِ به‌دست‌آمده همان راز مشترک است که سپس به عنوان یک کلید متقارن برای رمزنگاری ترافیک‌های بعدی با استفاده از الگوریتم‌هایی مانند AES به کار می‌رود.[2]

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

در روزهای اولیه اینترنت، اعداد اول ۵۱۲ بیتی رایج بودند که دلیل عمده آن محدودیت‌های صادراتی ایالات متحده در زمینه رمزنگاری بود. امروزه، سند RFC 5114 پارامترهای بسیار بزرگ‌تری را استاندارد کرده است و به طور خاص گروه‌های نمایی پیمانه‌ای با اندازه‌های ۱۰۲۴ بیتی و ۲۰۴۸ بیتی را برای استفاده در پروتکل‌های اینترنت تعریف می‌کند.[3]

حساب پیمانه‌ایِ زیربنایی این روش، بر خاصیت جابه‌جایی توان‌ها متکی است.

با این حال، تولید اعداد اول عظیم و از نظر رمزنگاری امن در لحظه، از نظر پردازشی پرهزینه است. برای سرعت بخشیدن به فرآیند دست‌دهی، بسیاری از سرورها و فروشندگان وی‌پی‌ان سیستم‌هایی را روانه بازار کردند که به گروه‌های اعداد اولِ استاندارد و از پیش محاسبه‌شده متکی بودند - یعنی استفاده از دقیقاً یک عدد اول یکسان برای میلیون‌ها اتصال مختلف. این میان‌بر اجرایی که اغلب به عنوان یک ویژگی بهینه‌سازی بازاریابی می‌شد، یک آسیب‌پذیری عظیم ایجاد کرد.[7]

در ماه مه ۲۰۱۵، تیمی از دانشمندان علوم کامپیوتر حمله لاگ‌جم را منتشر کردند و نقص مهلک در استفاده مجدد از اعداد اول را افشا ساختند. این پژوهشگران نشان دادند که کارآمدترین الگوریتم برای شکستن یک اتصال دیفی-هلمن - یعنی غربال میدان اعداد - از چهار مرحله تشکیل شده است.

سه مرحله اول تنها به عدد اول بستگی دارند، نه به اتصال خاص. اگر یک مهاجم آن سه مرحله اول را برای یک عدد اول مشخص از پیش محاسبه کند، می‌تواند اتصالات فردی که از آن عدد اول استفاده می‌کنند را تقریباً در لحظه بشکند.[5]

اگر یک مهاجم آن سه مرحله اول را برای یک عدد اول مشخص از پیش محاسبه کند، می‌تواند اتصالات فردی که از آن عدد اول استفاده می‌کنند را تقریباً در لحظه بشکند.

تیم لاگ‌جم نشان داد که یک مهاجم مرد میانی می‌تواند سرور را مجبور کند تا اتصال خود را به رمزنگاری ۵۱۲ بیتیِ درجه صادراتی تنزل دهد. از آنجا که هشت و چهار دهم درصد از یک میلیون دامنه برتر از این سایفرهای ضعیف پشتیبانی می‌کردند، پژوهشگران توانستند رایج‌ترین عدد اول ۵۱۲ بیتی را از پیش محاسبه کرده و ترافیک را به طور فعال رمزگشایی کنند. این پژوهشگران نوشتند: حمله لاگ‌جم به یک مهاجم مرد میانی اجازه می‌دهد تا اتصالات آسیب‌پذیر را به رمزنگاری ۵۱۲ بیتی درجه صادراتی تنزل دهد.[5]

هشداردهنده‌تر اینکه، پژوهشگران محاسبه کردند که یک دشمن در سطح دولت با بودجه‌ای چند صد میلیون دلاری می‌تواند پیش‌محاسبه را برای رایج‌ترین اعداد اول ۱۰۲۴ بیتی انجام دهد. از آنجا که میلیون‌ها سرور در سطح جهان از همان تعداد انگشت‌شمار اعداد اول ۱۰۲۴ بیتی استفاده می‌کردند، شکستن تنها یکی از آن‌ها به یک آژانس اطلاعاتی اجازه می‌داد تا بخش عظیمی از ترافیک اینترنت جهان را به صورت غیرفعال رمزگشایی کند.[5]

امنیت دیفی-هلمن در میدان متناهی، با طول بیتِ گروه اعداد اول مقیاس‌پذیر می‌شود.

برای کاهش این آسیب‌پذیری‌ها، صنعت تا حد زیادی از دیفی-هلمن سنتی در میدان متناهی به سمت دیفی-هلمن منحنی بیضوی مهاجرت کرده است. همان‌طور که کلودفلر در مستندات خود اشاره می‌کند، منحنی‌های بیضوی همان سطح از امنیت را با بار پردازشی بسیار کمتری ارائه می‌دهند. به جای تکیه بر لگاریتم گسسته اعداد اول عظیم، این روش بر ساختار جبری منحنی‌های بیضوی روی میدان‌های متناهی متکی است.[4]

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

ذکر این نکته بسیار مهم است که دیفی-هلمن، به‌تنهایی، هیچ‌گونه احراز هویتی ارائه نمی‌دهد. این پروتکل تضمین می‌کند که آلیس و باب یک راز مشترک دارند، اما ثابت نمی‌کند که باب واقعاً همان باب است.

یک مهاجم فعال می‌تواند مقدار عمومی آلیس را رهگیری کند، مقدار خودش را برای او بفرستد و همین کار را با باب نیز انجام دهد - و بدین ترتیب دو کانال امن جداگانه ایجاد کرده و هر چیزی را در این میان بخواند. برای جلوگیری از این امر، دیفی-هلمن همیشه با یک الگوریتم امضای دیجیتال جفت می‌شود، جایی که سرور پارامترهای عمومی خود را برای اثبات هویتش امضا می‌کند.[7]

پنجاه سال پس از انتشار، تبادل کلید دیفی-هلمن همچنان سنگ‌بنای حریم خصوصی اینترنت است. هر بار که یک مرورگر به یک وب‌سایت امن متصل می‌شود، یک تونل وی‌پی‌ان برقرار می‌گردد، یا یک اپلیکیشن پیام‌رسان امن چتی را آغاز می‌کند، حساب پیمانه‌ایِ زیربنایی دقیقاً همان‌طور که در سال ۱۹۷۶ پیشنهاد شده بود، در حال اجراست. پارامترها از مفاهیم نظری به گروه‌های استاندارد ۲۰۴۸ بیتی رشد کرده‌اند، اما این تله‌درِ ریاضیاتی همچنان پابرجاست.[1][7]

اصطلاحات کلیدی

مسئله لگاریتم گسسته
یک مسئله ریاضی که محاسبه آن در یک جهت (به توان رساندن) آسان اما معکوس کردن آن عملاً غیرممکن است و پایه امنیتی دیفی-هلمن را تشکیل می‌دهد.
تابع تله‌در
یک تابع ریاضی که انجام آن در یک جهت ساده است اما محاسبه آن در جهت مخالف بدون داشتن اطلاعات خاص دشوار است.
کلید زودگذر
یک کلید رمزنگاری موقت که برای یک نشست ارتباطی واحد تولید شده و بلافاصله پس از آن دور انداخته می‌شود.
پنهان‌سازی کامل پیش‌رو
یک ویژگی امنیتی که تضمین می‌کند به خطر افتادن کلیدهای بلندمدت، کلیدهای نشست‌های گذشته را به خطر نمی‌اندازد.
رمزنگاری منحنی بیضوی (ECC)
رویکردی در رمزنگاری کلید عمومی مبتنی بر ساختار جبری منحنی‌های بیضوی که امنیت بالایی را با اندازه‌های کلید کوچک‌تر ارائه می‌دهد.

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

آیا دیفی-هلمن داده‌های من را رمزنگاری می‌کند؟

خیر. دیفی-هلمن یک پروتکل تبادل کلید است، نه یک الگوریتم رمزنگاری. از آن برای ایجاد امن یک راز مشترک استفاده می‌شود که سپس توسط یک الگوریتم رمزنگاری متقارن (مانند AES) برای رمزنگاری واقعی داده‌ها به کار می‌رود.

پنهان‌سازی کامل پیش‌رو چیست؟

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

چرا حمله لاگ‌جم موفقیت‌آمیز بود؟

لاگ‌جم از این واقعیت سوءاستفاده کرد که بسیاری از سرورها از اعداد اول از پیش محاسبه‌شده یکسانی برای تبادلات دیفی-هلمن خود استفاده مجدد می‌کردند. مهاجمان می‌توانستند پیش‌محاسبات عظیمی روی این اعداد اول خاص انجام دهند که به آن‌ها اجازه می‌داد اتصالات فردی را تقریباً در لحظه بشکنند.

تفاوت بین RSA و دیفی-هلمن چیست؟

از RSA می‌توان هم برای رمزنگاری داده‌ها و هم برای امضاهای دیجیتال استفاده کرد، اما وقتی برای تبادل کلید استفاده می‌شود، ذاتاً پنهان‌سازی پیش‌رو را فراهم نمی‌کند. دیفی-هلمن منحصراً برای تبادل کلید است و هنگامی که در حالت زودگذر استفاده شود، تضمین می‌کند که نشست‌های گذشته امن باقی می‌مانند.

بررسی عمیق دیدگاه‌ها

ناب‌گرایان رمزنگاری

مدافعان پنهان‌سازی کامل پیش‌رو و پیاده‌سازی‌های دقیق ریاضیاتی.

برای ناب‌گرایان رمزنگاری، زیبایی دیفی-هلمن در توانایی آن برای ارائه پنهان‌سازی کامل پیش‌رو نهفته است. آن‌ها استدلال می‌کنند که تکیه بر کلیدهای ثابت یا گروه‌های اعداد اول از پیش محاسبه‌شده، اساساً تضمین‌های ریاضیاتی پروتکل را تضعیف می‌کند. از این منظر، گذار به دیفی-هلمن منحنی بیضوی زودگذر صرفاً یک ارتقا نیست، بلکه اصلاحی ضروری برای دهه‌ها مصالحه در پیاده‌سازی است. آن‌ها تأکید می‌کنند که یک سیستم تنها در صورتی امن است که به خطر افتادن کلیدهای بلندمدت در آینده نتواند ارتباطات گذشته را عطف به ماسبق افشا کند.

مجریان سازمانی

تمرکز بر سبک‌سنگین کردن‌های عملی بین امنیت، تأخیر و بار پردازشی.

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

ناب‌گرایان رمزنگاری 35%پژوهشگران امنیتی 35%مجریان سازمانی 30%
ناب‌گرایان رمزنگاری
مدافعان پنهان‌سازی کامل پیش‌رو و پیاده‌سازی‌های دقیق ریاضیاتی.
پژوهشگران امنیتی
تمرکز بر آسیب‌پذیری‌های دنیای واقعی و خطرات ناشی از میان‌برهای اجرایی.
مجریان سازمانی
تمرکز بر سبک‌سنگین کردن‌های عملی بین امنیت، تأخیر و بار پردازشی.

دیدگاه‌هایی که این گزارش پوشش نداده

  • پژوهشگران رایانش کوانتومی
  • نگهدارندگان سخت‌افزارهای قدیمی

منابع

پوشش منابع

7 منبع

3 دیدگاه شناسایی‌شده

ناب‌گرایان رمزنگاری 35%پژوهشگران امنیتی 35%مجریان سازمانی 30%
  1. [1]IEEE Transactions on Information Theory

    New Directions in Cryptography

    مطالعه در IEEE Transactions on Information Theory →
  2. [2]IETFمجریان سازمانی

    Diffie-Hellman Key Agreement Method

    مطالعه در IETF →
  3. [3]IETFمجریان سازمانی

    Additional Diffie-Hellman Groups for Use with IETF Standards

    مطالعه در IETF →
  4. [4]Cloudflareناب‌گرایان رمزنگاری

    What happens in a TLS handshake?

    مطالعه در Cloudflare →
  5. [5]WeakDH.orgپژوهشگران امنیتی

    Weak Diffie-Hellman and the Logjam Attack

    مطالعه در WeakDH.org →
  6. [6]Wikipedia

    Diffie–Hellman key exchange

    مطالعه در Wikipedia →
  7. [7]تیم سردبیری کوهستانناب‌گرایان رمزنگاری

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان →

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

اخبار قالب‌های محتوا با پوشش کامل منابع و تحلیل دیدگاه‌ها، هر روز و رایگان.