logo

ما هو الشكل الكامل لـ SSH


SSH: شل الآمن

يرمز SSH إلى Secure Shell. ومن المعروف أيضًا باسم Secure Switch Shell. يتم استخدام بروتوكول شبكة تشفير يسمى Secure Shell (SSH) لتشغيل خدمات الشبكة بأمان عبر الشبكات غير الآمنة. تعد بنية خادم العميل أساس تطبيقات SSH، التي تربط مثيل عميل SSH بخادم SSH.

نموذج SSH الكامل

كخليفة لـ Telnet وبروتوكولات Unix Shell البعيدة غير الآمنة مثل Berkeley Remote Shell (rsh) وبروتوكولات rlogin وrexec المرتبطة بها، تم إنشاء SSH لأنظمة التشغيل المشابهة لـ Unix التي تستخدم اتصال رمزي غير آمن ومصادقة النص العادي.

تعريف

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

إعداد مسار بايثون
نموذج SSH الكامل

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

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

خلق

قام Tatu Ylönen، عالم الكمبيوتر من فنلندا، بإنشاء SSH لأول مرة في عام 1995. وقد حدث تطوير إضافي لمجموعة البروتوكول في العديد من مجموعات المطورين، مما أدى إلى تكرارات التنفيذ المختلفة. هناك تطبيقات متاحة لجميع أنظمة التشغيل الشائعة، بما في ذلك الأنظمة المدمجة. OpenSSH، الذي جعله منشئو OpenBSD متاحًا كبرنامج مفتوح المصدر في عام 1999، هو مجموعة البرامج الأكثر استخدامًا.

إدارة مفاتيح OpenSSH للمصادقة

عادةً ما يتم الاحتفاظ بقائمة المفاتيح العامة المعتمدة على الأنظمة المشابهة لنظام Unix في الملف ~/.ssh/authorized key في الدليل الرئيسي للمستخدم، والذي يتمتع بامتيازات تسجيل الدخول عن بُعد. يحترم SSH هذا الملف فقط إذا لم يتمكن أي شخص آخر غير المالك والجذر من تعديله. لم تعد كلمة المرور ضرورية في حالة وجود المفتاح العام للطرف البعيد والمفتاح الخاص المطابق للطرف المحلي. ولكن قد نستخدم عبارة مرور لقفل المفتاح الخاص لمزيد من الحماية. يمكننا أيضًا البحث عن الرمز السري في المواقع الشائعة، ويمكننا استخدام خيار سطر الأوامر لتوفير مساره الكامل (الخيار -i لـ ssh).

نموذج SSH الكامل

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

يستخدم

يستخدم SSH نموذج خادم العميل. عادة، يتم استخدام SSH للتسجيل. يمكنه أيضًا نفق منافذ TCP، وإعادة توجيه اتصالات X11، وتنفيذ الأوامر على نظام بعيد. عادةً، يتم إجراء الاتصالات ببرنامج SSH الخفي الذي يسمح بالاتصالات عن بُعد باستخدام تطبيق عميل SSH. كلاهما موجود غالبًا في معظم أنظمة التشغيل المعاصرة، مثل macOS، وتوزيعات Linux، وOpenBSD، وFreeBSD، وNetBSD، وSolaris، وOpenVMS. بعض الإصدارات مملوكة ومجانية ومفتوحة المصدر بدرجات متفاوتة من التعقيد والشمولية (مثل PuTTY وإصدار OpenSSH المضمن مع Cygwin وOpenSSH). والجدير بالذكر أن SSH لا يتم تضمينه افتراضيًا في إصدارات Windows حتى الإصدار 1709 من Windows 10.

يتم توفير وظائف مماثلة لإدارة الملفات (المزامنة والنسخ والحذف عن بعد) من خلال تطبيق Windows المجاني والمفتوح المصدر WinSCP، والذي يستخدم PuTTY كواجهة خلفية. دون الحاجة إلى التثبيت على جهاز الكمبيوتر العميل، يتوفر WinSCP وPuTTY للعمل مباشرة من محرك أقراص USB. غالبًا ما يكون تمكين إحدى الميزات في تطبيق الإعدادات مطلوبًا لإعداد خادم SSH في نظام التشغيل Windows.

للتعامل مع مخاوف الاتصال ومنع المخاطر الأمنية المتمثلة في تعريض جهاز ظاهري قائم على السحابة للإنترنت بشكل مباشر، يعد SSH أمرًا بالغ الأهمية في الحوسبة السحابية. يمكن إجراء اتصال آمن عبر الإنترنت من خلال كمبيوتر افتراضي نفق SSH عبر جدار الحماية. بالنسبة لهذا البروتوكول، قامت IANA بتعيين منفذ TCP رقم 22 ومنفذ UDP رقم 22 ومنفذ SCTP رقم 22.

في وقت مبكر من عام 2001، صنفت IANA منفذ TCP الافتراضي رقم 22 لخوادم SSH كأحد المنافذ المعروفة. يمكن استخدام بروتوكول طبقة النقل SCTP الموجه للاتصال لتشغيل SSH بدلاً من TCP.

التقدم التاريخي

التكرار 1

وقد ألهم هجوم استنشاق كلمة المرور على شبكة مؤسسته تاتو إيلونن، الباحث في جامعة هلسنكي للتكنولوجيا في فنلندا، بإنشاء النسخة الأولية للبروتوكول (المعروف اليوم باسم SSH-1) في عام 1995.

تم تصميم SSH ليقوم بدور البروتوكولات السابقة، بما في ذلك rlogin وTELNET وFTP وrsh، والتي كانت تفتقر إلى المصادقة القوية وضمانات السرية. جعل Ylönen طلبه متاحًا كبرنامج مجاني. وفي يوليو 1995، أصبح الجهاز محبوبًا بسرعة. بحلول نهاية عام 1995، كان هناك 20.000 مستخدم لـSSH منتشرين في 50 دولة مختلفة.

ما هو هاشتاج جافا

لتعزيز وتطوير SSH، أنشأ Ylönen SSH Communications Security في ديسمبر 1995. تم استخدام العديد من مكونات البرامج المجانية، بما في ذلك GNU libgmp، في الإصدار الأول لبرنامج SSH، ولكن التكرارات اللاحقة المقدمة من SSH Communications Security نمت لتصبح برمجيات مملوكة بشكل متزايد. ووفقا للتقديرات، كان هناك 2 مليون مستخدم بحلول عام 2000.

التكرار 2

قامت فرقة عمل هندسة الإنترنت (IETF) بتعيين مجموعة العمل المسؤولة عن إنشاء الإصدار 2 من بروتوكول SSH باسم 'Secsh' في وثائقها الرسمية.

أصبح SSH-2، وهو تكرار محسّن للبروتوكول، معيارًا في عام 2006. ولا يتوافق SSH-1 مع هذا الإصدار. يوفر SSH-2 ترقيات للوظائف والأمان عبر SSH-1. على سبيل المثال، يوفر تبادل مفاتيح Diffie-Hellman والتحقق القوي من السلامة عبر رموز مصادقة الرسائل أمانًا أعلى. تعد القدرة على تشغيل عدد غير محدود من جلسات الصدفة عبر اتصال SSH واحد إحدى إمكانيات SSH-2 الجديدة. نظرًا لأن SSH-2 أكثر تقدمًا واستخدامًا على نطاق واسع من SSH-1، فإن بعض التطبيقات، مثل libssh (v0.8.0+)، وLsh، وDropbear، تدعم فقط SSH-2.

التكرار 1.99

يتطلب RFC 4253 أن يشير خادم SSH الذي يدعم الإصدار 2.0، بالإضافة إلى الإصدارات السابقة، إلى إصدار البروتوكول الخاص به على أنه 1.99 في يناير 2006، بعد وقت طويل من تطوير الإصدار 2.1. يتم استخدام رقم الإصدار هذا للإشارة إلى التوافق مع الإصدارات السابقة بدلاً من تمثيل مراجعة سابقة للبرنامج.

OSSH و OpenSSH

نموذج SSH الكامل

منذ أن تم توزيع الإصدار الأخير من برنامج SSH الأصلي، الإصدار 1.2.12، بموجب ترخيص مفتوح المصدر في عام 1999، ظل المطورون يعملون على إصدار برنامج مجاني. تم استخدام هذا كأساس لبرنامج Björn Grönvall's OSSH. بعد فترة وجيزة، قام فريق OpenBSD باستنساخ عمل Grönvall لإنتاج OpenSSH، والذي تم تضمينه في الإصدار 2.6 من OpenBSD. لقد قاموا بإنشاء فرع 'قابلية النقل' من هذا الإصدار لنقل OpenSSH إلى أنظمة تشغيل مختلفة.

كان تطبيق SSH الأكثر استخدامًا على نطاق واسع اعتبارًا من عام 2005 هو OpenSSH، وهو الإصدار الافتراضي في العديد من توزيعات أنظمة التشغيل. بعد إزالة دعم SSH-1 من قاعدة التعليمات البرمجية في الإصدار OpenSSH 7.6، لا يزال OpenSSH قيد التحديث ويدعم بروتوكول SSH-2. وفي الوقت نفسه، OSSH لم تعد ذات صلة.

الاستخدامات

المستخدم 'josh' 'SSHed' من الكمبيوتر المحلي 'foo fighter' إلى الجهاز البعيد 'tengwar' لتشغيل xeyes كمثال لنفق برنامج X11 عبر SSH. يستخدم الأشخاص عميل Windows SSH PuTTY للوصول إلى OpenWrt.

SSH هو بروتوكول يعمل مع العديد من الأنظمة، بما في ذلك Microsoft Windows ومعظم إصدارات Unix (Linux وBSDs، بما في ذلك macOS من Apple وSolaris). يمكن أن تحتاج التطبيقات التالية إلى إمكانات حصرية لعملاء أو خوادم SSH معينة أو متوافقة معها. على سبيل المثال، من الممكن حاليًا فقط استخدام خادم OpenSSH وتنفيذ العميل لبروتوكول SSH لإنشاء شبكة VPN.

  • للوصول إلى Shell على مضيف بعيد (استبدال Telnet وrlogin)
  • لتنفيذ أمر فردي على مضيف بعيد (استبدال rsh)
  • لتكوين تسجيل الدخول التلقائي (بدون كلمة مرور) لخادم بعيد (على سبيل المثال، استخدام OpenSSH)
  • باعتبارها شبكة VPN مشفرة تعمل بكامل طاقتها، ضع في اعتبارك أن عميل وخادم OpenSSH فقط يدعمان هذه الإمكانية.
  • لإرسال X من مضيف بعيد (ممكن من خلال مضيفين وسيطين متعددين)
  • لاستخدام عملاء SSH الذين يدعمون بروتوكول SOCKS لتصفح الإنترنت عبر اتصال وكيل مشفر.
  • لتثبيت دليل خادم بعيد بأمان كنظام ملفات على جهاز محلي يستخدم SSHFS.
  • من خلال واحدة أو أكثر من التقنيات المذكورة أعلاه لمراقبة وإدارة الخادم عن بعد تلقائيًا.
  • لتطوير الأجهزة المحمولة أو المدمجة المتوافقة مع SSH.
  • لحماية آليات نقل الملفات.

طرق نقل الملفات

تستخدم العديد من أنظمة نقل الملفات بروتوكولات Secure Shell مثل

  • عبر SSH، تم تطوير النسخة الآمنة (SCP) من بروتوكول RCP.
  • غالبًا ما يتم تشغيل rsync الذي من المفترض أن يكون أكثر فعالية من SCP من خلال اتصال SSH.
  • البديل الآمن لـ FTP هو بروتوكول نقل الملفات SSH (SFTP) (يجب عدم الخلط بينه وبين FTP عبر SSH أو FTPS)
  • تم تقديم FISH، أو الملفات المنقولة عبر بروتوكول Shell، في عام 1998 وتم تطويرها من SSH عبر تعليمات Unix Shell.
  • يستخدم Aspera، المعروف أيضًا باسم البروتوكول السريع والآمن (FASP)، بروتوكول SSH للأوامر ونقل البيانات ومنافذ UDP.

بنيان

تشكل ثلاثة مكونات متميزة البنية متعددة الطبقات لبروتوكول SSH:

ما هو التجمع
  • يتم استخدام بروتوكول التحكم في الإرسال (TCP) الخاص بـ TCP/IP بشكل شائع بواسطة طبقة النقل (RFC 4253)، مع تعيين المنفذ رقم 22 جانبًا كمنفذ استماع للخادم. تنفذ هذه الطبقة التشفير والضغط والتحقق من التكامل وتبادل المفاتيح الأولي ومصادقة الخادم. على الرغم من أن كل تطبيق قد يسمح بالمزيد، إلا أنه يعرض للطبقة العليا واجهة لإرسال واستقبال حزم نص عادي يصل حجم كل منها إلى 32,768 بايت. عادةً، بعد نقل 1 جيجابايت من البيانات أو بعد مرور ساعة، أيهما يأتي أولاً، تقوم طبقة النقل بالترتيب لإعادة تبادل المفاتيح.
    نموذج SSH الكامل
  • تتم معالجة مصادقة العميل عبر طبقة مصادقة المستخدم (RFC 4252)، والتي توفر أيضًا العديد من تقنيات المصادقة. المصادقة المستندة إلى العميل تعني أن عميل SSH، وليس الخادم، قد يطلب من المستخدم كلمة مرور. فقط طلبات العميل للمصادقة هي التي تتلقى استجابة من الخادم. غالبًا ما يتم استخدام تقنيات مصادقة المستخدم التالية:
      كلمة المرور، وهي تقنية بسيطة لمصادقة كلمة المرور تتضمن القدرة على تعديل كلمة المرور. ليست كل البرامج تستخدم هذه التقنية.
  • عادةً ما يتم دعم أزواج مفاتيح DSA أو ECDSA أو RSA على الأقل المفتاح العمومي هي تقنية للمصادقة القائمة على المفتاح العام. تقبل التطبيقات الأخرى أيضًا شهادات X.509.
  • لوحة المفاتيح التفاعلية(RFC 4256) هي تقنية مرنة يقدم فيها الخادم مطالبة واحدة أو أكثر لإدخال المعلومات، ويعرضها العميل، ثم يرسل الإجابات التي كتبها العميل. يتم استخدامها بواسطة بعض إعدادات OpenSSH لتقديم مصادقة كلمة المرور بشكل فعال عند PAM هو موفر مصادقة المضيف الأساسي، والذي قد يمنع أحيانًا تسجيل الدخول باستخدام عميل يدعم فقط تقنية المصادقة البسيطة بكلمة المرور.
  • يتم توفير وظيفة تسجيل الدخول الموحد لجلسات SSH عبر GSSAPI تقنيات المصادقة، والتي توفر نظامًا قابلاً للتوسيع للتعامل مع مصادقة SSH باستخدام آليات خارجية مثل Kerberos 5 أو NTLM. على الرغم من أن OpenSSH يحتوي على تطبيق GSSAPI وظيفي، إلا أن تطبيقات SSH التجارية غالبًا ما تدمج هذه التقنيات لاستخدامها في الشركات.
  • يتم تعريف فكرة القنوات التي تحدد خدمات SSH المقدمة من خلال طبقة الاتصال (RFC 4254). يمكننا مضاعفة اتصالات SSH متعددة من اتصال واحد. كلاهما ينقل البيانات في كلا الاتجاهين. تنقل طلبات القناة بيانات خارج النطاق خاصة بقناة معينة، مثل رمز الخروج للعملية من جانب الخادم أو تغيير حجم النافذة الطرفية. بالإضافة إلى ذلك، باستخدام حجم نافذة الاستقبال، تتحكم كل قناة في تدفقها. يقوم عميل SSH بتقديم طلب عالمي لإعادة توجيه منفذ من جانب الخادم. تشمل أنواع القنوات الشائعة ما يلي:
    • Shell لـ SFTP وexec والأصداف الطرفية (بما في ذلك عمليات نقل SCP)
    • Direct-TCPIP للاتصالات المعاد توجيهها من العميل إلى الخادم.
    • الاتصالات المعاد توجيهها من خادم إلى عميل باستخدام tcpip المعاد توجيهها
    • لتأكيد شرعية المضيف، يقدم سجل DNS SSHFP (RFC 4255) بصمات مفتاح المضيف العام.

نظرًا لتصميمه المفتوح، قد نستخدم SSH لمجموعة واسعة من المهام بالإضافة إلى تأمين الأصداف، مما يمنحه تنوعًا كبيرًا.

نقاط الضعف

سش-1

نظرًا لعدم كفاية حماية سلامة البيانات التي توفرها CRC-32 في إصدار البروتوكول هذا، تم التعرف على ثغرة أمنية في SSH 1.5 في عام 1998 والتي سمحت بالإدراج غير المصرح به للمواد في تدفق SSH المشفر. في معظم التطبيقات، أضافوا تصحيحًا يُعرف باسم SSH Compensation Attack Detector. تضمنت العديد من هذه التطبيقات المنقحة ثغرة جديدة في تجاوز سعة الأعداد الصحيحة، مما يمكّن المهاجمين من تشغيل تعليمات برمجية عشوائية باستخدام إمكانات الجذر أو برنامج SSH الخفي.

تم العثور على خلل يمكّن المهاجمين من تغيير الكتلة الأخيرة من الجلسة المشفرة بواسطة IDEA في يناير 2001. وتم العثور على خلل آخر مكّن خادمًا مارقًا من تمرير تسجيل دخول العميل إلى خادم آخر في نفس الشهر.

نظرًا لنقاط الضعف المتأصلة فيه، يُنظر إلى SSH-1 بشكل عام على أنه قديم ويجب تجنبه عن طريق إزالة احتياطي SSH-1 بشكل صريح. تدعم معظم الخوادم والعملاء الحاليين SSH-2.

استرداد النص العادي لـ CBC

تم اكتشاف ثغرة أمنية نظرية سمحت باسترجاع ما يصل إلى 32 بت من النص العادي من كتلة من النص المشفر باستخدام طريقة التشفير القياسية في ذلك الوقت، CBC، في جميع إصدارات SSH في نوفمبر 2008. أبسط إصلاح هو التبديل إلى نسبة النقر إلى الظهور (CTR)، العداد الوضع، بدلاً من وضع CBC، مما يجعل SSH محصنًا ضد الهجوم.

نموذج SSH الكامل

وكالة الأمن القومي يشتبه في فك التشفير

إن إصدار إدوارد سنودن لوثائق حساسة لمجلة دير شبيجل في 28 ديسمبر 2014، يشير إلى أن وكالة الأمن القومي ستكون قادرة على فك تشفير بعض اتصالات SSH.