سؤال

لدي تطبيق محلي (لم أكتبه ولا أستطيع تغييره) يتحدث إلى خدمة ويب بعيدة.إنه يستخدم HTTPS، وأود أن أرى ما يحدث في حركة المرور.

هل هناك أي طريقة يمكنني من خلالها القيام بذلك؟أفضل نظام Windows، ولكن يسعدني إعداد وكيل على Linux إذا كان هذا يجعل الأمور أسهل.

ما أفكر فيه:

  1. إعادة توجيه موقع الويب عن طريق اختراق ملف المضيفين (أو إعداد DNS بديل).
  2. تثبيت خادم HTTPS على ذلك الموقع، بشهادة موقعة ذاتيًا (ولكنها موثوقة).
  3. على ما يبدو، يمكن لـ WireShark رؤية ما هو موجود في HTTPS إذا قمت بتزويده بالمفتاح الخاص.لم أحاول هذا قط.
  4. بطريقة ما، قم بتوكيل حركة المرور هذه إلى الخادم الحقيقي (أي.إنه "هجوم" رجل في المنتصف).

هل يبدو هذا معقولا؟هل يستطيع WireShark حقًا رؤية ما يحدث في حركة مرور HTTPS؟هل يمكن لأي شخص أن يوجهني إلى الوكيل المناسب (والتكوين لنفسه)؟

هل كانت مفيدة؟

المحلول

يفعل العابث افعل ما تريد؟

ما هو عازف الكمان؟

Fiddler هو وكيل تصحيح الأخطاء على الويب يسجل جميع حركة مرور HTTP (S) بين جهاز الكمبيوتر الخاص بك والإنترنت.يتيح لك Fiddler فحص جميع حركة مرور HTTP (S) ، وضبط نقاط التوقف ، و "كمان" مع البيانات الواردة أو الصادرة.يتضمن Fiddler نظامًا فرعيًا قويًا يستند إلى الأحداث ، ويمكن تمديده باستخدام أي لغة .NET.

Fiddler مجاني ويمكنه تصحيح حركة المرور من أي تطبيق تقريبًا ، بما في ذلك Internet Explorer و Mozilla Firefox و Opera وغيرها.

نصائح أخرى

يمكن لـ Wireshark بالتأكيد عرض تدفقات TLS/SSL المشفرة كنص عادي.ومع ذلك، ستحتاج بالتأكيد إلى المفتاح الخاص للخادم للقيام بذلك.يجب إضافة المفتاح الخاص إلى Wireshark كخيار SSL ضمن التفضيلات.لاحظ أن هذا لا يعمل إلا إذا كان بإمكانك متابعة تدفق SSL من البداية.لن يعمل إذا تم إعادة استخدام اتصال SSL.

بالنسبة لبرنامج Internet Explorer، يمكن تجنب هذا (إعادة استخدام جلسة SSL) عن طريق مسح حالة SSL باستخدام مربع حوار خيارات الإنترنت.قد تتطلب البيئات الأخرى إعادة تشغيل المتصفح أو حتى إعادة تشغيل النظام (لتجنب إعادة استخدام جلسة SSL).

القيد الرئيسي الآخر هو أنه يجب استخدام تشفير RSA.لا يستطيع Wireshark فك تشفير دفق TLS/SSL الذي يستخدم DFH (Diffie-Hellman).

بافتراض أنه يمكنك تلبية القيود المذكورة أعلاه، فإن أمر النقر بزر الماوس الأيمن "Follow SSL Stream" يعمل بشكل جيد إلى حد ما.

تحتاج إلى إعداد وكيل لتطبيقك المحلي، وإذا لم يحترم إعدادات الوكيل، فضع وكيلًا شفافًا وقم بتوجيه كل حركة مرور https إليه قبل الخروج.شيء من هذا القبيل يمكن أن يكون "الرجل" في المنتصف: http://crypto.stanford.edu/ssl-mitm

وإليك أيضًا تعليمات مختصرة حول كيفية أرشفة هذا باستخدام wireshark: http://predev.wikidot.com/decrypt-ssl-traffic

يجب عليك أيضا أن تنظر تشارلز.من وصف المنتج في وقت هذه الإجابة:

Charles هو وكيل HTTP / مراقب HTTP / وكيل عكسي يمكّن المطور من عرض كل حركة مرور HTTP وSSL / HTTPS بين أجهزته والإنترنت.يتضمن ذلك الطلبات والاستجابات ورؤوس HTTP (التي تحتوي على ملفات تعريف الارتباط ومعلومات التخزين المؤقت).

أوصي باستخدام WireShark، فهو أفضل أداة لمتابعة أجزاء مختلفة من حركة المرور.على الرغم من أنني لست متأكدًا مما يمكنك رؤيته عند تشغيل SSL.ربما، إذا قمت بتزويدها بشهادة؟

  1. لاستخدام وكيل https للمراقبة، يعتمد ذلك على نوع المصافحة.إذا لم يتحقق تطبيقك المحلي من شهادة الخادم من خلال توقيع CA الذي لا يمكنك تزييفه، ولم يتحقق الخادم من شهادة تطبيقك المحلي (أو إذا كان لديك واحدة لإعدادها على وكيل https)، فيمكنك إعداد وكيل https لـ مراقبة حركة مرور https.بخلاف ذلك، أعتقد أنه من المستحيل مراقبة حركة المرور باستخدام وكيل https.

  2. هناك طريقة أخرى يمكنك تجربتها وهي إضافة مسبار الأجهزة إلى إجراءات برنامج العميل الخاص بك حيث يرسل ويستقبل الرسائل من مكتبة https الخاصة به.إنه يحتاج إلى بعض أعمال الهندسة العكسية، ولكن يجب أن يناسبك في جميع المواقف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top