تبادل کلید Diffie – Hellman چیست و چگونه کار می کند؟

تبادل کلید Diffie - Hellman چیست و چگونه کار می کند

تبادل کلید Diffie-Hellman بود یکی از مهمترین تحولات در رمزنگاری کلید عمومی و هنوز هم در طیف وسیعی از پروتکل های امنیتی مختلف امروز به اجرا در می آید.

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

تبادل کلید Diffie-Hellman چیست؟?

تبادل کلید Diffie-Hellman بود اولین روش بطور گسترده استفاده می شود تا با خیال راحت در حال توسعه و تبادل کلیدها از طریق کانال ناامن باشید.

ممکن است در اصطلاحات فوق العاده جالب و پرتحرک به نظر نرسد ، بنابراین مثالی را توضیح می دهیم که توضیح می دهد که چرا مبادله کلید Diffie-Hellman چنین نقطه عطفی مهم در جهان رمزنگاری بود ، و چرا هنوز امروزه اینقدر مورد استفاده قرار می گیرد.

بگذارید بگوییم شما یک جاسوس مخفی عالی هستید و باید اطلاعات مهم را به دفتر مرکزی خود ارسال کنید. چگونه می توانید دشمنان خود را از دریافت پیام جلوگیری کنید?

رایج ترین راه حل رمزگذاری پیام با کد است. ساده ترین راه این است که از قبل نوع دیگری از کد و کلید مورد نظر خود را از قبل تنظیم کنید یا این کار را از طریق کانال ارتباطی ایمن انجام دهید..

بیایید بگوییم که شما یک جاسوس بد بد هستید و شما و دفتر مرکزی تصمیم می گیرید از رمزنگاری ضعیف برای رمزگذاری پیام های خود استفاده کنید. در این کد ، هر “a” “b” می شود ، هر “b” می شود “c” ، هر “c” می شود “d” و غیره ، همه راه های رسیدن به “z” تبدیل به “a” می شود..

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

اما اگر نتوانید پیش از این کد را با گیرنده خود ترتیب دهید ، چه اتفاقی می افتد?

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

این شماره یکی از بزرگترین معضلات رمزنگاری تا دهه 1970 بود:

اگر نمی توانید اطلاعات را قبل از موعد به اشتراک بگذارید ، با ایمن تبادل اطلاعات کنید?

مبادله کلید Diffie-Hellman اولین مکانیزم عمومی برای حل این مشکل بود. این الگوریتم به کسانی که پیش از این هرگز ملاقات نکرده اند اجازه می دهد با اطمینان از ایجاد یک کلید مشترک ، حتی از طریق یک کانال ناامن که ممکن است مخالفان نظارت کنند ، ایجاد کنند..

تاریخچه مبادله کلید Diffie-Hellman

تبادل کلید Diffie-Hellman ریشه های آن به دهه 1970 بازمی گردد. در حالی که زمینه رمزنگاری در طول اوایل قرن بیستم به طور قابل توجهی توسعه یافته بود ، این پیشرفتها عمدتاً در حوزه رمزنگاری کلید متقارن متمرکز شده بود..

تا سال 1976 الگوریتم های کلید عمومی در حوزه عمومی پدیدار نشد ، وقتی ویتفیلد دیفی و مارتین هلمن مقاله خود را منتشر کردند, مسیرهای جدید در رمزنگاری. این همکاری ، سازوکارهای موجود در یک سیستم جدید را نشان می دهد ، که به آن معروف می شود تبادل کلید Diffie-Hellman.

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

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

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

شناسه به حمله کننده نمی گوید که کدام کلید جلسه استفاده می شود ، بنابراین بهترین روش برای رمزگشایی اطلاعات این است که برای کشف کلید جلسه صحیح ، همه معماها را حل کنید. از آنجا که مهاجمان باید به طور متوسط ​​نیمی از معماها را حل کند ، در نهایت کشف آنها برای آنها بسیار دشوارتر از آنچه برای گیرنده است انجام می شود..

این رویکرد امنیت بیشتری را فراهم می کند ، اما از یک راه حل کامل فاصله دارد. تبادل کلید Diffie-Hellman برخی از این ایده ها را به دست آورد و آنها را پیچیده تر ساخت تا بتواند روش ایمن رمزنگاری کلید عمومی را ایجاد کند..

اگرچه به عنوان مبادله کلید Diffie-Hellman شناخته شده است ، مارتین هلمن پیشنهاد کرده است که الگوریتم به جای آن مبادله کلید Diffie-Hellman-Merkle نامگذاری شود تا بازتاب کارهایی را که رالف مرکل در قبال رمزنگاری کلید عمومی انجام دهد..

به طور علنی تصور می شد كه مرکل ، هلمن و دیفی اولین افرادی بودند كه رمزنگاری كلیدی عمومی را تا سال 1997 توسعه دادند ، هنگامی كه دولت انگلیس كارهای انجام شده در اوایل دهه 1970 را توسط جیمز الیس ، کلیفورد کاکس و مالکوم ویلیامسون.

به نظر می رسد که این سه گانه بین اولین طرح رمزگذاری کلید عمومی بین سالهای 1969 و 1973 به وجود آمد ، اما کار آنها به مدت دو دهه طبقه بندی شد. این کار در دفتر مرکزی ارتباطات دولت (GCHQ) ، یک آژانس اطلاعاتی انگلیس انجام شده است.

کشف آنها در واقع الگوریتم RSA بود ، بنابراین دیفی ، هلمن و مرکل هنوز اولین کسانی بودند که مبادله کلید Diffie-Hellman را توسعه دادند ، اما دیگر اولین مخترعین رمزنگاری کلید عمومی نبودند..

مبادله کلید Diffie-Hellman از کجا استفاده می شود?

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

از نظر فنی می توان از تبادل کلید Diffie-Hellman برای ایجاد کلیدهای عمومی و خصوصی استفاده کرد. اما ، در عمل ، تمایل به استفاده از RSA به جای آن است. دلیل این است که الگوریتم RSA همچنین قادر به امضای گواهینامه های کلید عمومی است ، در حالی که تبادل کلید Diffie-Hellman نیست.

الگوریتم ElGamal ، که به شدت در PGP مورد استفاده قرار گرفته ، مبتنی بر تبادل کلید Diffie-Hellman است ، بنابراین هر پروتکل که از آن استفاده می کند ، به طور مؤثر نوعی Diffie-Hellman را اجرا می کند..

به عنوان یکی از متداول ترین روش های توزیع ایمن کلیدها ، تبادل کلید Diffie-Hellman است اغلب در پروتکل های امنیتی مانند TLS ، IPsec ، SSH ، PGP و بسیاری دیگر پیاده سازی می شود. این امر به بخشی جدایی ناپذیر در ارتباطات ایمن ما تبدیل می شود.

به عنوان بخشی از این پروتکل ها ، تبادل کلید Diffie-Hellman اغلب برای کمک به برقراری اتصال شما به یک وب سایت ، دسترسی از راه دور به یک رایانه دیگر و برای ارسال ایمیل های رمزگذاری شده استفاده می شود.

مبادله کلید Diffie-Hellman چگونه کار می کند?

تبادل کلید Diffie-Hellman پیچیده است و می توانید درک کنید که چگونه کار کنید. از اعداد بسیار زیاد و ریاضی زیادی استفاده می کند, چیزی که بسیاری از ما هنوز از آن دروس دبیرستان طولانی و خسته کننده ترس نداریم.

برای درک مسائل کمی آسانتر است, ما با توضیح مبادله کلید Diffie-Hellman با یک قیاس شروع خواهیم کرد. هنگامی که شما یک ایده بزرگ در مورد چگونگی عملکرد آن داشته باشید ، ما به توضیحات فنی تر فرآیندهای اساسی می پردازیم.

بهترین قیاس برای طرح Diffie-Hellman ، فکر کردن است دو نفر در حال مخلوط کردن رنگ هستند. بیایید از استاندارد رمزنگاری استفاده کنیم و بگوییم که نام آنها آلیس و باب است. هر دو در ابتدا با یک رنگ تصادفی موافقت می کنند. بیایید بگوییم که آنها پیام یکدیگر را ارسال می کنند و در مورد رنگ زرد به عنوان رنگ معمول خود تصمیم بگیرید, دقیقاً مانند نمودار زیر:

Diffie-Hellman-2

رنگ مخفی خود را دارند. آنها طرف مقابل را انتخاب نمی کنند. بیایید بگوییم که آلیس انتخاب می کند قرمز, در حالی که باب الف را انتخاب می کند آبی کمی سبز.

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

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

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

نتیجه? هر دوی آنها با همان رنگ بیرون می آیند, که در این حالت قهوه ای منزجر کننده است. شاید این نوع رنگی نباشد که می خواهید اتاق نشیمن خود را با آن رنگ کنید ، اما با این وجود یک رنگ مشترک است. به این رنگ مشترک گفته می شود راز مشترک.

بخش مهم تبادل کلید Diffie-Hellman این است که هر دو طرف با نتیجه یکسان نتیجه می گیرند ، بدون اینکه دیگر نیازی به ارسال کلیه راز مشترک در کانال ارتباطی باشد. انتخاب یک رنگ رایج ، رنگهای مخفی خود ، مبادله مخلوط و سپس اضافه کردن رنگ خاص خود ، هر دو طرف راهی را برای رسیدن به همان راز مشترک فراهم می کند بدون اینکه مجبور شود همه چیز را ارسال کند.

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

این ساختار مبادله کلید Diffie-Hellman چیزی است که آن را بسیار مفید می کند. این اجازه می دهد تا دو طرف از طریق ارتباط بالقوه خطرناک ارتباط برقرار کنند و هنوز با یک راز مشترک که می توانند برای ساختن کلیدهای رمزنگاری برای ارتباطات آینده خود استفاده کنند ، ارتباط برقرار می کنند.. فرقی نمی کند که هر مهاجمی در حال گوش دادن باشد ، زیرا راز مشترک مشترک هرگز از طریق اتصال ارسال نمی شود.

جزئیات فنی مبادله کلید Diffie-Hellman

زمان برای برخی از ریاضیات …

نگران نباشید ، ما آن را آهسته خواهیم کرد و سعی خواهیم کرد تا کل مراحل را تا حد امکان درک کنیم. این فرضیه مشابه قیاس نشان داده شده در بالا است ، اما به جای مخلوط کردن و ارسال رنگها, طرح Diffie-Hellman در واقع محاسباتی را بر اساس اعداد اصلی بسیار عالی انجام می دهد ، سپس آنها را به سراسر ارسال می کند.

برای اطمینان از امنیت ، توصیه می شود که نخست (پ) حداقل 2048 بیت طول دارد, که معادل دودویی با تعداد اعشاری در مورد این اندازه است:

415368757628736598425938247569843765827634879128375827365928736 84273684728938572983759283475934875938475928475928739587249587 29873958729835792875982795837529876348273685729843579348795827 93857928739548772397592837592478593867045986792384737826735267 3547623568734869386945673456827659498063849024875809603947902 7945982730187439759284620950293759287049502938058920983945872 0948602984912837502948019371092480193581037995810937501938507913 95710937597019385089103951073058710393701934701938091803984091804 98109380198501398401983509183501983091079180395810395190395180935 8109385019840193580193840198340918093851098309180019

برای جلوگیری از منفجر شدن سر هر کسی ، ما این توضیحات را با تعداد بسیار کمتری اجرا خواهیم کرد. آگاه باش که در صورت استفاده از اعداد به اندازه شماره های مثال ما ، مبادله کلید Diffie-Hellman ناامن خواهد بود. ما فقط از چنین تعداد کمی استفاده می کنیم تا مفهوم را با روشی ساده تر نشان دهیم.

در ابتدایی ترین شکل مبادله کلید Diffie-Hellman, آلیس و باب با تصمیم گیری متقابل بر روی دو عدد شروع می کنند, همانطور که در مثال بالا با رنگ مشترک منفرد مخالف است. اینها هستند مدول (پ) و پایه (گرم).

در استفاده عملی, مدول (p) تعداد اولیه بسیار بزرگی است, در حالی که پایه (گرم) برای ساده کردن محاسبات نسبتاً کوچک است. پایه (گرم) از یک گروه چرخه ای گرفته می شود (ج) که بطور معمول قبل از انجام سایر مراحل به خوبی تولید می شود.

برای مثال ما بگوییم مدول (پ) است 17, در حالی که پایه (گرم) است 4.

پس از تصمیم متقابل در مورد این اعداد ، آلیس بر روی یک شماره مخفی حل و فصل می شود (آبرای خودش ، در حالی که باب شماره مخفی خود را انتخاب می کند (ب) بیایید بگوییم که آنها انتخاب می کنند:

a = 3

b = 6

آلیس سپس محاسبه زیر را انجام می دهد تا شماره ای را که برای باب برای او ارسال می کند ، به او بدهد:

A = ga mod p

در محاسبه فوق, مود یک عمل ماژول را مشخص می کند. اینها در واقع محاسباتی هستند تا بقیه را پس از تقسیم سمت چپ به سمت راست تشخیص دهند. به عنوان مثال:

15 مود 4 = 3

اگر می فهمید که عملیات ماژولو چگونه کار می کند ، می توانید آنها را خودتان در محاسبات زیر انجام دهید ، در غیر این صورت می توانید از یک ماشین حساب آنلاین استفاده کنید.

بیایید شماره های خود را در فرمول قرار دهیم:

A = 43 mod 17

A = 64 mod 17

A = 13

وقتی همین کار را برای باب انجام می دهیم ، می گیریم:

B = 46 mod 17

B = 4096 mod 17

B = 16

سپس آلیس نتیجه خود را ارسال می کند (آ) به باب ، در حالی که باب چهره خود را (ب) به آلیس. سپس آلیس راز مشترک را محاسبه می کند (s) با استفاده از شماره ای که از باب دریافت کرده است (ب) و شماره مخفی او (آ) با استفاده از فرمول زیر:

s = Ba mod پ

s = 163 mod 17

s = 4،096 مود 17

s = 16

سپس باب آنچه را که اساساً همان محاسبه است انجام می دهد ، اما با شماره ای که آلیس برای او ارسال کرده است (آ) و همچنین شماره مخفی خود (ب):

s = آب مود پ

s = 136 mod 17

s = 4،826،809 mod 17

s = 16

همانطور که می بینید ، هر دو حزب با نتیجه یکسان به پایان رسید s, 16. این راز مشترک است که فقط آلیس و باب از آن خبر دارند. سپس آنها می توانند از این طریق برای تنظیم کلید رمزگذاری متقارن استفاده کنند و به آنها اجازه می دهند تا با خیال راحت اطلاعات را بین خود ارسال کنند به شکلی که فقط آنها بتوانند به آن دسترسی داشته باشند..

توجه داشته باشید که اگرچه ب و s در مثال بالا یکسان هستند ، این فقط یک تصادف است که بر اساس تعداد کمی که برای این تصویر انتخاب شده اند ، تصادفی است. به طور معمول ، این مقادیر در اجرای واقعی مبادله کلید Diffie-Hellman یکسان نیستند.

حتی اگر بسیاری از داده های فوق به صورت مجزا در کانال ارسال شود (p ، g ، A و بو ممکن است توسط مهاجمان احتمالی خوانده شود ، راز مشترک (s) هرگز منتقل نمی شود. برای مهاجمین عملی نیست که راز مشترک را محاسبه کند (s) یا هریک از شماره های مخفی (آ و ب) از اطلاعاتی که به صورت واضح ارسال می شود.

البته این فرض می کند که مبادله کلید Diffie-Hellman به درستی انجام شده و از تعداد کافی زیادی استفاده شده است. تا زمانی که این مفاد رعایت شود ، مبادله کلید Diffie-Hellman راهی مطمئن برای ایجاد یک راز مشترک است که می تواند برای تأمین امنیت ارتباطات آینده مورد استفاده قرار گیرد..

ایجاد یک کلید مشترک بین طرفین متعدد

همچنین می توان از تبادل کلید Diffie-Hellman برای تنظیم کلید مشترک با تعداد بیشتری شرکت کننده استفاده کرد. به همان شیوه کار می کند ، به جز دورهای دیگر از محاسبات لازم است تا هر یک از طرفین به شماره مخفی خود اضافه کنند و در پایان با همان راز مشترک به پایان برسند..

درست مانند نسخه دو طرفه مبادله کلید Diffie-Hellman ، برخی از قسمت های اطلاعات از طریق کانال های ناامن ارسال می شوند ، اما برای یک مهاجم کافی نیست که بتواند راز مشترک را محاسبه کند..

چرا تبادل کلید Diffie-Hellman امن است?

در سطح ریاضی ، تبادل کلید Diffie-Hellman به عملکردهای یک طرفه مبنای امنیت آن استوار است. اینها محاسباتی هستند که انجام یک روش ساده است ، اما محاسبه آن برعکس بسیار دشوار است.

به طور خاص ، این مسئله به مشکل Diffie-Hellman متکی است ، که فرض می کند تحت پارامترهای مناسب ، محاسبه غیرممکن است گرماب از مقادیر جداگانه گرم, گرمآ و گرمب. در حال حاضر هیچ روش شناخته شده ای برای یافتن آسان وجود ندارد گرماب از ارزش های دیگر ، به همین دلیل است که مبادله کلید Diffie-Hellman امن است ، با وجود اینکه مهاجمان می توانند مقادیر را رهگیری کنند پ, گرم, آ, و ب.

احراز هویت & تبادل کلید Diffie-Hellman

در دنیای واقعی ، مبادله کلید Diffie-Hellman به ندرت به خودی خود استفاده می شود. دلیل اصلی این امر این است هیچ گونه تأیید هویتی را فراهم نمی کند ، که باعث می شود کاربران در برابر حملات وسط آسیب پذیر باشند.

این حملات می توانند هنگامی انجام شوند که مبادله کلید Diffie-Hellman به خودی خود انجام شود ، زیرا این هیچ راهی برای تأیید اینکه آیا طرف مقابل در یک رابطه واقعاً چه کسی است می گوید آنها هستند. بدون هرگونه تصدیق, کاربران ممکن است در واقع با مهاجمان در ارتباط باشند وقتی فکر می کنند با یک حزب قابل اعتماد ارتباط برقرار می کنند.

به همین دلیل ، مبادله کلید Diffie-Hellman به طور کلی در کنار برخی از ابزارهای تأیید اعتبار انجام می شود. این اغلب شامل استفاده از گواهینامه های دیجیتال و الگوریتم کلید عمومی مانند RSA برای تأیید هویت هر یک از طرفین است..

تغییرات در مبادله کلید Diffie-Hellman

تبادل کلید Diffie-Hellman به چندین روش مختلف قابل اجرا است ، و همچنین زمینه ای برای چندین الگوریتم دیگر فراهم کرده است. برخی از این پیاده سازی ها مجوز ارائه می دهند ، در حالی که برخی دیگر ویژگی های رمزنگاری مختلفی از قبیل راز کامل رو به جلو دارند.

منحنی بیضوی دیفی-هلمن

منحنی بیضوی دیفی هلمن از ساختار جبری منحنی بیضوی استفاده می کند تا به اجرای آن اجازه دهد سطح امنیتی مشابه با اندازه کلید کوچکتر را بدست آورد. یک کلید منحنی بیضوی 224 بیتی ، همان سطح امنیتی را با کلید RSA 2048 بیتی فراهم می کند. این می تواند مبادلات را کارآمدتر کرده و نیازهای ذخیره سازی را کاهش دهد.

جدا از طول کلید کوچکتر و این واقعیت که به خواص منحنی بیضوی متکی است ، منحنی بیضوی Diffie-Hellman به شیوه ای مشابه با استاندارد تبادل کلید Diffie-Hellman عمل می کند..

TLS   

TLS ، پروتکلی است که برای تأمین امنیت بیشتر اینترنت استفاده می شود ، می تواند از مبادله Diffie-Hellman به سه روش مختلف استفاده کند: ناشناس ، استاتیک و زودگذر. در عمل ، فقط باید زودگذر Diffie-Hellman پیاده سازی شود ، زیرا گزینه های دیگر دارای موضوعات امنیتی هستند.

  • دیفی دی هلمن – این نسخه از مبادله کلید Diffie-Hellman از هیچگونه احراز هویتی استفاده نمی کند ، و آن را در برابر حملات میان فرد آسیب پذیر می کند. نباید از آن استفاده یا عملی شود.
  • استاتیک دیفی هلمن – Static Diffie-Hellman از گواهینامه ها برای تأیید اعتبار سرور استفاده می کند. این سرویس مشتری را به طور پیش فرض تأیید نمی کند ، و همچنین اسرار رو به جلو را فراهم نمی کند.
  • Ephemeral Diffie-Hellman – این امن ترین اجرای محسوب می شود ، زیرا باعث می شود راز کامل پیش رو باشد. به طور کلی با یک الگوریتم مانند DSA یا RSA ترکیب می شود تا یک یا هر دو طرف را در ارتباط احراز هویت کند. Ephemeral Diffie-Hellman هر بار اجرای پروتکل از جفت های کلیدی مختلفی استفاده می کند. این ارتباط رازآفرینی کامل رو به جلو است ، زیرا حتی اگر یک کلید در آینده به خطر بیفتد ، نمی توان از آن برای رمزگشایی همه پیام های گذشته استفاده کرد.

الگامال

ElGamal یک الگوریتم با کلید عمومی است که در بالای مبادله کلید Diffie-Hellman ساخته شده است. مانند Diffie-Hellman ، این ماده به خودی خود هیچگونه تصدیقی برای تأیید اعتبار ندارد و به طور کلی برای این منظور با مکانیزم های دیگر ترکیب می شود.

ElGamal عمدتا در PGP ، GNU Privacy Guard و سایر سیستم ها مورد استفاده قرار می گرفت زیرا اصلی ترین رقیب آن ، RSA ، ثبت اختراع شد. حق ثبت اختراع RSA در سال 2000 منقضی شده است و این امکان را برای اجرای آزادانه پس از آن تاریخ فراهم آورده است. از آن زمان ، الگامال به طور مکرر اجرا نشده است.

STS

پروتکل ایستگاه به ایستگاه (STS) همچنین بر مبنای تبادل کلید Diffie-Hellman است. این یک طرح توافق نامه کلیدی دیگر است ، با این حال محافظت در برابر حملات درون انسان و همچنین رازداری کامل رو به جلو.

لازم است که هر دو طرف در ارتباط از قبل دارای یک صفحه کلید باشند ، که برای احراز هویت هر طرف استفاده می شود. اگر طرفین از قبل با یکدیگر شناخته نشده باشند ، می توان از گواهینامه ها برای تأیید هویت هر دو طرف استفاده کرد.

تبادل کلید Diffie-Hellman & RSA

همانطور که قبلاً بحث کردیم, تبادل کلید Diffie-Hellman اغلب در کنار RSA یا الگوریتم های دیگر برای تأیید اعتبار برای اتصال انجام می شود. اگر با RSA آشنا باشید ، ممکن است تعجب کنید چرا هر کسی با استفاده از تبادل کلید Diffie-Hellman زحمت می کشد, از آنجا که RSA احزابی را که قبلاً هرگز ملاقات نکرده اند امکان برقراری ارتباط امن را فراهم می آورد.

RSA به کاربران خود اجازه می دهد تا پیام های خود را با کلید عمومی خبرنگار خود رمزگذاری کنند ، به گونه ای که آنها فقط با کلید خصوصی مطابق رمزگشایی می شوند. با این حال ، در عمل, RSA برای رمزگذاری كلی ارتباطات استفاده نمی شود – این می تواند بسیار ناكارآمد باشد.

در عوض ، اغلب از RSA فقط به عنوان ابزاری برای تأیید اعتبار هر دو طرف استفاده می شود. این کار را با گواهینامه های دیجیتالی هر یک از طرفین ، که توسط یک مجوز گواهی تأیید شده است برای اثبات اینكه صاحب گواهی نامه واقعاً كسی است كه آنها می گویند ، و اینكه کلید عمومی گواهی نامه به آنها تعلق دارد.

برای احراز هویت متقابل, هر طرف با استفاده از کلید خصوصی خود پیامی را امضا می کند و سپس آن را برای شریک ارتباطی خود ارسال می کند. سپس هر گیرنده می تواند با بررسی پیامهای امضا شده در برابر کلید عمومی در گواهی دیجیتال شریک ارتباطی خود ، هویت طرف مقابل را تأیید کنید (برای اطلاعات بیشتر در مورد چگونگی عملکرد این کار ، به ویژه مقاله فوق در مورد RSA مراجعه کنید ارسال پیام بخش).

اکنون که هر دو طرف تأیید شده اند ، از نظر فنی می توان به استفاده از RSA برای ارسال ایمن پیام های رمزگذاری شده بین خود ادامه داد ، با این وجود این کار بسیار ناکارآمد خواهد بود.

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

به نظر می رسد که فرایندی پیچیده و پیچیده به نظر برسد ، اما در مقایسه با استفاده از الگوریتم کلید عمومی برای کل مبادله ، در نتیجه خیلی سریعتر و کم درخواست تر به نظر می رسد. این به دلیل این هست که رمزگذاری کلید متقارن دستورات بزرگی نسبت به رمزگذاری کلید عمومی دارند.

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

RSA رازداری کامل رو به جلو را ارائه نمی دهد, یا ، که یکی دیگر از مضرات در مقایسه با تبادل کلید زودگذر دیفی دی – هلمن است. در مجموع ، این دلایل به همین دلیل است که ، در بسیاری از شرایط ، بهتر است فقط RSA را در رابطه با تبادل کلید Diffie-Hellman اعمال کنید.

از طرف دیگر ، مبادله کلید Diffie-Hellman را می توان با الگوریتمی مانند Digital Signature Standard (DSS) ترکیب کرد تا تأیید اعتبار ، تبادل کلید ، محرمانه بودن و بررسی صحت اطلاعات را انجام دهد. در چنین شرایطی ، RSA برای تأمین اتصال لازم نیست.

مسائل امنیتی مبادله کلید Diffie-Hellman

امنیت تبادل کلید Diffie-Hellman به نحوه اجرای آن و همچنین اعدادی که برای آن انتخاب شده است بستگی دارد. همانطور که در بالا گفتیم ، هیچ وسیله ای برای تأیید هویت طرف مقابل به خودی خود وجود ندارد ، اما در عمل از سازوکارهای دیگری استفاده می شود تا اطمینان حاصل شود که طرف مقابل در یک ارتباط متهم نیست..

پارامترهای انتخاب شماره

اگر در اجرای واقعی مبادله كلیدی Diffie-Hellman از اعدادی به اندازه شماره های مثال ما استفاده كند ، این امر باعث می شود كه روند مبادله برای یك مهاجم كاهش یابد. اما این فقط به اندازه اعداد مهم نیست بلکه تعداد آنها نیز باید به اندازه کافی تصادفی باشند. اگر یک تولید کننده عدد تصادفی یک خروجی قابل پیش بینی تولید کند ، می تواند امنیت مبادله کلید Diffie-Hellman را به کلی تضعیف کند..

شماره پ باید 2048 بیت طول داشته باشد برای اطمینان از امنیت. پایه, گرم, می تواند تعداد نسبتاً کمی مانند 2 باشد, اما باید از دستور ج این یک عامل اصلی بزرگ است

حمله Logjam

تبادل کلید Diffie-Hellman بر اساس مشکل لگاریتم گسسته که حل آن دشوار است ، طراحی شده است. مؤثرترین مکانیسم شناخته شده عمومی برای یافتن راه حل ، الگوریتم غربال الکترود شماره است.

از قابلیت های این الگوریتم در هنگام طراحی تبادل کلید Diffie-Hellman در نظر گرفته شد. تا سال 1992 مشخص شد که برای یک گروه معین, ج, سه تا از چهار مرحله درگیر در الگوریتم به طور بالقوه می تواند از قبل محاسبه شود. اگر این پیشرفت ذخیره شود ، مرحله نهایی می تواند در یک زمان نسبتاً کوتاه محاسبه شود.

این موضوع خیلی نگران کننده نبود تا اینکه متوجه شدیم بخش قابل توجهی از ترافیک اینترنت از همان گروه هایی استفاده می کند که 1024 بیت یا کوچکتر هستند. در سال 2015 ، یک تیم دانشگاهی محاسبات مربوط به رایج ترین 512 بیتی نخست را که توسط مبادله کلید Diffie-Hellman در TLS استفاده شده بود ، انجام داد..

آنها همچنین قادر به کاهش 80٪ از سرورهای TLS بودند که از DHE-EXPORT پشتیبانی می کردند ، به طوری که آنها یک مبادله کلید Diffie-Hellman 512 بیتی درجه صادراتی را برای اتصال می پذیرفت. این بدان معنی است که هرکدام از این سرورها در برابر حمله یک رقیب خوش منبع ، آسیب پذیر هستند.

محققان در ادامه به نتایج نهایی خود پرداختند, تخمین می زند که یک کشور-ملت می تواند نخستین 1024 بیتی را بشکند. با شکستن نخستین رایج ترین 1024 بیتی نخست ، تیم دانشگاهی تخمین می زند كه یک دشمن می تواند 18٪ از یك میلیون محبوب ترین وب سایت HTTPS را زیر نظر داشته باشد..

آنها در ادامه گفتند كه نخستین ثانویه باعث می شود كه طرف مقابل بتواند اتصالات 66٪ سرورهای VPN و 26٪ سرورهای SSH را رمزگشایی كند. بعداً در این گزارش ، دانشگاهیان اعلام كردند كه NSA ممكن است از قبل این تواناییها را داشته باشد.

“یک مطالعه نزدیک از نشت NSA منتشر شده نشان می دهد که حملات آژانس به VPN ها مطابق با دستیابی به چنین وقفه ای است.”

علیرغم این آسیب پذیری ، در صورت اجرای صحیح ، تبادل کلید Diffie-Hellman هنوز هم می تواند امن باشد. تا زمانی که از یک کلید 2048 بیتی استفاده شود ، حمله Logjam کار نخواهد کرد. مرورگرهای به روز شده نیز از این حمله ایمن هستند.

آیا تبادل کلید Diffie-Hellman بی خطر است?

اگرچه ممکن است تبادل کلید Diffie-Hellman پیچیده به نظر برسد ، اما این یک بخش اساسی برای تبادل ایمن داده ها بصورت آنلاین است. تا زمانی که در کنار یک روش احراز هویت مناسب اجرا شود و اعداد به درستی انتخاب شده باشند ، در برابر حمله آسیب پذیر نیست.

تبادل کلید Diffie-Hellman یک روش ابتکاری برای کمک به دو طرف ناشناس در هنگام برقراری ارتباط در دهه 1970 با خیال راحت در ارتباط بود. در حالی که اکنون نسخه های جدیدتری را با کلیدهای بزرگتر پیاده سازی می کنیم تا در برابر فناوری های مدرن محافظت کنیم پروتکل خود به نظر می رسد تا زمان رسیدن به محاسبات کوانتومی ایمن خواهد بود و حملات پیشرفته ای که با آن همراه خواهند بود.

فناوری کسب و کار امنیت سایبری توسط TheDigitalArtist تحت مجوز CC0

About the author

Comments

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

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

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

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

  5. اس با استفاده از تبادل کلید Diffie-Hellman، می توان دو طرف را که قبلاً با آنها ملاقات نکرده اند، قادر به ایجاد یک کلید مشترک برای تأمین امنیت ارتباطات خود کنید. این الگوریتم از طریق یک کانال ناامن امکان ایجاد کلید مشترک را برای دو طرف فراهم می کند. در این مقاله، توضیح داده شده است که چگونه این الگوریتم کار می کند و چگونه می توان از آن برای تأمین امنیت ارتباطات استفاده کرد. همچنین، مسائل امنیتی مرتبط با این الگوریتم نیز بررسی شده است. تبادل کلید Diffie-Hellman یکی از مهمترین تحولات در رمزنگاری کلید عمومی است و هنوز هم در طیف وسیعی از پروتکل های امنیتی مختلف امروز به اجرا در می آید.

Comments are closed.