في الشبكات الحديثة، يعد تأمين نقل البيانات أمرًا بالغ الأهمية، وتُستخدم بروتوكولات Secure Sockets Layer (SSL) وTransport Layer Security (TLS) على نطاق واسع لضمان خصوصية البيانات وأمانها. ومع ذلك، هناك حالات قد تحتاج فيها إلى تحليل حركة المرور المشفرة لاستكشاف الأخطاء وإصلاحها أو التحليل الجنائي أو مراقبة الشبكة. سترشدك هذه المقالة الفنية خلال فك تشفير حركة مرور SSL/TLS باستخدام Wireshark وtcpdump، وهما أداتان قويتان لتحليل الشبكة. سنغطي ماهية Wireshark وtcpdump، ونشرح تشفير SSL وTLS، ونوضح كيفية فك تشفير حركة مرور SSL باستخدام مفتاح سري رئيسي أو مفتاح خاص RSA.
ما هو Wireshark و tcpdump؟ #
يريشارك #
Wireshark هو محلل بروتوكولات شبكة مفتوح المصدر يتيح للمستخدمين التقاط حركة المرور الجارية على شبكة الكمبيوتر وتصفحها بشكل تفاعلي. يتيح لك فحص البيانات على مستوى مفصل، مما يوفر رؤية واضحة للبروتوكولات وحزم البيانات التي يتم إرسالها. يُستخدم Wireshark على نطاق واسع لاستكشاف أخطاء الشبكة وإصلاحها وتطوير البروتوكولات وتحليل الأمان.
com.tcpdump #
tcpdump هي أداة لتحليل حزم البيانات من خلال سطر الأوامر، حيث تلتقط حركة مرور الشبكة وتعرضها في الوقت الفعلي. وهي أداة فعّالة للغاية لالتقاط البيانات من الشبكات الحية، مما يسمح لك بحفظ الحزم في ملف (يُعرف باسم ملف الالتقاط) لتحليلها لاحقًا. ورغم أن tcpdump يفتقر إلى الواجهة الرسومية لبرنامج Wireshark، إلا أنه قوي للتحليل السريع وتصفية الحزم وجمع البيانات على الأنظمة البعيدة.
ما هو تشفير SSL؟ #
SSL (Secure Sockets Layer) هو بروتوكول طورته شركة Netscape لنقل المستندات الخاصة عبر الإنترنت. يستخدم SSL خوارزميات التشفير لضمان عدم قدرة أي شخص يعترض الإرسال على قراءة البيانات المرسلة بين العميل (مثل متصفح الويب) والخادم.
TLS (Transport Layer Security) هو خليفة SSL وهو أكثر أمانًا. وفي حين أن TLS يختلف تقنيًا عن SSL، فإن مصطلح SSL يُستخدم غالبًا للإشارة إلى كلا البروتوكولين.
تعمل بروتوكولات SSL/TLS من خلال إنشاء قناة اتصال آمنة بين نظامين. وتتضمن المفاهيم الأساسية في تشفير SSL/TLS ما يلي:
- التشفير المتماثل: يتم استخدام مفتاح واحد لتشفير وفك تشفير البيانات.
- التشفير غير المتماثل: يتم استخدام مفتاحين (عام وخاص)؛ لا يمكن فك تشفير البيانات المشفرة بالمفتاح العام إلا باستخدام المفتاح الخاص المقابل.
- الشهادات: يستخدم SSL/TLS الشهادات للتحقق من هوية الخادم وأحيانًا العميل.
- المصافحة: العملية التي يقوم فيها العميل والخادم بإنشاء اتصال آمن، وتبادل المفاتيح، والاتفاق على طرق التشفير.
فك تشفير SSL باستخدام مفتاح سري مسبق #
يعد مفتاح السر الرئيسي المسبق مكونًا أساسيًا في عملية مصافحة SSL/TLS. يُستخدم هذا المفتاح لتوليد مفاتيح الجلسة، والتي تُستخدم بعد ذلك لتشفير البيانات الفعلية المنقولة عبر الشبكة. من خلال الحصول على مفتاح السر الرئيسي المسبق، يمكنك فك تشفير بيانات الجلسة.
الخطوات الأساسية لفك تشفير SSL باستخدام مفتاح سري مسبق #
لفك تشفير حركة مرور SSL باستخدام مفتاح السر الرئيسي المسبق، اتبع الخطوات التالية:
1. تعيين متغير بيئة ملف السجل
2. التقاط باستخدام tcpdump والتحقق من ملف السجل
3. تكوين Wireshark لفك تشفير SSL
تعيين متغير بيئة ملف السجل #
الضبط SSLKEYLOGFILE على ويندوز #
في أنظمة Windows، ستحتاج إلى تعيين متغير بيئة لتخزين مفاتيح السرية الأساسية في ملف سجل. هذا المتغير، المسمى SSLKEYLOGFILE, يحدد المسار الذي سيتم حفظ هذه المفاتيح فيه.
1. ابدأ بالنقر بزر الماوس الأيمن على جهاز الكمبيوتر واختيار عقارات من القائمة لفتح قائمة النظام.
2. انقر على إعدادات النظام المتقدمة في القائمة الموجودة على الجانب الأيسر لفتح نافذة خصائص النظام.
3. في خانة رمز الخصم، أدخل TABBYDAY. متقدم علامة التبويب، انقر فوق الزر "متغيرات البيئة".
4. تحت متغيرات المستخدم، انقر فوق الجديد… الزر. يمكنك أيضًا إنشاء هذا المتغير تحت متغيرات النظام إذا كنت تريد تسجيل مفاتيح SSL لجميع المستخدمين على النظام، فمن الأفضل عادةً أن تقتصر على ملفك الشخصي.
5. في خانة رمز الخصم، أدخل TABBYDAY. اسم المتغير الحقل ، أدخل SSLKEYLOGFILE.
في خانة رمز الخصم، أدخل TABBYDAY. قيمة متغيرة في الحقل، أدخل المسار الذي تريد حفظ ملف السجل فيه. بدلاً من ذلك، يمكنك النقر فوق تصفح الملف… لتحديد المسار باستخدام أداة اختيار الملف.
إذا كنت تقوم بتعيين هذا كمتغير على مستوى النظام، فتأكد من إمكانية وصول جميع المستخدمين إلى الملف، أو استخدم أحرف البدل. على سبيل المثال، يمكنك استخدام %USERPROFILE%\AppData\ssl-keys.log or C:\ssl-keys.log .
6. بمجرد الانتهاء ، انقر فوق OK لتطبيق التغييرات والمتابعة إلى الخطوات التالية.
الضبط SSLKEYLOGFILE على لينكس أو ماك #
في Linux وMac، ستحتاج إلى ضبط SSLKEYLOGFILE متغير البيئة باستخدام تصدير. في نفس المحطة الطرفية، يمكنك تنفيذ com.tcpdump وسوف يقوم بإنشاء ملف سجل المفتاح المشار إليه عند اكتشاف اتصال SSL.
root@noid-01:~# export SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump ...
للحفاظ على تكوين متغير بيئي دائم، قم بتحرير ملف تعريف المستخدم باستخدام محرر نصوص مثل نانوبالنسبة لنظام Linux، يتم تخزين هذا المتغير في ~ / .bashrcوعلى نظام التشغيل Mac، يتم إنشاؤه في ~ / .bash_profile. ثم أضف تصدير قيادة ل SSLKEYLOGFILE متغير في نهاية الملف وحفظ التغييرات.
التقاط باستخدام tcpdump والتحقق من ملف السجل #
لاختبار إنشاء ملف السجل، حاول فتح متصفح، com.tcpdump أو قم بتشغيل أمر curl إلى خادم HTTPS للتأكد من إنشاء الملف بشكل صحيح.
على سبيل المثال، في نفس المحطة الطرفية التي تم إنشاء متغير البيئة فيها، com.tcpdump لالتقاط حركة المرور وسيتم تشغيل خدمة HTTPS لفك تشفيرها:
root@noid-01:~# export SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump -i any port 443 -w ~/capture.pcap & root@noid-01:~# curl https://(ثم أغلق أمر tcpdump)
التحقق من ملف السجل ~/.ssl-key.log والتقاط حركة المرور في ~/capture.pcap أخيرًا، راجع الخطوة الأخيرة لرؤية حركة المرور المشفرة باستخدام Wireshark.
إذا قمت بفتح سجل مفتاح ssl سوف ترى الملف كما يلي:
root@noid-01:~# cat ~/.ssl-key.log CLIENT_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a db6f3d27b40b7c8e10ed415281b39e45ca6ef2b59468f943dbe6e81e1f82e0f0 SERVER_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a d819660e194d9439e7152ceac2a439b41584afbeb5d719663cecb3c63b5c2eb1 CLIENT_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 71d4806141cb1b247c1d1f3f7747a804fcc5e06c4192d8f53fc763a27b92316c SERVER_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 2ca17b0f7ff708fb3001be17a1c85163219221a4595462415e9e9e6653daf1fa EXPORTER_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 3f74b0cbe802d3e3dd3b5f6dee4114f928ec936a0cd388643d146cfb606f62a4
تكوين Wireshark لفك تشفير SSL #
بمجرد أن يقوم نظام الالتقاط بتسجيل مفاتيح ما قبل الرئيسية، يمكنك استخدام ملف سجل المفاتيح مع الحزم الملتقطة لفك تشفير حركة مرور SSL في Wireshark.
1. قم بتحميل ملفات سجل المفاتيح والتقاطها إلى النظام المثبت عليه Wireshark.
2. افتح ملف التقاط حركة المرور باستخدام Wireshark.
3. قم بتكوين بروتوكول SSL. انقر فوق تعديل، ثم حدد التفضيلاتسيتم فتح مربع الحوار "التفضيلات"، مع عرض قائمة بالعناصر على اليسار. قم بتوسيع بروتوكولات القسم، قم بالتمرير لأسفل، وانقر على بروتوكول طبقة المقابس الآمنة (SSL). في بروتوكول طبقة المقابس الآمنة (SSL) خيارات البروتوكول، حدد الحقل المسمى اسم ملف سجل (Pre)-Master-Secretانتقل إلى ملف السجل الذي قمت بإعداده مسبقًا، أو الصق المسار مباشرةً في هذا الحقل.
4. قم بتطبيق التكوين. بعد ضبط اسم ملف سجل (Pre)-Master-Secret، اضغط هنا OK لحفظ التغييرات والعودة إلى Wireshark. أنت الآن جاهز لفك تشفير حركة المرور الملتقطة. عند تحديد إطار بيانات مشفر، تحقق من عرض بايت الحزمة. أسفل العرض، يجب أن ترى علامة تبويب لـ بيانات SSL المشفرة الى جانب الطرق الاخرى
إذا كانت بيانات الجلسة لا تزال تبدو غير قابلة للقراءة ولا يمكنك رؤية أي HTML، فقد يكون ذلك بسبب ضغط GZIP، والذي يستخدمه عادةً خوادم الويب مثل Apache. في هذه الحالة، انقر فوق جسم الكيان غير مضغوط علامة التبويب، والتي تتوفر فقط عند تمكين فك تشفير SSL. هنا، يمكنك عرض الكود المصدر غير المضغوط للموقع، مثل عنصر العنوان لصفحة Apache الافتراضية في نص عادي.
استخدام مفتاح RSA لفك تشفير SSL #
يقدم Wireshark ميزة تسمح لك بتحميل مفاتيح RSA الخاصة بك لفك تشفير حركة مرور SSL، ولكن في الممارسة العملية، أصبح فك تشفير مفتاح RSA قديمًا.
يرجع هذا الانخفاض في الاستخدام إلى اعتماد Perfect Forward Secrecy (PFS)، والذي جعل فك تشفير مفتاح RSA التقليدي عتيقًا. باستخدام PFS، لا تعتمد الجلسات التي يتم التفاوض عليها باستخدام Diffie-Hellman على مفتاح RSA بشكل مباشر. بدلاً من ذلك، فإنها تولد مفتاحًا لمرة واحدة يتم تخزينه فقط في ذاكرة الوصول العشوائي (RAM) ويتم تشفيره باستخدام المفتاح الموجود على القرص.
إذا كنت قد استخدمت مفتاح RSA في السابق لفك تشفير حركة المرور ووجدت أنه لم يعد يعمل، فمن المحتمل أن الجهاز المستهدف يستخدم تبادلات مفاتيح Diffie-Hellman. يمكنك التأكد من ذلك من خلال تمكين تسجيل SSL في Wireshark.
لتفعيل التسجيل:
1. انقر على تعديل في قائمة شريط الأدوات وحدد التفضيلات.
2. توسيع بروتوكولات القسم الموجود على اليسار، قم بالتمرير لأسفل وانقر على بروتوكول طبقة المقابس الآمنة (SSL).
3. قم بتعيين موقع ملف سجل SSL الخاص بك عن طريق النقر فوق تصفح .
بمجرد تمكين التسجيل، قم بتسجيل جلسة مع المضيف الذي يدعم SSL وتحقق من السجلات. ابحث عن إطار تفاوض مصافحة TLS؛ من المحتمل أن ترى إدخال DHE (أو ECDHE، لمفاتيح المنحنى الإهليلجي) في سلسلة التشفير، مما يشير إلى أن تبادلات مفاتيح Diffie-Hellman قيد الاستخدام.
إذا رأيت رسالة تشير إلى عدم إمكانية العثور على السر الرئيسي، وفشل فك تشفير مفتاح RSA، فسوف تحتاج إلى التبديل إلى طريقة السر الرئيسي المسبق لفك التشفير.
مع انتشار PFS على نطاق واسع، وخاصة مع ظهور TLS 1.3، أصبح فك تشفير مفتاح RSA التقليدي قديمًا ولا ينبغي الاعتماد عليه بعد الآن.
تعرف أكثر #
تنسيق SSLKEYLOGFILE لـ TLS #
استخدم ملف سجل مفتاح SSL التنسيق هو ملف نصي يستخدم لتخزين مفاتيح سرية ما قبل رئيسية لفك تشفير اتصالات TLS. يتم ترميز الملف بتنسيق UTF-8، حيث يحتوي كل سطر على سر يتم تحديده بواسطة تسمية وقيمة عشوائية للعميل والسر نفسه، وكلها مفصولة بمسافات. يقبل التنسيق نهايات أسطر مختلفة (CRLF وCR وLF) والأسطر التي تبدأ بـ # يتم التعامل معها كتعليقات.
بالنسبة لـ TLS 1.3، تتوافق العديد من العلامات مع مراحل مختلفة من جدول المفاتيح، مثل العميل_المصافحة_سر_حركة_المرور وSERVER_TRAFFIC_SECRET_0. بالنسبة إلى TLS 1.2 والإصدارات الأقدم، العميل_العشوائي العلامة تحدد رئيسي سر.
اعتبارات أمنية:
الوصول إلى ملف سجل مفتاح SSL يسمح بفك تشفير حركة مرور TLS، مما يشكل خطرًا أمنيًا كبيرًا. تعد عناصر التحكم في الوصول المناسبة ضرورية لمنع الوصول غير المصرح به أو تصعيد الامتيازات. يجب تمكين التسجيل فقط من قبل المستخدمين المصرح لهم، ويجب تطبيق أذونات الملفات الصارمة. لا تسمح الأسرار المسجلة بفك التشفير فحسب، بل يمكنها أيضًا تمكين المهاجمين من تعديل أو حقن البيانات في الاتصالات النشطة، وفي بعض الحالات، انتحال هوية نقاط النهاية أو تزوير الرسائل.
كيف تعمل مصافحة SSL ثنائية الاتجاه؟ #
إن مصافحة SSL ثنائية الاتجاه تصادق على كل من الخادم والعميل. وفيما يلي كيفية تطور العملية:
1. مرحبا العميل:يبدأ العميل عملية المصافحة بإرسال رسالة "مرحبًا بالعميل" إلى الخادم. تتضمن هذه الرسالة مجموعات التشفير المدعومة من قبل العميل وتوافقات إصدارات TLS.
2. مرحبا الخادم:يستجيب الخادم برسالة "مرحبًا بالخادم"، والتي تحتوي على شهادة الخادم العامة وطلب للحصول على شهادة العميل.
3. التحقق من صحة شهادة العميل:يتحقق العميل من شهادة الخادم. إذا كانت صالحة، يرسل العميل شهادته الخاصة إلى الخادم.
4. التحقق من صحة شهادة الخادم:يتحقق الخادم من شهادة العميل. إذا كانت شهادة العميل صالحة، يتم إنشاء الجلسة، مما يسمح بالاتصال الآمن بين الطرفين.
هل من الممكن فك تشفير حركة مرور SSL/TLS التي تم رصدها بشكل سلبي؟ #
نعم، من الممكن فك تشفير حركة مرور SSL/TLS التي يتم تعقبها بشكل سلبي، ولكنك ستحتاج إلى مفتاح RSA للقيام بذلك. يمكن الحصول على هذا المفتاح من خلال وسائل مشروعة مع الحصول على إذن مناسب أو، على نحو أقل أخلاقية، عن طريق اعتراضه باستخدام هجوم "الرجل في المنتصف".