المناهج السعودية

المقالات العامة

كيف تتم برمجة ال VPN؟ وما هي آلية عمله؟

كيف تتم برمجة ال VPN؟ وما هي آلية عمله؟

كيف تتم برمجة ال VPN؟ وما هي آلية عمله؟

كيف تتم برمجة ال VPN؟ وما هي آلية عمله؟

بداية، هناك شيء يسمى شبكة محلية، اللي هي شبكة بين عدة اجهزة تتواصل مع بعضها البعض وهذه الأجهزة لا تخرج إلى الانترنيت، إذا كنت تذهب إلى محلات لعب الكمبيوتر، لو جربت تلعب لعبة كونتر مع اصدقائك، هذه الشبكة بينك وبين اصدقائك هي شبكة محلية، هذه الكمبيوترات متصلة مع بعضها البعض دون الخروج للانترنيت ولا يمكن لأي شبكة في أي مكان آخر ان تتواصل معها، وكل كمبيوتر في هذه الشبكة يأخذ ايبي محلي ضمن نفس الشبكة، لو اردنا أن نوصل هذه الشبكة المحلية مع الانترنيت سنحتاج راوتر، السؤال هنا، كيف سيعرف الجهاز في الشبكة المحلية السبيل إلى الراوتر؟ أي جهاز في الشبكة المحلية لديه شيء يسمى gateway ip وهو ايبي بوابة الخروج إلى الأنترنيت أي هو أيبي فتحة الراوتر من جهة الشبكة المحلية مما يعني أنه يقع ضمن الشبكة المحلية، إذن، لو اراد أي جهاز أن يخرج للانترنيت سيذهب إلى هذا الايبي ثم يمر بالراوتر ويخرج على الفتحة الأخرى من الراوتر أي على الطرف الآخر حيث يوجد ايبي يسمى public ip هذا الايبي هو الذي يتواصل مع السيرفرات والتي بدورها تتواصل معه أيضًا.

طيب جميل إلى الآن فهمنا معنى الشبكة المحلية

شركات الvpn لديها غرفة، هذه الغرفة فيها شبكة محلية مكونة من سيرفرات وكل سيرفر لهُ ايبي ضمن تلك الشبكة المحلية، فأنت من موقعك لن تستطيع الوصول لهذه السيرفرات لأنها متواجدة في شبكة محلية، فكيف ممكن أن تتواصل مع هذه السيرفرات؟

لديك حلين، إما أن تشيل لابتوبك وتضرب باب تلك الغرفة برجلك اليمين وتقوم بوصل لابتوبك مع الشبكة المحلية ووقتها ستستطيع الوصول لهذه السيرفرات بكل سهولة لأنك أصبحت ضمن الشبكة، أو الحل الثاني ريح رجلك واترك باب الناس وخليك في بيتك واتصل من بيتك مع الراوتر الموجود في غرفة الشركة، هذا الراوتر يشكل صلة الوصل بينك وبين الشبكة المحلية في تلك الغرفة، بعد أن تتصل بالراوتر سيقوم بإعطائك أيبي ضمن شبكة الغرفة، فتصبح كأنك متواجد في تلك الغرفة وبالتالي تستطيع أن تصل للسيرفر الموجود في تلك الغرفة والذي بدوره سيوجه طلباتك للموقع الذي تريد أن تذهب إليه، لذلك تسمى شبكة افتراضية، أنت موجود في شبكة ولكنك لست فيها، هل فهمتني؟

التواصل يصبح بين سيرفر شركة الvpn وبين سيرفر الموقع الذي تريد أن تذهب إليه، كأنه يتم بناء نفق بين جهازك وبين سيرفر شركة الvpn، تقوم بإرسال ما تريده لهذا السيرفر من خلال النفق فيقوم هو بما تريد ويعود لك بالمعلومات ويقوم بارسالها من خلال النفق.

دعنا نسأل اسئلة قد تخطر في بالك

  • هل أي شخص يقدر يتواصل مع راوتر تلك الغرفة وبالتالي يأخذ ايبي ضمن تلك الشبكة؟

حسب لو كانت الخدمة مجانية، ف نعم أي شخص، أما لو كانت غير مجانية فلن يستطيع أي شخص أن يتصل بذلك الراوتر، سيكون هناك شيء يسمى authentication وهو نظام دخول للشبكة، أي حتى يعطيك الراوتر ايبي ضمن شبكة تلك الغرفة يجب أن تدخل اسم مستخدم وكلمة مرور.

  • طيب قد تتسائل، ماذا لو سرق طرف ثالث-هاكر مثلًا- هذه المعلومات-اسم المستخدم وكلمة المرور-؟

سيقوم البرنامج على حاسوبك بتشفير هذه المعلومات والطرف الوحيد الذي يستطيع فكها هو راوتر تلك الغرفة.

  • طيب افرض أنا اتصلت على الراوتر وكل شيء تمام وبدأت بالتواصل مع السيرفر ولكن دخل طرف ثالث وأخذ المعلومات وقام بتعديلها ثم قام بإرسالها كأنه لم يحصل أي شيء وستصل للطرف الآخر معدلة وليست كما خرجت من عندك؟

الvpn يأمن شيء يسمى hashing وهالhashing عبارة عن رمز وهو على عكس التشفير one way يعني لا يوجد فك له بمعنى تشفير بلا عودة، المهم، أي معلومة تخرج مرفقة بهاشينغ، بحيث لو حصل أي تعديل على المعلومة من قبل أي طرف حتى ولو واحد بايت سيتغير هذا الهاشينغ وبالتالي سيعرف الطرف الآخر أن المعلومات تم التلاعب بها، تخيلها كالميزان، عندما تخرج المعلومات تقوم بتوزينها، ثم بعد أن تصل تقوم بإعادة توزينها، فإذا لم يتغير الوزن إذن كل شيء تمام، كثير ما تجد مواقع التحميل ترفق هاشينغ الملف الذي تريد أن تحمله، بحيث تضمن سلامة أن الملف الذي قمت بتحميله لم يتم التلاعب فيه، مثلًا لو جربت تحمل توزيعة كالي لينكس ستجد أن هناك هاشينغ من نوع SHA256 بحيث تضمن أن الملف يصلك دون تلاعب فيه من قبل أي طرف

  • قد يخطر في بالك سؤال، طيب افرض أن الطرف الثالث-نفرض هاكر- لم يعدل المعلومات ولكنه يستطيع أن يرى هذه المعلومات السرية؟

الvpn يأمن لك سرية بحيث يقوم بتشفير المعلومات الخارجة من جهازك بما في ذلك حتى الهيدر الموجودة على المعلومات كايبي المصدر والمستقبل والمعلومات الأخرى، ثم بعد أن تصل يتم فك تشفيرها، وعند العودة من السيرفر كذلك الأمر يتم التشفير وعندما تصل جهازك يُفك تشفيرها.

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

على عكس التشفير، لو حصلت على مفتاح التشفير يمكنك فك التشفير.

التشفير مصمم ليُفك تشفيره

الهاشينغ غير مصمم ليفك تشفيره.

وطبعًا من أحد الطرق لمحاولة معرفة الباسورد المشفر بالهاشينغ، عن طريق brute force، فكرة الهجوم هي التخمين وهي كالتالي:

لو لدي باسورد مشفر بالهاشينغ باستخدام md5 مثلًا واريد معرفته.

اقوم بتشفير مثلًا ألف كلمات مرور عشوائية بطريقة md5 ثم اقارن الmd5 الخاص بكل كلمة مع ال md5 الخاص بكلمة المرور التي اريد معرفتها، عندما يتساوى الmd5 الخاص بكلمة المرور مع احد الmd5 من ضمن الألف كلمة اللي عملتلهم هاشينغ اتوقف وحينها اكون وصلت لكلمة المرور، هي معادلة رياضية، لديّ كلمات معلومة وتشفير كل كلمة معلوم، ولدي أيضًا كلمة أخرى معلومة تشفيرها ولكنها ككلمة مجهول، بعمليات المقارنة أصل للمجهول.

طبعًا عملية طويلة وتتطلب امكانيات عالية، أعرف بعدت شويتين عن الموضوع ولكن حبيت أتكلم عن الموضوع لأن كثير ما يخلط بين التشفير والهاشينغ.

البرمجة تتم بناءًا على الآلية أعلاه، قد تختلف اللغات من برنامح لآخر، لكن المهم أن اللغة تقوم بكل ما يحصل في الشبكة من تشفير وفك تشفير واجراء اتصال وغيرها.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

زر الذهاب إلى الأعلى