پروتکل تبادل کلید دیفی-هلمن چیست و چه کاربردی دارد؟

4 74

فهرست

با توجه به اهمیت امنیت اطلاعات و رمزنگاری در حوزه امنیت سایبری، مسیری برای ارائه مطالب و مقالات مربوط به این موضوع مهم در آکادمی ترجنس در نظر گرفتیم. در این مقاله از سری مقالات رمزنگاری و امنیت اطلاعات به بررسی پروتکل تبادل کلید دیفی-هلمن یا Diffie-Hellman Key Exchange می‌پردازیم.

امنیت بدون رمزنگاری؟ هرگز!

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

مشکلات تبادل کلیدهای رمزنگاری

تبادل کلید (Key Exchange) و توزیع کلید (Key Distribution) از موضوعات مهم در امنیت اطلاعات و به طور کلی در امنیت سایبری است که تعداد قابل توجهی پژوهش برای حل آن ارائه شده است. اهمیت موضوع را در قالب یک مثال بیان می کنیم:
فرض کنید در یک جنگ بزرگ بین فرمانده دو پایگاه که دور از هم قرار گرفته اند باید اطلاعات مهم و سری رد و بدل شود. یک راه این است که این اطلاعات به صورت فاش نوشته شوند و به دست یک واسط داده شود تا آن را به پایگاه دیگر منتقل کند. اگر فرض کنیم واسط در نظر گرفته شده واقعا امین است (اصلا چنین فرضی نکنید! آن هم در جنگ!) در عمل انتقال اطلاعات که احتمالا روی کاغذی نوشته شده است، مشکلاتی وجود دارد که می تواند نقشه های نیروی نظامی یک ممکلت را فاش کند. به نظر ساده ترین راه حمله به واسط در نظر گرفته در بین راه و سرقت اطلاعات از وی است!
حال فرض کنید اطلاعاتی که رد و بدل می شود با یک کلید مشترک بین دو پایگاه رمز می شوند که در صورت سرقت اطلاعات، نتیجه ای برای مهاجم و دشمنان نداشته باشد. اما کلید مشترک چگونه بین دو پایگاه به اشتراک گذاشته شده است؟ بهترین حالت این است که وقتی دو فرمانده کنار هم بوده اند کلیدی بین خود به اشتراک گذاشته باشند! اما اگر به هر دلیلی دو فرمانده یکدیگر را قبل از جنگ ملاقات نکرده باشند چه می شود؟ یا در زمان ملاقات پیش بینی جنگ را نکرده باشند؟ اگر کلید به اشتراک گذاشته شده به هر دلیلی لو برود چه می شود؟ احتمالا یکی از فرمانده ها به پایگاه فرمانده دیگر می رود و کلید جدیدی با هم به اشتراک می گذارند! اما آیا ترک پایگاه در زمان جنگ توسط فرمانده برای تبادل یک کلید منطقی است؟ شاید یکی از فرمانده ها کیلید تولید کند و به یک واسط امین بدهد که آن را به فرمانده دیگر برساند. این فاجعه است! اگر در سناریو قبلی (اطلاعات فاش) تنها اطلاعات در دست واسط لو می رفت الان احتمال لو رفتن کل اطلاعاتی که رد و بدل می شوند بسیار زیاد است  چرا که به راحتی می توان با حمله به واسط یک کپی از کلید تولید کرد و با حربه هایی مثل تهدید واسط را وادار به رساندن کلیدی که یک کپی از روی آن برداشته شده به پایگاه مقصد کرد.
تمامی مشکل بر سر مسیری است که واسط در آن حرکت می کند و در مسیر احتمال خطر بسیار است. لفظ کانال ناامن را می توان به این مسیر اطلاق کرد. درواقع کانال ناامن عامل بروز مشکلات در تبادل کلیدهای رمزنگاری است و از طرفی ایجاد کانال امن در بسیاری از موارد یا ممکن نیست یا خود نیاز به رمزنگاری دارد.

تبادل کلید روی کانال ناامن

مساله تبادل کلید روی یک کانال ناامن یکی از مسائل بسیار مهم دنیای امنیت اطلاعات است. حل این مساله به عنوان یک انقلاب در امنیت اطلاعات و امنیت سایبری محسوب می شود که دانشمندان ریاضی و علوم کامپیوتر پژوهش های زیادی روی آن انجام داده اند و کماکان نیز این موضوع یک موضوع به روز در امنیت اطلاعات می باشد.
مساله تبادل کلید روی کانال ناامن اولین بار توسط ویتفیلد دیفی (Whitfield Diffie) و مارتین هلمن (Martin Hellman) در سال ۱۹۷۶ در دانشگاه استنفورد به طور رسمی حل شد. قبل از آن ها مساله ی رمزنگاری کلید عمومی در سال ۱۹۶۹ در British Signals Intelligence مطرح شده بود اما اولین شمای رسمی تبادل کلید روی کانال ناامن توسط دیفی و هلمن معرفی شد. این پژوهش انقلابی در امنیت اطلاعات بود که مسیر جدید و مهمی که منجر به ایجاد پروتکل هایی مثل SSL و SSH و به طور کلی پروتکل های امن شبکه شد را باز کرد.

پروتکل تبادل کلید دیفی-هلمن چگونه کار می کند؟

پروتکل تبادل کلید دیفی-هلمن بر پایه سختی مساله لگاریتم گسسته یا Discrete Logarithm Problem روی گروه های چرخشی خاص بنا شد. این پروتکل به دو مولفه (یا درحالت تعمیم به n مولفه) امکان اشتراک یک کلید یا راز (Secret) روی یک کانال عمومی و ناامن را می دهد. در ادامه به بررسی این پروتکل می پردازیم. بهتر است قبل خواندن ادامه مطلب، مقاله لگاریتم گسسته را ملاحظه کنید. سناریو را با حضور دو شخص و دوست دیرین در رمزنگاری به نام Alice و Bob پی میگیریم.

  • ابتدا آلیس و باب روی استفاده از یک گروه چرخشی و عدد اول به توافق می رسند. برای مثال عدد اول p و یک مولد g (که می تواند ریشه اولیه به پیمانه عدد اول انتخاب شده باشد) انتخاب می کنند. توجه شود که این دو مورد می توانند فاش باشند و به عنوان پارامترهای عمومی و فاش مساله در نظر گرفته می شوند.
  • آلیس به صورت مخفی یک عدد مثل a انتخاب کرده و حاصل زیر را محاسبه می کند:

    \[ A=g^a \pmod{p} \]

  • باب نیز به صورت مخفی یک عدد مثل b انتخاب کرده و حاصل زیر را محاسبه می کند:

    \[ B=g^b \pmod{p} \]

  • آلیس A را برای باب و باب B را برای آلیس روی یک کانال ناامن ارسال می کنند.
  • آلیس پس از دریافت B حاصل زیر را محاسبه می کند:

    \[ K=B^a \pmod{p} \]

  • باب نیز پس از دریافت A حاصل زیر را محاسبه می کند:

    \[ K=A^b \pmod{p} \]

  • حال با توجه به خاصیت توان هر دو یک کلید مشترک K روی کانال ناامن با هم به اشتراک گذاشته اند:

    \[ K=A^b = (g^a)^b = B^a = (g^b)^a = g^{ab} = g^{ba} \pmod{p} \]

شکل زیر یکی از بهترین و جذاب ترین شکل های طراحی شده برای مفهوم تبادل کلید دیفی-هلمن است:

تبادل کلید دیفی هلمن

اگر حین تبادل A و B کانال شنود شود کلید لو می رود؟

خیر! به دست آوردن کلید منوط به به دست آوردن a و b می باشد که برای به دست آوردن این دو عدد باید مساله لگاریتم گسسته روی گروه های چرخشی (امن) حل شود. با توجه داشت همانطور که در مقاله لگاریتم گسسته گفتیم سختی مساله به عواملی بستگی دارند که باید رعایت شوند.

حمله مرد میانی یا MitM علیه پروتکل تبادل کلید دیفی-هلمن

پروتکل اولیه تبادل کلید دیفی-هلمن یک پروتکل بدون احراز هویت می باشد. پروتکل های این چنینی هدف بالاقوه ای برای حملات جعل یا Spoofing و مخصوصا حمله مرد میانی یا Man-in-the-Middle می باشد.

سناریو حمله علیه پروتکل تبادل کلید دیفی-هلمن

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

  • ابتدا یک z مخفی انتخاب می کند و نتیجه زیر را محاسبه می کند:

    \[ Z=g^z \pmod{p} \]

و

    \[ K=A^z \pmod{p} \]

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

    \[ K=Z^a \pmod{p} \]

  • K کلید مشترک بین آلیس و ملوری می باشد:

    \[ K=A^z = (g^a)^z = Z^a = (g^z)^a = g^{az} = g^{za} \pmod{p} \]

  • با توجه به اینکه آلیس اطلاع ندارد M از سمت باب ارسال شده فکر می کند کلید تولید شده بین خود و باب به اشتراک گذاشته شده است.

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

حمله به پروتکل دیفی هلمن

توجه شود در پروتکل SSH که از تبادل کلید دیفی-هلمن احراز هویت شده یا Authenticated Diffie-Hellman استفاده می شود که در مقالات بعدی، بعد از امضاء دیجیتال به بررسی آن می پردازیم.

در سال ۲۰۰۲ مارتین هلمن به دلیل معرفی مفهوم رمزنگاری کلید عمومی توسط رالف مرکل (Ralph Merkle) پیشنهاد کرد عموم پژوهشگران این پروتکل را دیفی-هلمن-مرکل (Diffie-Hellman-Merkle) بنامند.

 

سخن پایانی

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

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

4 نظرات
  1. Samaneh_Zemni_M
    Samaneh_Zemni_M می گوید

    به به. درود بر شما استاد نازنین. “امنیت بدون رمزنگاری؟ هرگز!”. عالی هستین استاد. خدا قوت.

    1. C983RC0113C70R
      C983RC0113C70R می گوید

      از لطف شما سپاسگزارم.

  2. hanie.asadi
    hanie.asadi می گوید

    استاد بزرگ ۳>

    1. C983RC0113C70R
      C983RC0113C70R می گوید

      از شما سپاسگزارم.

ارسال یک پاسخ