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

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

در ابتدا باید بدانیم، پروتکل چیست ؟

پروتکل، مجموعه از قوانین و  مقررات برای برقراری ارتباط است .

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

اکنون که به مفهوم پروتکل پی بردیم ، صحبت در مورد پروتکل MTproto را شروع می کنیم:

پروتکل MTProto

پروتکل MTProto توسط شخصی به نام ” نیکلای دورف ”  معرفی شده است . این پروتکل  بر اساس پروتکل ” تبادل کلید دیفی- هلمن ” توسط تیمی از افراد فرهیخته که اکثر آن ها دکترای ریاضی دارند نوشته شده است . همچنین در این پروتکل از الگوریتم AES (رمزنگاری های متقارن) و RSA (رمزنگاری نامتقارن) استفاده شده است . تمامی داده ها و  پیام ها از جمله، پیام های متنی ، ایموجی ها و استیکر ها  ، فیلم ها و عکس ها، پیام های صوتی ، توسط پروتکل MTProto به صورت ”end to end” رمز نگاری می شوند.

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

پروتکل MTProto به سه بخش مجزا تقسیم بندی می شود:

  • API query language : بخشی است که ب کمک آن پاسخ های سرور و درخواست های API به پیام های باینری تبدیل می شوند.
  • Cryptographic (authorization) layer : بخشی است که در آن پیام ها قبل از اینکه به پروتکل انتقال داده ها وارد شوند، رمزنگاری می شوند و بعد از آن برای مخاطب ارسال خواهند شد.
  • Transport component : بخش حمل و نقل داده ها از طریق یکی از پروتکل های شبکه مانند http, https, tcp ,udp است.

بدانید : در مورد انتقال داده ها توسط یکی از پروتکل های http, https, tcp ,udp ، لازم است بدانید که پیام ها توسط این پروتکل رمزنگاری می شوند تا امنیت را ایجاد نمایند. هدف از رمز گذاری، برقراری ارتباط خصوصی و امن است. رمزنگاری کردن اطلاعات یعنی توسط الگوریتمی مشخص، اطلاعات به صورت رمز تبدیل و ذخیره شوند. در این حالت تنها رمز گذار است که می داند کلید الگوریتم کدام است و برای رمز گشایی اطلاعات باید از کلید الگوریتم استفاده شود.

 

mtproto
mtproto

 

هر پیامی که از طریق این پروتکل رمزنگاری می شود همیشه شامل داده های زیر برای رمزگشایی به منظور ایجاد سیستم مقاوم در برابر مشکلات شناخته شده می باشد:

  • server salt – ۶۴bit
  • session id
  • شماره ترتیبی پیام
  • طول پیام
  • زمان ارسال

الگوریتم هایی رمز نگاری :

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

بدانید :  کدی که رمزگشایی را انجام می دهد ، خصوصی است اما کد الگوریتم رمز گذاری به صورت عمومی است. بنابراین تنها کسی که پیام را دریافت می کند به کلید خصوصی دسترسی دارد .

در نتیجه مزیت الگوریتم های نامتقارن امنیت بیشتر و مزیت الگوریتم های متقارن سرعت بالای آن ها است.

 

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

این پروتکل، در سال ۱۹۷۶ توسط دو دانشمند رمزشناس به نام‌های ویتفیلد دیفی و مارتین هلمن طراحی شد. مطرح شدن این پروتکل، گام مهمی در معرفی و توسعهٔ رمزنگاری کلید نامتقارن به حساب می‌آید.

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

جزئیات پروتکل دیفی-هلمن

در فرمول‌های پیشنهادی اولیه این پروتکل، از گروه همنهشتی اعداد صحیح با پیمانهٔ عدد اول p و عملگر ضرب اعداد صحیح استفاده شده است. در این گروه عددی، یک ریشهٔ اولیه محاسبه می‌شود که آن را با g نشان می‌دهند.

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

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

 

  1. مقدار عدد اول دلخواه بزرگ p (پیمانهٔ عمل ضرب) و مقدار محاسبه شده برای g میان دو طرف رد و بدل می‌شود.
  2. هر یک از دو طرف یک عدد صحیح دلخواه (a و b) را به صورت پنهانی در نظر می‌گیرد.
  3. هر یک از دو طرف با استفاده از عمل توان پیمانه‌ای و مقادیر قبلی (p و g و مقدار پنهانی)، یک مقدار جدید محاسبه کرده (A و B) و برای طرف مقابل ارسال می‌کند.
  4. طرف اول با استفاده از مقادیر p و g و a و B، و طرف دوم با استفاده از مقادیر p و g و b و A، و با همان عمل توان پیمانه‌ای مقدار جدیدی را محاسبه می‌کنند. مقدار جدید محاسبه شده -چنانکه فرمول نشان می‌دهد- در دو طرف یکسان و همان کلید رمز مشترک است.

دربارهٔ این پروتکل توجه به دو نکته ضروری است:

  • مقادیر a و b و مقدار مشترک محاسبه شده، هرگز مستقیماً از کانال ارتباطی عبور نمی‌کنند. بقیهٔ مقادیر یعنی p و g و A و B از کانال ارتباطی عبور می‌کنند و برای دیگران قابل دسترسی هستند.
  • دشواری حل مسألهٔ لگاریتم گسسته تضمین می‌کند که مقادیر a و b و مقدار کلید رمز مشترک، با داشتن مقدار اعداد دیگر در عمل قابل محاسبه نباشد.

امنیت پروتکل دیفی-هلمن

امنیت این پروتکل مبتنی بر دشواری حل مسألهٔ لگاریتم گسسته است. در حال حاضر مسائل زیر باید در ارتباط با امنیت پروتکل دیفی-هلمن لحاظ گردد:

  • بر اساس قدرت محاسباتی رایانه‌های امروزی، استفاده از عدد اول p با حدود ۳۰۰ رقم و اعداد a و b با حدود ۱۰۰ رقم می‌تواند شکستن امنیت این پروتکل و یافتن کلید رمز مشترک را در عمل غیر ممکن سازد.
  • در عمل هر عدد اول بزرگی را نمی‌توان در این پروتکل به کار گرفت، بلکه لازم است عدد p مورد استفاده یک عدد اول امن باشد. در غیر این صورت شکستن امنیت این پروتکل و یافتن کلید رمز مشترک، با استفاده از الگوریتم‌هایی مانند الگوریتم پولیگ-هلمن، نسبتاً آسان و در زمان کمتری قابل انجام خواهد شد.
  • اعداد پنهانی a و b باید به صورت عدد تصادفی تولید شوند و مولد عدد تصادفی مورد استفاده هم نباید تکرارپذیر و قابل پیش‌بینی باشد. در غیر این صورت، یافتن کلید رمز مشترک آسان‌تر و در زمان کمتری قابل انجام خواهد شد.

مشکل شناسایی دو طرف در پروتکل دیفی-هلمن

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

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

پیام رسان تلگرام که در ایران با اقبال بسیار خوشی روبه رو شده است از این پروتکل امنیتی استفاده می کند. بنابراین لازم است  مشکلات امنیتی تلگرام را مرور کنیم:

  • اطلاعات تماس : تلگرام مشابه دیگر سرویس های پیام رسان برای فعال سازی و ثبت نام نیاز به یک شماره تلفن همراه معتبر دارد، پس از ثبت نام، نرم افزار تلگرام تمامی شماره های موجود در گوشی کاربر را به همراه اطلاعاتشان به سرورهایش می فرستد تا در مواقع لزوم تحویل مراجع قضایی دهد. البته مطمئنا این هدف تلگرام نیست و این سرویس از آنها برای گسترش شبکه ارتباطی خود بهره می برد.
  • آسیب پذیری در نسخه وب : ساز و کارهای احراز هویت در web.telegram.orgبنحو صحیحی ایجاد نشده است و مهاجم این امکان را دارد که از این آسیب‌پذیری سوء‌استفاده کند و بدون احراز هویت توکن یا رمز ورود قربانی را به دست بگیرد، زمانی که کاربر قصد ورود به حساب کاربری وب را دارد، باید یک توکن که به موبایل وی ارسال شده است را در مدت زمان کمتر از ۵ دقیقه در وب سایت وارد نماید.
  • استفاده از رمزنگاری ضعیف : برخی از کارشناسان حوزه امنیت در خصوص شیوه ای که تلگرام برای رمزنگاری استفاده کرده است نگرانند و مدعی هستند که این شیوه از یک روش ضعیف محاسباتی تبعیت می کند با اینکه تا بحال روش های رمزنگاری تلگرام بصورت علنی شکسته نشده است.
  • کاربران تلگرام خطاپذیر هستند : متد رمزنگاری end-to-end تلگرام بصورت دیفالت برای کاربران فعال نیست و کاربران باید قبل از آغاز گفتگو یک secure chat ایجاد کنند در نتیجه این احتمال وجود دارد که کاربر فراموش کند که از ویژگی چت ایمن تلگرام استفاده نماید.
  • نشت حجیم اطلاعات : استفاده از اینترنت تلفن همراه حجم عظیمی از اطلاعات متعلق به شما را با هویت شما در معرض خطر قرار می دهد. حتی اگر از چت ایمن نیز استفاده کنید، مراجع قضایی می توانند با تحت فشار قراردادن شرکت تلگرام داده های شما را جمع آوری کنند.

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

 

 

 

معرفی پروتکل MTProto

4 thoughts on “معرفی پروتکل MTProto

  • خرداد ۳, ۱۳۹۷ at ۴:۰۶ ب.ظ
    Permalink

    سپاس
    کامل و عالی…

    Reply
  • خرداد ۶, ۱۳۹۷ at ۸:۳۳ ب.ظ
    Permalink

    مقاله خوبی بود سورسش هم تلگرام بود

    Reply
  • خرداد ۱۶, ۱۳۹۷ at ۹:۳۶ ب.ظ
    Permalink

    بسیار مفید و گیرا بود ممنون بابت نقل این مطلب

    Reply
  • خرداد ۲۳, ۱۳۹۷ at ۱۱:۴۷ ب.ظ
    Permalink

    بسیار مفید.

    Reply

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *