یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
پروتوکول MTPROTO به زبان ساده
اگر شما هم یکی از کاربرهای تلگرام بوده و یا کماکان هستید، احتمال قریب به یقین اسم پروکسی و جدیدا اِم.تیپروکسی به گوشتون خورده. ساز و کاری جدید برای دور زدن فیلترینگ تلگرام.
توی این مطلب به زبان ساده و قابل فهم در مورد این پرتوکول جدید توضیح داده خوهد شد.
پروتکل MTProto که مخفف Mobile Telegram Protocol هست یک پروتکل امنیتی جدیده که با هدف دور زدن فیلتر تلگرام توسط تیم تلگرام توسعه داده شده. تلگرام هماکنون نسخه دوم این پروتکل یعنی MTProto 2.0 روهم ارائه داده. همین اول هم بگم این پروتکل بابحث بلاکچین(Block Chain) کاملاً متفاوته و ارتباطی با اون نداره. بلاکچین هنوز ارائه نشده. خب بریم سراغ بحث خودمون؛
پروتکل امتیپروتو رو یه جورایی میشه شبیه پروتکل 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 هم استفاده کنه. و طبیعتا برای فیلتر کردنش باید کلا پورت 80 و 443 و ... رو هم ببندن که در واقع مساویه با قطع کامل اینترنت.
اینا همین الانش هم کلی مشکل درست کردن با فیلتر تلگرام اون هم تلگرامی که هنوز MTProto رو رو نکرده بود. الان که دیگه حال و روزشون خیلی باید دیدنی باشه. به بیانی دیگه این پروتکل به صورت ویژه برای ارتباط امن در پیامرسانها طراحی شده و میشه گفت که یه پروتکل چَته. تلگرام تاکنون دو نسخه از این پروتکل رو توسعه داده که نسخه دوم امتیپروتو یعنی MTProto 2.0 به دلیل استفاده از SHA-256 به جای SHA-1 از الگوریتم رمزنگاری قویتری برخورداره. پروتکل MTProto علاوه بر رمزنگاری محتوای پیامها، ساختار چتها و متادیتاها به صورت رمزنگاری شده روهم امکانپذیر میکنه درحالی که Https چنین قابلیتی نداره چون اصلا برای چنین کاری طراحی نشده. به علاوه یک پروتکل چت باید بتونه پیامها را بدون نظارت همیشگی سرور میان کاربران رد و بدل کند.
پروکسیهای نوع MTProto در آخرین نسخه تلگرام و در حال حاضر برای دسکتاپ نسخه 1.3.0 برای ویندوز، مک و لینوکس ارائه شده. در موبایل هم نسخههای 4.8.9 برای اندروید و نسخه 5 تلگرام ایکس IOS قابل دسترسیه.
این پروکسیها رو میتونید از کانالهایی که به همین منظور ایجاد شدن و روز به روز هم بر تعدادشون افزوده میشه دریافت کنید. نکته بسیار جالب اینه که تلگرام طی سیاستی هوشمندانه هنگام استفاده از پروکسی MTProto ارائه شده توسط یک کانال، اون کانال رو مثل یک تبلیغ بالای لیست چتها بهتون نشون میده تا امکان عضویت در اون کانال رو بالا ببره و یکجورهایی از سازنده پروکسی تشکر کرده باشه!
به عبارت بهتر کانالهای مختلف میتونن به عنوان اسپانسر یک پروکسی باشند. البته لازمه بگم که فقط و فقط یک کانال ـ و نه بیشتر ـ که به صورت خودکار به بالای لیست پین میشه. با این کارنه تنها گسترش این قابلیت جدید سرعت میگیرد، بلکه برای کانالها نیز تبلیغات میشود، یک بازی برد-برد واسه تلگرام، اسپانسر و کاربر و البته پروکسی تازه متولد شدهی MTProto.
نکته جالب و بسیار هیجانانگیز دیگهای هم که گفته شده اینه که MTProto یه جورایی مرور وب رو روی تلگرام شبیه سازی کرده یعنی این که وقتی بهش درخواست بدی مثل درخواست مرور یک صفحهی وب باهاش برخورد میکنه و خب این کاملا بهینه ست و با برنامه نویسی سوکت کاری کردن که فقط زمانی که درخواستی وجود داشته باشه ارتباط رو وصل میکنه و اگه درخواستی نداشته باشی اتوماتیک قطع میکنه مثل موقع هایی که مثلا داری یه متن رو میخونی و چیزی لود نمیکنی خودش اتوماتیک دیسکانکت میشه و وقتی خواستی یه چیز دیگری رو لود کنی دوباره وصلت میکنه و این عملیات به لطف SSL اینقدرسریع اتفاق میفته که کسی متوجه اون نمیشه درحالی که توی ساکس(Socks) اینجوری نیست و دائماً ارتباط رو وصل نگه میداره و این عیب باعث میشه که از یه حد که کاربرا بیشتر میشن دیگه اون سرور کند میشه و پاسخگو نیست. این ویژگی MTProto واقعاً در نوع خودش بینظیره؛ مصرف دیتای کمتر + سرعت و پایداری بیشتر!
اطلاعات بیشتر و مستندات فنی این پروتکل در لینک زیر در تلگرام قابل مطالعه است.
https://core.telegram.org/mtproto
منبع: رشته توئییت کاربر وینسنت در توئیتر
https://twitter.com/Winston_Smitth/status/1002217132644544513
مطلبی دیگر از این انتشارات
امن کردن ریکوئستهای وبسایت
مطلبی دیگر از این انتشارات
داستان این BGP Hijack که این روزها میشنویم چیست؟
مطلبی دیگر از این انتشارات
چگونه CSP را دور بزنیم؟