مقدمة من أعلى إلى أسفل لـ SSH وكيف تتيح مشاركة البيانات بشكل آمن

ستتخذ هذه المقالة نهجًا عالي المستوى ومن أعلى إلى أسفل لشرح كيفية عمل SSH وكيفية استخدامه للتواصل الآمن مع أجهزة الكمبيوتر البعيدة.

سننظر في كيفية كون جلسة SSH "آمنة" بالفعل وكيف تقوم أجهزة الكمبيوتر بإنشاء وإعداد جلسة SSH في المقام الأول. سننظر أيضًا في فوائد استخدام SSH.

ملحوظة: هذا هو المقصود بملاحظات مستقبلية لنفسي ، لكن أتمنى أن تتعلم شيئًا منها أيضًا!

ما هو SSH؟

SSH هي اختصار لـ "shell secure". هو بروتوكول لمشاركة البيانات بين جهازي كمبيوتر عبر الإنترنت.

البروتوكول هو في الأساس مجموعة من القواعد التي تحدد اللغة التي يمكن لأجهزة الكمبيوتر استخدامها للتواصل.

عادةً ما يكون جهازي الكمبيوتر المعنيين هما جهاز الكمبيوتر الخاص بك ("العميل") وخادم بعيد ("المضيف").

لماذا نهتم؟

اتصالات آمنة بين أجهزة الكمبيوتر

عندما يتواصل جهازي كمبيوتر عبر الإنترنت ، نريد التأكد من أن رسائلنا لا يمكن اعتراضها وفهمها من قبل أي شخص يستمع إلى الرسائل.

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

أعتقد أن هذا مفهوم مهم يجب فهمه لأي شخص يطمح إلى العمل مع تقنيات الويب.

الوصول الآمن إلى أجهزة الكمبيوتر البعيدة

يعد استخدام SSH للتحقق من المصادقة طريقة أكثر أمانًا للمصادقة من استخدام كلمة مرور. سوف نستكشف كيف يعمل هذا أدناه.

كيف يتم تأمين SSH؟

SSH هي طريقة آمنة لإرسال الاتصالات بين جهازي كمبيوتر.

أعني بكلمة "آمنة" طريقة لتشفير الرسائل على جهاز كمبيوتر عميل بحيث يكون الكمبيوتر الآخر الوحيد الذي يمكنه فك تشفير الرسائل وفهمها هو المضيف. يسمى هذا التشفير / فك التشفير التشفير ، لذا ما نعنيه حقًا هنا هو أن SSH آمن لأنه يستخدم قناة اتصال مشفرة.

كيف يتم إنشاء جلسة SSH؟

هناك العديد من العمليات التي يجب أن تحدث بين جهازي كمبيوتر من أجل بدء جلسة SSH.

  1. نحتاج أولاً إلى طريقة لإعداد طريقة آمنة لتبادل الرسائل بين أجهزة الكمبيوتر. نحن بحاجة إلى إنشاء قناة مشفرة.
  2. نحتاج إلى طريقة للتحقق من أن البيانات التي يتلقاها المضيف لم يتم العبث بها. هذا يسمى التحقق وهنا نقوم بالتحقق من سلامة البيانات التي يرسلها العميل.
  3. التحقق (مرة أخرى). نحتاج إلى طريقة للتحقق من أن الكمبيوتر الذي نتواصل معه ليس دجالًا. هذا شكل آخر من أشكال التحقق ولكن هنا نتحقق من هوية الكمبيوتر.

بعد هذه الخطوات الثلاث ، يمكننا الآن التواصل بأمان مع جهاز كمبيوتر بعيد.

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

سيتناول كل قسم من هذه الأقسام أدناه المزيد من التفاصيل حول هذه الخطوات.

انشاء قناة مشفرة

جزء أساسي من بروتوكول SSH هو أنه آمن (حتى في الاسم!) ، مما يعني أن جميع المعلومات التي يتم إرسالها باستخدام SSH مشفرة.

كيف يتم تشفير هذه المعلومات؟

يعني التشفير أساسًا "خلط الأحرف" باستخدام بعض الرياضيات الذكية. يحتاج كلا الجهازين إلى ملفطريقة لتشفير المعلومات حتى يتمكن الكمبيوتر الآخر فقط من فك تشفير المعلومات وفهمها.

كيف يعمل هذا؟

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

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

مشكلة

كيف يعرف كلا الجهازين ما هو المفتاح المتماثل؟

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

تسمى هذه أحيانًا مشكلة "تبادل المفاتيح". من الواضح أننا بحاجة إلى إضافة خطوة أخرى في العملية قبل أن نتمكن من استخدام المفاتيح المتماثلة.

حل

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

يمكن بعد ذلك استخدام هذه المفاتيح المتماثلة في التشفير المتماثل بالطريقة الموضحة أعلاه.

كيف يعمل هذا

يحتوي كل من جهازي الكمبيوتر على مفتاح خاص ومفتاح عام. معًا يشكلون زوجًا من المفاتيح . تشترك أجهزة الكمبيوتر في مفاتيحها العامة مع بعضها البعض عبر الإنترنت. لذلك ، في هذه المرحلة من العملية يعرف كل كمبيوتر

  • مفتاحه الخاص ،
  • مفتاحه العمومي الخاص ،
  • والمفتاح العام للكمبيوتر الآخر.

توليد المفاتيح المتماثلة

يستخدم كلا الجهازين بعد ذلك هذه الأجزاء الثلاثة من المعلومات لتوليد مفتاح متماثل متطابق بشكل مستقل .

يستخدم كل كمبيوتر خوارزمية رياضية تستخدم المدخلات الثلاثة المذكورة أعلاه. هذه الخوارزمية جزء من خوارزمية تبادل المفاتيح Diffie-Hellman. الخوارزمية التي سيتم تنفيذها على كل كمبيوتر هي شيء من هذا القبيل:

Hostpub_2 = other computer's public keypub_1 = my public keypri_1 = my private key
f(pub_2, pub_1, pri_1) = abcdefg // Symmetric Key
Client:f(pub_1, pub_2, pri_2) = abcdefg // Symmetric Key

الشيء المهم الذي يجب استبعاده هنا هو أن أجهزة الكمبيوتر لم تشارك سوى المعلومات العامة عبر الإنترنت ولكنها لا تزال قادرة على إنشاء مفاتيح متماثلة!

يُطلق على نهج استخدام أزواج المفاتيح ومشاركة المعلومات العامة لإنشاء مفاتيح متماثلة متطابقة اسم التشفير غير المتماثل . يطلق عليه اسم "غير متماثل" لأن كلا الجهازين يبدأان بأزواج مفاتيح مختلفة خاصة بهما.

حتى الآن: لقد رأينا كيفية استخدام التشفير غير المتماثل لإنشاء مفاتيح متماثلة متماثلة بشكل مستقل على كلا الجهازين بطريقة آمنة (حل مشكلة تبادل المفاتيح) ثم تبادل المعلومات بشكل آمن بين أجهزة الكمبيوتر باستخدام مفاتيح متماثلة للتشفير وفك التشفير.

التحقق

حتى نتمكن من التواصل بشكل آمن. لكن الجزء التالي من عملية إنشاء جلسة SSH هو التحقق من أن البيانات لم يتم العبث بها كما تم نقلها وأن الكمبيوتر الآخر هو في الواقع من هو.

لماذا نحتاج هذا؟

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

تجزئة

علينا استخدام دالة هاش . هذه مجرد وظيفة رياضية تأخذ المدخلات وتنتج سلسلة ذات حجم ثابت.

الميزة المهمة لهذه الوظيفة هي أنه يكاد يكون من المستحيل معرفة ما كانت المدخلات تستخدم المخرجات فقط.

بعد أن يقوم العميل والمضيف بإنشاء مفاتيحهما المتماثلة ، سيستخدم العميل وظيفة التجزئة لإنشاء HMAC. هذا يعني فقط "رمز مصادقة الرسالة المستندة إلى التجزئة". هذه مجرد سلسلة أخرى من الأحرف / الأرقام. سيرسل العميل HMAC هذا إلى الخادم للتحقق منه.

مكونات وظيفة التجزئة هي

  • المفتاح المتماثل على العميل
  • رقم تسلسل الحزمة (كل رسالة يتم إرسالها مضمنة في "حزمة" من المعلومات)
  • محتويات الرسالة (المشفرة !!!)

مثال على البيانات المزيفة:

symm_key = abcdefgpkge_no = 13encr_message = encrypted_password
Hash(symm_key, pkge_no, encr_message) = *HMAC* // Hashed value

كيف يستخدم المضيف هذه المعلومات؟

عندما يتلقى المضيف HMAC ، يمكنه استخدام نفس وظيفة التجزئة مع هذه المكونات الثلاثة:

  • نسخته الخاصة من المفتاح المتماثل (المتطابق!) ،
  • رقم تسلسل الحزمة ،
  • والرسالة المشفرة.

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

تذكر أن المضيف والعميل فقط يعرفان ما هو المفتاح المتماثل ولا توجد أجهزة كمبيوتر أخرى تفعله!

لذا لا يهم هنا أن المضيف لا يعرف محتويات الرسالة المشفرة التي تم فك تشفيرها - فما زال المضيف قد تحقق من هوية الكمبيوتر المتصل!

يكمن جمال هذا النهج في أننا لم نتحقق فقط من هوية العميل وتأكدنا من عدم العبث بالبيانات ، لكننا فعلنا ذلك بأمان ( دون مشاركة أي معلومات خاصة) .

ملخص: استخدمنا وظيفة تجزئة على العميل ثم على المضيف للتحقق من سلامة البيانات والتحقق من هوية العميل.

المصادقة

الجزء الأخير من الاتصال الآمن بأجهزة الكمبيوتر البعيدة هو:

حتى لو أنشأنا مفاتيح متماثلة مع الكمبيوتر المتصل و

حتى لو كنا نستخدم المفاتيح المتماثلة للتواصل بشكل آمن و

حتى لو كان الكمبيوتر المتصل هو العميل الحقيقي الذي نتوقعه وليس محتالاً ،

ثم قمنا بإعداد جلسة SSH ... لكن هل يمتلك الكمبيوتر المتصل إذنًا للوصول إلى محتويات المضيف؟

هذا يسمى "المصادقة": فعل التحقق من الأذونات وحقوق الوصول.

هناك طريقتان للتحقق من المصادقة:

1 — استخدام كلمة مرور

يمكن للعميل إرسال رسالة (مشفرة) إلى المضيف تحتوي على كلمة مرور. يمكن للمضيف فك تشفير الرسالة والتحقق من كلمة المرور في قاعدة بيانات للتحقق مما إذا كان العميل لديه إذن للوصول إلى "المستخدم" المحدد (منطقة من الكمبيوتر). تم انجاز العمل.

2 - استخدام أزواج المفاتيح والتشفير غير المتماثل

في وقت سابق ، رأينا كيف يمكن للتشفير غير المتماثل استخدام أزواج مفاتيح لتوليد مفاتيح متماثلة متطابقة بشكل آمن على كل من العميل والمضيف. باستخدام أفكار مماثلة ، يمكن للعميل تسجيل الدخول بدون كلمة مرور .

هذا نهج عالي المستوى لكيفية عمل العملية:

اعداد:

على العميل ، توجه إلى المحطة الطرفية واستخدم أمرًا لإنشاء مفتاح عام ومفتاح خاص (يستخدم تحت السطح خوارزمية رياضية RSA) على العميل. انسخ المفتاح العام (وليس المفتاح الخاص!) إلى الحافظة.

وأكرر: نسخ PUBLIC مفتاح ( NOT THE الخاص KEY!) إلى الحافظة.

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

الآن ، المضيف لديه

  • إنه زوج مفاتيح عام / خاص
  • المفتاح العمومي للعميل

بالنظر إلى القسم أعلاه حول خوارزمية تبادل المفاتيح ، يمكنك أن ترى كيف أن المضيف لديه جميع المكونات التي يحتاجها لإنشاء مفتاح متماثل!

التحدي:

عندما يريد العميل الاتصال ، يمكن للمضيف استخدام إصدار "تحدي" عن طريق إرسال رسالة تم تشفيرها (باستخدام المفتاح المتماثل للمضيف) والقول: "سأسمح لك بالوصول فقط إذا كان بإمكانك فك تشفير هذه الرسالة!"

ثم العميل لديه

  • مفتاحه العام والخاص
  • المفتاح العام للمضيف
  • الرسالة المشفرة

حتى الآن لدى العميل كل ما يحتاجه لإنشاء مفتاح متماثل (متطابق) ... وفك تشفير الرسالة! يمكنه فك تشفير الرسالة وإرسال تأكيد "نجح" في التحدي مرة أخرى إلى المضيف.

يقتنع المضيف بأن العميل المتصل مرخص له ويمنح إذنًا بالوصول.

لماذا تهتم باستخدام الطريقة الثانية؟

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

قراءة متعمقة:

دروس SSH للمبتدئين - كيف يعمل SSH

SSH ، أو Secure Shell ، هو بروتوكول إدارة عن بُعد يسمح للمستخدمين بالتحكم في الخوادم البعيدة وتعديلها ... www.hostinger.com

//www.udemy.com/the-complete-junior-to-sraduate-web-developer-roadmap/

استنتاج

SSH هي أداة مهمة تستخدم للتحكم عن بعد في أجهزة الكمبيوتر الأخرى.

SSH آمن لأن كلا الجهازين يستطيعان تشفير الرسائل وفك تشفيرها باستخدام مفاتيح متماثلة متطابقة (تُعرف باسم "التشفير المتماثل").

الخطوات الرئيسية لبدء جلسة SSH هي:

  1. انشاء قناة مشفرة. استخدام التشفير غير المتماثل لحل مشكلة تبادل المفاتيح التي تولد بشكل مستقل مفاتيح متماثلة متماثلة على كلا الجهازين دون مشاركة أي معلومات خاصة.
  2. التحقق: استخدام التجزئة على كلا الجهازين للتحقق من هوية الكمبيوتر المتصل
  3. التحقق (مرة أخرى). لم يتم اختراق استخدام التجزئة على كلا الجهازين للتحقق من سلامة البيانات أثناء الإرسال.

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

إذا كنت مهتمًا برفع مستوى SSH ، فإنني أوصي بشدة بهذه الدورة. لقد وجدت أنه من المفيد حقًا صقل بعض مهاراتي! ( إخلاء المسؤولية: ليس لدي أي روابط أو روابط بالمؤلف أو المنصة. أخذت الدورة منذ فترة ووجدتها جيدة حقًا!)

شكرا للقراءة!