اپ پیامرسان امن تلگرام به دو دلیل مورد توجه قرار گرفته است. اولین دلیل این است که این اپ یک ابزار ارتباطی رمزنگاریشده برای میلیونها کاربر خود در سراسر جهان است، به خصوص کاربران کشورهایی که میخواهند از نظارت و مسدودسازی دولت در فضای وب اجتناب کنند. مورد دوم این است که بسیاری از متخصصان به روش رمزنگاری تلگرام اعتماد کاملی ندارند. شرکت امنیتی Forcepoint گزارشی دربارهی باتهای تلگرام منتشر کرده است که حاوی اطلاعات جدیدی برای کاربران و منتقدان این اپ پیامرسان است.
باتهای تلگرام برنامههای کوچکی هستند که میتوانند در چتها یا کانالهای عمومی قرار داده شوند و کارکرد خاص خود را به انجام برسانند. این باتها میتوانند کیبورد سفارشیشده و استیکرهای جدیدی در اختیارتان قرار دهند یا حتی به عنوان درگاه پرداخت عمل کرده و در صفحهی فروشگاه شما قرار بگیرند. باتهای تلگرام به دلیل راحت و سرگرمکننده بودنشان محبوب هستند و تلگرام از سال 2015 این باتها را به پیامرسان خود اضافه کرده است. باتها در واقع حسابهای کاربری خودکاری هستند که میتوانید آنها را مانند یک شخص عادی به کانالها و چتهایتان اضافه کنید. اما شرکت فورسپوینت هنگام بررسی باتهای تلگرام متوجه شد که این باتها از الگوریتم مورد استفادهی تلگرام برای رمزنگاری چتها استفاده نمیکنند. در نتیجه اضافه کردن باتها به یک چت یا کانال باعث آسیب رساندن به امنیت آن میشود و امکان شنود پیامها را برای شخص ثالث آسانتر میکند.
لوک سامرویل، مأمور ارشد تحقیقات ویژه در فورسپوینت، میگوید:
«اگر صاحب یک بات هستید یا مسئول کانالی هستید که یک بات به آن اضافه شده است این موضوع روی شما تأثیر میگذارد. میخواهم صادق باشم. ما خودمان نیز شگفتزده شدیم وقتی فهمیدیم امنیت باتها اینقدر متفاوت از امنیت پیامهای معمولی است.»
این گزارش اشاره میکند که باتهای تلگرام از MTProto استفاده نمیکنند، MTProto پروتکل رمزنگاری تلگرام است که پیامهای ارسالی کاربران را مخدوش و ناخوانا میکند تا در حین انتقال بین فرستنده و گیرنده قابل خواندن نباشد. محققان در طی سالیان نگرانیهای خود را دربارهی این پروتکل عنوان کردهاند و پاسخ تلگرام این بوده که پروتکل این پیامرسان امن است، اگر شما برای ارتباطات امن خود به تلگرام اعتماد دارید پس در حال اعتماد کردن به MTProto هستید.
اما پلتفرم بات تلگرام روی پروتکل امنیت لایهی انتقال استوار است و از رمزنگاری HTTPS استفاده میکند. TLS برای بسیاری از کاربردها عالی است اما به اندازهی کافی قوی نیست که بتوان از آن به عنوان تنها رمزنگاری یک سرویس ارتباطی امن و مجهز به محافظت پیشرفته استفاده کرد. به همین دلیل است که اپهایی همچون واتساپ و سیگنال از پروتکل سیگنال استفاده میکنند و تلگرام نیز از MTProto بهره میبرد. اما تلگرام پلتفرم بات خود را بدون بهرهگیری از این پروتکل ایجاد کرده است و با این کار باعث ایجاد شرایطی شده که اضافه کردن یک بات به چت یا کانالی خاص میتواند امنیت آن را زیر سؤال ببرد.
فورسپوینت به طرز غیرمنتظرهای این مشکل امنیتی را کشف کرد. محققان امنیتی پیش از این باتهای تلگرام مخربی را یافته بودند که از آنها برای کنترل اپهای اندرویدی مخرب استفاده میشد یا حتی حملهکنندگان با استفاده از Bot API که در اختیار توسعهدهندگان قرار گرفته است دادههایی از چتهای کاربران بیرون میکشیدند. یکپارچه بودن باتها در این پیامرسان باعث محبوبیت آن در استراتژیهای مختلف حملههای امنیتی شده است. فورسپوینت هنگام تحقیق روی چنین روشهای حملهای متوجه شد که چتهای حاوی باتها امنیت پایینتری نسبت به چتهای دیگر دارند.
محققان نمونهای از بدافزار مدیریت از راه دور گودسندر را بررسی کرده و مکانیزمی را درون کد این بات تشخیص دادند که باعث منتظر ماندن بات برای دریافت دستورات میشد. این بدافزار حاوی اطلاعات شناسایی و اصالتسنجی بود، که به آنها API token و Chat ID میگویند، از این اطلاعات برای هدایت پاسخهای بات به چتها استفاده میشود. محققان کشف کردند که میتوانند با استفاده از این اطلاعات درخواستهایی در API مطرح کنند که تمام ارتباطات پیشین سازندهی بات و بات را به آنها نشان دهد. از آنجایی که هکر مورد نظر مرتکب این اشتباه شده بود که تمام آزمایشها و جاگیریها را در یک بار تنظیم انجام دهد (به جای اینکه با استفاده از چند حساب کاربری رد پای خود را بپوشاند) محققان توانستند نحوهی تنظیم، آزمایش و در نهایت انتشار این بدافزار توسط او را مطالعه کنند.
در حالی که محققان فورسپوینت از API مرتبط تلگرام به عنوان بخشی از تحقیقات خود برای شنود ارتباطات بات استفاده کردند، به این نکته اشاره میکنند که شخص دیگری میتواند از همین تکنیک برای بررسی مکالماتی استفاده کند که بات خاصی در آن قرار گرفته است و حتی شخصی که API token و Chat ID بات مورد نظر را ندارد میتواند به شیوههای دیگری به این اطلاعات دست پیدا کند. هر دوی این اطلاعات در تمام ارتباطات تلگرام جایگذاری میشوند تا باتها بدانند که کدام اطلاعات را باید برای کدام چتها ارسال کنند.
این ایده که یکی از امکانات یک سرویس پیامرسان امن، باعث آسیب رسیدن به روش رمزنگاری آن شود نگرانکننده است. سامرویل میگوید:
«میتوانید حساب کاربری خاصی ایجاد کنید و به بات بگویید که تمام پیامها را به این حساب فوروارد کند. کار آسانی است و میتوانید تمام پیامهای کانالی که بات در آن قرار دارد را فوروارد کنید. میتوانید تمام پیامهایشان را بخوانید.»
فورسپوینت این مشکل را به تلگرام گزارش داده است اما دربارهی تعامل خود با تلگرام چیزی نمیگوید. مارکوس را، سرپرست پشتیبانی تلگرام، میگوید «ترافیک مرتبط با باتهای تلگرام از طریق HTTPS منتقل میشود و موضوع قابل کشفی نیست. بخشی مستند شده از سیستم است. شیوهی استانداردی است. به این نکته توجه داشته باشید که در حالت پیشفرض باتهای تلگرام فقط پیامهای مرتبط با خودشان را دریافت میکنند.» تلگرام همچنین به این نکته اشاره میکند که دسترسی به API token و Chat ID یک بات مانند دسترسی به رمز عبور حساب کاربری شخص است، در چنین حالتی حملهکننده میتواند دسترسی کاملی به بات داشته باشد. تلگرام به اینکه چرا ارتباطات بات بدون رمزنگاری MTProto انجام میگیرند اشارهای نکرده است.
سوء استفاده از این امنیت تقلیلیافتهی چتها و کانالهایی که یک بات به آنها اضافه شده است به رمزگشایی ترافیک HTTPS تلگرام نیاز دارد. در بررسیهای فورسپوینت، این شرکت با استفاده از کلیدهای خود بات به آن دسترسی پیدا کرد. در حالت عمومی یک حملهکنندهی خبره میتواند با استفاده از حملهی مرد میانی به ارتباطات HTTPS شما دسترسی داشته باشد. دلیل اصلی اینکه پلتفرمهای ارتباطی امن از رمزنگاری پیشرفتهتری نیز استفاده میکنند این است که بعضی اوقات شنود ارتباطات HTTPS ممکن میشود.
کن وایت، سرپرست پروژهی اوپن کریپتو اودیت، میگوید:
«در شرایطی که بعضی از چتها فقط از TLS برای دسترسی به کارکرد بات استفاده میکنند شاهد کاهش امنیت آن مکالمات خواهیم بود. استفاده از پروتکلی که بخشی از پروتکل بنیادین پلتفرم نیست باعث محروم ماندن بخشی از سرویسها از این مزیت میشود. چنین چیزی میتواند یک معاملهی عمدی در هنگام طراحی باشد که تضمینهای امنیتی را به شدت تقلیل میدهد.»
برای اینکه ارتباطات خود را در تگرام ایمن نگاه دارید باتها را به چتهای خود اضافه نکنید و هنگامی که در چتها و کانالهایی هستید که باتی درون آنها قرار گرفته است هوشیار باشید. برای اینکه پیامهایتان را امن نگاه دارید تعداد کاربران حاضر در چت را به حداقل برسانید. بسیاری از متخصصان رمزنگاری و امنیتی میگویند بهترین راه برای ایمن ماندن در تلگرام استفاده نکردن از آن است. متخصصان شک دارند که آیا ارتباطات تلگرام واقعاً سرتاسر امن هستند (قابلیتی که به طور پیشفرض نیز فعال نیست) و نگران این هستند که پروتکل MTProto نتواند محافظت واقعی مورد نیاز کاربران را در اختیارشان قرار دهد. اما برای 200 میلیون کاربر این اپ تفاوت امنیتی بین چتهای که بات دارند و چتهای معمولی مهم است.
سامرویل میگوید «توسعهدهندگان باتها نمیتوانند کاری در این زمینه انجام دهند، تنها کار ممکن این است که به کاربران دربارهی خطرات چنین حملههایی هشدار دهند. مایهی تأسف است، چنین چیزی یک تصمیم عمدی است که توسط تیم تلگرام و هنگام طراحی پلتفرم گرفته شده است.»