همه آن چیزی که درباره پروتکل MTProto تلگرام نمی دانید !


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

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

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

قبل از بررسی این موضوع پیشنهاد میکنم مطالب قبلی منو حتما بخونید :

https://jalaltorabi.com/tag/%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85
https://jalaltorabi.com/telegram-digital-resistance/
https://jalaltorabi.com/10-question-from-telegram-filtering/

پروتکل MTProto که مخفف Mobile Telegram Protocol هست یک پروتکل امنیتی جدید هست که با هدف دور زدن فیلتر ینگ تلگرام توسط تیم تلگرام و نیکلای دوروف برادر پاول دوروف توسعه داده شده است. تلگرام هم‌اکنون نسخه دوم این پروتکل یعنی MTProto 2.0 را ارائه داده است و از همین ابتدا باید بگویم که این پروتکل با بحث بلاک‌چین کاملاً متفاوت بوده و ارتباطی با این قضیه ندارد. 

پروتکل MTProto را میتوان از جهاتی به پروتکل HTTPS مرتبط دانست البته با این تفاوت که پروتکل HTTPS یک رابط بین کاربر و سرور است و صرفاً اطلاعات را بین کاربر(Client) وسرور(Server) رمزنگاری می کند و پیام در سرور رمزگشایی شده و سرور می تواند محتوای پیام را رویت کند.

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

اما پروتکل MTProto وظیفه انتقال پیام‌های رمزنگاری شده به صورت “کاربر به کاربر” (Client to Client) یابه عبارت دیگه End-to-End رو دریک ارتباط کاربر به کاربر بر عهده دارد. دراین صورت پیام‌ها فقط برای فرستنده و گیرنده پیام قابل رمزگشایی و مشاهده است و حتی سرور هم قادر به رمزگشایی پیام‌ها و مشاهده آنها نیست.

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

از مزایای این پروتکل می توان به ترکیب متنوعی از روش‌های رمزنگاری همچون پروتکل تبادل کلید دیفی هلمن(Diffie–Hellman Key Exchange)، الگوریتم رمزنگاری SHA-256، استاندارد رمزنگاری پیشرفته AES، و استانداردهایی همچون AES IGE و AES IGE IV اشاره نمود.

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

  • TCP
  • UDP
  • Http
  • Https

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

مگر آنکه که سازمان اینترنت هرکشور مثل روسیه اقدام به فیلتر کردن دستی آی پی هابکند که آن هم عملاً امکان‌پذیر نیست. چون همانطور که گفتم این پروتکل برای ارتباط میتواند از Http و Https هم استفاده کند. و طبیعتا برای فیلتر کردن آن باید پورت های ۸۰ و ۴۴۳ و … را ببندن که در واقع این عمل مساویست با = مسدود شدن کل اینترنت !

تلگرام تاکنون دو نسخه از این پروتکل را توسعه داده است که نسخه دوم پروتکل MTProto یعنی MTProto 2.0 به دلیل استفاده از SHA-256 به جای SHA-1 از الگوریتم رمزنگاری قوی‌تری برخوردار است. پروتکل MTProto علاوه بر رمزنگاری محتوای پیام‌ها، ساختار چت‌ها و متادیتاها رابه صورت رمزنگاری شده فراهم میکند، این  درحالیست که Https چنین قابلیتی نداره زیرا برای چنین کاری طراحی نشده است.

پروکسیهای نوع MTProto در آخرین نسخه تلگرام و از نسخه ۱.۳.۰ به بعد برای ویندوز، مک‌ و لینوکس ارائه شده است. در موبایل هم نسخه‌های ۴.۸.۹ به بعد برای اندروید و نسخه ۵ تلگرام ایکس به بعد برای IOS قابل دسترسی است.

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

نکته جالب دیگری که برای  MTProto میتوان گفت اینست که :

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

این ویژگی MTProto در نوع خود بی‌نظیر است و این به معنی؛ مصرف دیتای کمتر + سرعت و پایداری بیشتر! است.

اطلاعات بیشتر و مستندات فنی این پروتکل در سایت تلگرام قابل مشاهده است :

https://i.jalaltorabi.com/8JITo

نظر شما درباره این پروتکل چیست ؟ نظرات خود را با من در میان بگذارید.

منبع : آی تی من

https://jalaltorabi.com/mtproto/