-
Notifications
You must be signed in to change notification settings - Fork 8
SNI Spoofing.ar
يغطي هذا الدليل التحايل على فحص الحزم العميق الاختياري (DPI) في feature/sni، وليس المثبت الذي تم إصداره حاليًا.
SNI هو اسم الخادم في تحية TLS.
ترسل هذه الميزة تحية إضافية باسم مزيف قبل دفق الوكيل الحقيقي.
يبقى اسم TLS أو REALITY الحقيقي في التكوين المستورد الخاص بك دون تغيير.
لا تعمل قيمة sni المستوردة على تمكين الانتحال تلقائيًا.
- احفظ تكوين الوكيل الخاص بك في اللوحة.
- افتح تحايل DPI (اختياري) على لوحة القيادة.
- أدخل اسم المجال، مثل
cover.example.invalidللاختبار المحلي. - احفظ الإعداد.
استخدم نطاقًا مناسبًا لشبكتك الفعلية؛ لا يمكن حل مجال المثال. إذا كان Caspian قيد التشغيل، فإن الحفظ يعيد توصيله بالإعداد الجديد. لتعطيل الانتحال، قم بمسح الحقل وحفظه. يؤدي استبدال التكوين إلى مسح الاسم المزيف وإعدادات التقسيم. يؤدي تحديد إدخال آخر أو تحديث الاشتراك إلى الحفاظ عليه.
افتح تحايل DPI (اختياري) بجانب التكوين المحفوظ:
- اسم الخادم المزيف: اتركه فارغًا لإيقاف تشغيل SNI المزيف.
- تقسيم TCP: أرسل تحية TLS الأولية في كتابتين بالقرب من منتصف اسم مضيف SNI.
- تقسيم سجل TLS: قم بتقسيم سجل تحية TLS في هذا الموضع دون تغيير محتويات المصافحة.
كل خيار مستقل. يمكنك الجمع بينهما أو ترك الثلاثة. بدون ملحق SNI، يستخدم التقسيم موضعًا بعد نوع المصافحة مباشرة. يعد تقسيم TCP أفضل جهد: لا تضمن عمليات الكتابة المنفصلة وجود حزم منفصلة على كل نظام تشغيل وشبكة. يؤدي تقسيم سجل TLS إلى تغيير حدود السجل ويمكن أن يفشل مع بعض الخوادم أو شبكات CDN. يتطلب كلا الخيارين المقسمين حاليًا TLS عاديًا مع VLESS أو VMess أو Trojan عبر وسائل نقل IPv4 TCP المدعومة. لم يتم تمكين تقسيم REALITY؛ لا يزال بإمكان REALITY استخدام SNI المزيف بمفرده. يتم تقسيم ClientHello الأولي فقط؛ يتم ترحيل حركة مرور التطبيق لاحقًا بشكل طبيعي. لا يحتاج وضع الانقسام فقط إلى الوصول إلى WinDivert أو مقبس الحزمة أو BPF. عند تحديد SNI مزيف أيضًا، يجب أن ينتهي تأكيد الحزمة الخاصة به قبل إرسال أي تحية حقيقية. تؤدي التحيات المشوهة أو غير المكتملة أو كبيرة الحجم أو المتوقفة إلى إغلاق الاتصال؛ لا تؤدي إعادة المحاولة إلى إزالة الخيار الممكّن بصمت. يؤدي الحفظ إلى إعادة توصيل نفق نشط؛ يؤدي استبدال التكوين إلى مسح الخيارات الثلاثة جميعها.
حقول الحالة هي spoof_sni، وtcp_split، وtls_record_split.
تؤدي ترقية ملف الإصدار 4 إلى الحفاظ على اسمه المزيف وتترك إعدادات التقسيم معطلة.
يكتب هذا الفرع إصدار مخطط الحالة 5. ترفض الإصدارات الأقدم ملف الحالة هذا لمنع فقدان البيانات. احتفظ بنسخة احتياطية لحالة ما قبل الترقية إذا كنت بحاجة إلى العودة إلى إصدار أقدم.
يدعم هذا الإصدار VLESS وVMess وTrojan عبر IPv4 TCP، بما في ذلك WebSocket وHTTPUpgrade وgRPC. وهو لا يدعم خوادم Hysteria2 أو QUIC أو SOCKS أو Shadowsocks أو XHTTP أو IPv6 فقط. يمكن لـ SOCKS التفاوض على نقطة نهاية UDP منفصلة لا يستطيع معيد توجيه TCP تغطيتها. لا يمكن لـ Shadowsocks UDP الأصلي، بما في ذلك حركة مرور DNS النفقية، استخدام معيد توجيه TCP فقط. يختار معيد التوجيه أول عنوان IPv4 متاح من عناوين الخادم المكتشفة. إذا فشل التأكيد، فسيتم إغلاق الاتصال دون إعادة توجيه الدفق الحقيقي. لا يعود إلى الاتصال العادي.
يحتاج Fake SNI على نظام التشغيل Windows x64 إلى ملفات WinDivert المضمنة في بنية المثبت المحلي. لا يمكن لـ Windows ARM64 استخدام SNI المزيف؛ لا يستخدم وضع الانقسام فقط الواجهة الخلفية للحزمة. يحتاج SNI المزيف على Linux إلى امتيازات مأخذ الحزمة؛ يحتاج نظام التشغيل macOS إلى الوصول إلى جهاز BPF على واجهة بنمط Ethernet. تمتلك خدمة Caspian المميزة هذه الموارد وتغلقها عندما تتوقف.
يثبت اختبار الاسترجاع لنظام التشغيل Windows أن الخادم يتلقى الدفق الحقيقي دون تغيير. ولا يثبت أن الانتحال يعمل ضد تصفية مزود الخدمة الخاص بك. تحتاج إصدارات Linux وmacOS أيضًا إلى اختبارات حزم مباشرة على أنظمتها المستهدفة.
المصدر والفكرة الأساسية هي patterniha/SNI-Spoofing، المرخصة بموجب GPL-3.0. انظر اعتمادات طرف ثالث.
لا يوجد ضمان عالمي آمن لـ DPI. يحاول انتحال SNI الاختياري التأثير على كيفية قراءة نظام التصفية لحركة مرور TCP الأولية.
ولا يخفي عنوان IP للخادم أو حجم حركة المرور أو التوقيت، ولا يزال بإمكان المزود حظر الاتصال.
يحتفظ تطبيق feature/sni بهوية TLS الحقيقية ويرفض تأكيد المحاكاة الساخرة الفاشلة بدلاً من إرسال الدفق الحقيقي مباشرةً.
رقم GoodbyeDPI وzapret هما مرجعان بحثيان للاستراتيجيات المستقبلية المحتملة. يأتي رمز SNI الأساسي والفكرة من patterniha/SNI-Spoofing، مع الحفاظ على إسناد GPL. لا يقوم Caspian بتجميع تلك المشاريع الأخرى أو يدعي أن مؤلفيها يؤيدونها.
لا. إن SNI المستورد هو هوية الخادم الحقيقية. قم بتعيين اسم محاكاة ساخرة اختياري منفصل لتمكين هذا الوضع. اقرأ إعداد SNI والقيود قبل تمكينه.
ينسب Caspian أيضًا الفضل إلى مؤلفي هذه المشاريع والمساهمين فيها للأفكار ومقارنات التنفيذ التي استرشد بها عمل SNI. لا يتم تجميع التعليمات البرمجية والملفات التنفيذية الخاصة بهم.
- selfishblackberry177/sni-spoof: مقارنة إعادة توجيه Go SNI.
- therealaleph/sni-spoofing-rust: تنفيذ Rust SNI ومقارنة الميزات.
- bol-van/zapret: استراتيجيات وتشخيصات التحايل على DPI.
- ValdikSS/GoodbyeDPI: استراتيجيات التحايل على DPI.
- Floxu1/UAC-SNI-Spoofer-Android: أفكار تكامل Android SNI.
يحتفظ الكود المعدل بترخيصه وإشعاراته الأولية. لا تمنح إقرارات الفكرة الإذن بنسخ التعليمات البرمجية أو تشير ضمنيًا إلى التأييد. راجع اعتمادات طرف ثالث للاطلاع على الإصدارات والتراخيص ونطاق الاستخدام الذي تمت مراجعته.
أدلة Caspian: الإعداد والبروتوكولات المدعومة · انتحال SNI للتحايل على DPI: الإعداد والحدود.
- Architecture and data flow
- Development and testing
- Documentation map
- Getting started
- Install on Linux and Raspberry Pi
- Install on macOS
- Install on Windows
- Installation
- Licence and credits
- Page template
- Panel and configuration
- Protocols and transports
- Releases and maintenance
- Security and privacy
- Caspian SNI spoofing and TLS splitting for DPI circumvention
- Third-party code and credits
- Translations
- Troubleshooting for home users