تختبر Telegram إصدارًا جديدًا لحظر المرور - إخفاء المرور في ظل بروتوكول TLS العادي (https).
الخلفية: محاولات حظر Telegram تحدث في بلدان مختلفة ، كان خيار الحظر الأول بسيطًا - عناوين IP للحظر لخوادم Telegram.
يحارب Telegram هذا الهجوم بنجاح كبير ، مما يؤدي إلى تغيير عنوان IP الذي يتوفر منه بشكل دوري ، ولكن هذا يؤدي إلى اتصال مبدئي طويل ...
أصبحت بروكسيات الجوارب متاحة بعد ذلك بقليل ، لكن البروتوكول لا يعني التشفير ، وهذا جعل من الممكن ببساطة البحث "داخل" نفق الجوارب ، مع تحديد أن Telegram كانت بداخلها ، مما يحظر الوكلاء.
كانت الجولة التالية هي إصدار MTProto Proxy ، وهو خادم وكيل Telegram يستخدم بروتوكول MTProto الخاص به ، ولكنه واجه أيضًا بعض المشاكل - حجم الحزمة مميز ومحدّد تمامًا ، وبدأ العديد من DPIs في تحديد Telegram بعد وصول حظر الحزمة الأول.
كانت الإجابة على هذا السلوك مقدمة لإصدار جديد من بروتوكول MTProto - بطول عشوائي ، والآن أصبح من الصعب تحديد أن نفق Telegram أمامنا ، بدأ جزء من DPI في تصنيف حركة المرور على أنها جزء "آخر" ولكن لا يزال يتعلم التعرف على نمط مميز وببعض الاحتمالات (وليس 100٪) تحديد أن يرتبط حركة المرور إلى برقية
الآن نحن ننتقل إلى المرحلة التالية (يبدو أنها نهائية أو قبل النهائية) -
إخفاء المعلومات .
إخفاء المعلومات (من اللغة اليونانية. hiddenανός "مخفي" + "اكتب" ؛ رسائل. "كتابة سرية") - طريقة لنقل أو تخزين المعلومات ، مع مراعاة سرية حقيقة هذا النقل (التخزين).
بمعنى آخر - سوف تتظاهر Telegram الآن في أنها حركة مرور TLS (https) منتظمة.
لماذا التظاهر؟
تكمن الإجابة على السطح - في الوقت الحالي ، معظم حركة المرور هي TLS (https) ، عند استخدام هذا البروتوكول ، هذا ما يراه مزودك أو DPI:
- IP الخاص بك
- خادم IP
- مجال الاتصال (لن يرى عنوان URL)
علاوة على ذلك ، يجري العمل النشط على العنصر الأخير من أجل إزالته ، بالإضافة إلى اثنين من عناوين IP ، كان هناك فقط نفق مشفر مع محتويات غير معروفة.
في هذه الحالة ، تبدأ جميع البروتوكولات غير القياسية في جذب المزيد من الاهتمام والحل لهذه المشكلة هو شيء واحد - إذا كنت تبدو مثل TLS (https) ، فهناك أسئلة أقل.
التنفيذ الفني
عند استخدام البروتوكول الجديد ، يتم التفاف تيار MTProto في HTTPS القياسي (أول رسائل تفاوض عبر النفق) يتم فيها نقل المجال (المزيف). بعد التفاوض على بروتوكول MTProto - لا يتم استخدام Fake-TLS ، ثم تبدأ حركة المرور في الانتقال مع بروتوكول MTProto المعتاد بطول عشوائي (مفاتيح dd).
كمرجع: يستخدم Telegram 3 أنواع من المفاتيح لـ MTProto Proxy:
- المفاتيح العادية (يتم تحديدها بسهولة بواسطة DPI)
- أول حرفين - dd - طول الرسالة العشوائية (يمكن DPI تحديد البروتوكول فقط عن طريق حزم تفاوض الاتصال الأولى - يبدو https / TLS عادي)
- أول حرفين - ه - طول الرسالة العشوائية TLS + (لا يمكن لإدارة شؤون الإعلام تحديد البروتوكول ، والرسالة الأولى وجميع الرسائل اللاحقة تبدو مثل HTTPS / TLS)
أين تحاول؟
يوجد بالفعل خادمان وكيلان يدعمان المعيار الجديد
(لا يزال هناك خادم وكيل رسمي ، على الرغم من أنه أضاف دعمًا لمفاتيح dd منذ وقت طويل)دعم وضع وكيل TLS وهمية:
- بيثون github.com/alexbers/mtprotoproxy
- Erlang github.com/seriyps/mtproto_proxy/tree/fake-tls
يرجى ملاحظة: في وقت كتابة هذا التقرير ، تكون وظيفة tls - المقالة وهمية تجريبية ، لذلك تحتاج إلى استخدام إصدارات Beta أو Alpha من البرنامج (كل من الوكلاء والعملاء)أي عملاء يدعمون الوضع الجديد؟
الإصدارات التجريبية من Telegram Desktop و Telegram iOS ونسخة مستقرة على Android.
كيف تجرب؟
- على سبيل المثال ، سوف نستخدم بروكسي في بيثون:
- تثبيت الوكيل:
git clone https://github.com/alexbers/mtprotoproxy.git; cd mtprotoproxy
- :
python3 mtprotoproxy.py
- (experimental) — :
tg: tg://proxy?server=8.8.8.8&port=443&secret=7gAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29t (experimental)
- — , Fake TLS.
?
Google.com , DPI HTTPS Google.com IP — , , .
! (IP) Google.com
Fake TLS — ?
— HTTPS DPI :
- IP
( eSNI).Fake TLS , , , Google - Google — , , - - Google HTTPS/TLS .
?
, — — ( ). , HTTPS . ? — , .
— + () — , — MTProto.
eSNI ( ) — .
?
, Telegram , https/TLS WebSocket — .
MTProto — , Telegram — .
, — () , .
— 443 ( HTTPS) ( dd ee), ee dd , .
— , eSNI — .