صدفة آمنة
بروتوكول Secure Shell ( بروتوكول SSH ) هو بروتوكول تشفير شبكي لتشغيل خدمات الشبكة بشكل آمن عبر شبكة غير مؤمنة . [ 1 ] ومن أبرز تطبيقاته تسجيل الدخول عن بُعد وتنفيذ أوامر سطر الأوامر .
تم تصميم SSH لأنظمة التشغيل الشبيهة بنظام Unix كبديل لبروتوكول Telnet وبروتوكولات Unix shell البعيدة غير الآمنة ، مثل Berkeley Remote Shell (rsh) وبروتوكولات rlogin و rexec ذات الصلة ، والتي تستخدم جميعها طرق مصادقة غير آمنة وغير آمنة ، مثل كلمات المرور .
بما أن آليات مثل Telnet و Remote Shell مصممة للوصول إلى أجهزة الكمبيوتر البعيدة وتشغيلها، فإن إرسال رموز المصادقة (مثل اسم المستخدم وكلمة المرور ) اللازمة لهذا الوصول عبر شبكة عامة بطريقة غير آمنة يُشكل خطرًا كبيرًا يتمثل في حصول جهات خارجية على كلمة المرور، وبالتالي الوصول إلى نفس مستوى الوصول إلى النظام البعيد الذي يتمتع به مستخدم Telnet. يُخفف Secure Shell من هذا الخطر باستخدام آليات تشفير تهدف إلى إخفاء محتوى الإرسال عن أي مُراقب، حتى لو كان بإمكانه الوصول إلى كامل تدفق البيانات . [ 2 ]
قام عالم الحاسوب الفنلندي تاتو يلونين بتصميم بروتوكول SSH عام 1995، وقدّم تطبيقًا له على شكل أمرين، هما ssh و slogin ، كبديلين آمنين لـ rsh و rlogin على التوالي. استمر تطوير مجموعة البروتوكولات لاحقًا في عدة مجموعات تطوير، مما أدى إلى ظهور عدة نسخ مختلفة من التطبيق. يُميّز وصف البروتوكول بين إصدارين رئيسيين، يُشار إليهما بـ SSH-1 و SSH-2. أكثر حزم البرامج استخدامًا هي OpenSSH ، التي أُصدرت عام 1999 كبرنامج مفتوح المصدر من قِبل مطوري OpenBSD . تُوزّع تطبيقاتها لجميع أنواع أنظمة التشغيل الشائعة الاستخدام، بما في ذلك الأنظمة المدمجة .
تعتمد تطبيقات SSH على بنية العميل والخادم ، حيث تربط عميل SSH بخادم SSH . [ 3 ] يعمل SSH كمجموعة بروتوكولات متعددة الطبقات تتألف من ثلاثة مكونات هرمية رئيسية: طبقة النقل التي توفر مصادقة الخادم وسرية البيانات وسلامتها؛ وبروتوكول مصادقة المستخدم الذي يتحقق من هوية المستخدم لدى الخادم؛ وبروتوكول الاتصال الذي يقسم النفق المشفر إلى قنوات اتصال منطقية متعددة. [ 1 ]
تعريف
يستخدم بروتوكول SSH التشفير بالمفتاح العام للتحقق من هوية الكمبيوتر البعيد والسماح له بالتحقق من هوية المستخدم، إذا لزم الأمر. [ 3 ]
يمكن استخدام بروتوكول SSH في عدة طرق. في أبسطها، يستخدم طرفا قناة الاتصال أزواج مفاتيح عامة وخاصة يتم إنشاؤها تلقائيًا لتشفير اتصال الشبكة، ثم يستخدمون كلمة مرور للتحقق من هوية المستخدم.
عندما يُنشئ المستخدم زوج المفاتيح العامة والخاصة يدويًا، تتم عملية المصادقة عند إنشاء زوج المفاتيح، ويمكن فتح جلسة تلقائيًا دون الحاجة إلى إدخال كلمة مرور. في هذه الحالة، يُخزَّن المفتاح العام على جميع أجهزة الكمبيوتر التي يجب أن تسمح بالوصول إلى مالك المفتاح الخاص المطابق، والذي يحتفظ به المالك سرًا. مع أن المصادقة تعتمد على المفتاح الخاص، إلا أنه لا يُنقل عبر الشبكة أثناء المصادقة. يتحقق بروتوكول SSH فقط من أن الشخص الذي يُقدِّم المفتاح العام هو نفسه مالك المفتاح الخاص المطابق.
في جميع إصدارات SSH، من المهم التحقق من صحة المفاتيح العامة غير المعروفة ، أي ربطها بهويات المستخدمين ، قبل قبولها كمستخدمين صالحين. قبول مفتاح عام لمهاجم دون التحقق منه سيمنح المهاجم غير المصرح له صلاحية الوصول كمستخدم صالح.
المصادقة: إدارة مفاتيح OpenSSH
في الأنظمة الشبيهة بنظام يونكس ، تُخزَّن قائمة المفاتيح العامة المُصرَّح بها عادةً في المجلد الرئيسي للمستخدم المُصرَّح له بتسجيل الدخول عن بُعد، في الملف [ 4 ]~/.ssh/authorized_keys . لا يعتمد بروتوكول SSH على هذا الملف إلا إذا كان غير قابل للكتابة من قِبل أي مستخدم آخر غير المالك والمستخدم الجذر. عندما يكون المفتاح العام موجودًا على الجهاز البعيد، والمفتاح الخاص المُطابق موجودًا على الجهاز المحلي، لا يُطلب إدخال كلمة المرور. مع ذلك، ولزيادة الأمان، يُمكن قفل المفتاح الخاص نفسه بعبارة مرور.
يمكن البحث عن المفتاح الخاص في المواقع المعتادة، ويمكن تحديد مساره الكامل كإعداد سطر أوامر (خيار -issh). وتقوم أداة ssh-keygen بإنشاء المفتاحين العام والخاص، دائمًا في أزواج.
يستخدم
يُستخدم بروتوكول SSH عادةً لتسجيل الدخول إلى واجهة سطر الأوامر (CLI) الخاصة بجهاز كمبيوتر بعيد، ولتنفيذ الأوامر على خادم بعيد. كما يدعم آليات التوجيه عبر الأنفاق ، وإعادة توجيه منافذ TCP ، واتصالات X11 ، ويمكن استخدامه لنقل الملفات باستخدام بروتوكول نقل الملفات الآمن (SFTP) أو بروتوكول النسخ الآمن (SCP). [ 3 ]
يستخدم بروتوكول SSH نموذج العميل والخادم . يُستخدم برنامج عميل SSH عادةً لإنشاء اتصالات مع خادم SSH ، مثل sshd، لقبول الاتصالات عن بُعد. يتوفر كلا البرنامجين بشكل شائع في معظم أنظمة التشغيل الحديثة ، بما في ذلك macOS ، ومعظم توزيعات Linux ، و OpenBSD ، وFreeBSD ، و NetBSD ، وSolaris ، و OpenVMS . تجدر الإشارة إلى أن إصدارات Windows السابقة لإصدار Windows 10 1709 لا تتضمن SSH افتراضيًا، ولكن كانت ولا تزال توجد إصدارات احتكارية ومجانية ومفتوحة المصدر بمستويات متفاوتة من التعقيد والشمولية (انظر مقارنة عملاء SSH ). في عام 2018، بدأت Microsoft بنقل شفرة مصدر OpenSSH إلى Windows [ 5 ] ، وفي إصدار Windows 10 1709 ، أصبح منفذ Win32 الرسمي لـ OpenSSH متاحًا الآن.
يمكن لبرامج إدارة الملفات لأنظمة يونكس (مثل Konqueror ) استخدام بروتوكول FISH لتوفير واجهة مستخدم رسومية مقسمة مع خاصية السحب والإفلات. يوفر برنامج WinSCP مفتوح المصدر لنظام ويندوز [ 6 ] إمكانية مماثلة لإدارة الملفات (المزامنة، النسخ، الحذف عن بُعد) باستخدام PuTTY كخادم خلفي. يتوفر كل من WinSCP [ 7 ] وPuTTY [ 8 ] في حزم جاهزة للتشغيل مباشرةً من محرك أقراص USB، دون الحاجة إلى تثبيتهما على جهاز المستخدم. يأتي برنامج Crostini على نظام ChromeOS مزودًا بـ OpenSSH افتراضيًا. يتطلب إعداد خادم SSH في ويندوز عادةً تفعيل ميزة في تطبيق الإعدادات.
يُعدّ بروتوكول SSH بالغ الأهمية في الحوسبة السحابية لحلّ مشكلات الاتصال، وتجنّب المخاطر الأمنية الناجمة عن تعريض جهاز افتراضي قائم على السحابة مباشرةً للإنترنت. ويمكن لنفق SSH توفير مسار آمن عبر الإنترنت، من خلال جدار الحماية، إلى الجهاز الافتراضي. [ 9 ]
خصصت هيئة IANA المنفذ 22 لبروتوكول TCP ، والمنفذ 22 لبروتوكول UDP ، والمنفذ 22 لبروتوكول SCTP لهذا البروتوكول. [ 10 ] وقد أدرجت IANA المنفذ 22 القياسي لبروتوكول TCP لخوادم SSH كأحد المنافذ المعروفة منذ عام 2001. [ 11 ] ويمكن تشغيل SSH باستخدام بروتوكول SCTP بدلاً من TCP كبروتوكول طبقة نقل موجه للاتصال. [ 12 ]
التطور التاريخي
الإصدار 1
في عام ١٩٩٥، صمّم تاتو يلونين ، الباحث في جامعة هلسنكي للتكنولوجيا بفنلندا، النسخة الأولى من البروتوكول (المعروف الآن باسم SSH-1 ) استجابةً لهجوم تجسس على كلمات المرور استهدف شبكة جامعته . [ ١٣ ] كان الهدف من SSH استبدال بروتوكولات rlogin و telnet و FTP [ ١٤ ] و rsh السابقة ، التي لم توفر مصادقة قوية ولم تضمن السرية. وقد اختار رقم المنفذ ٢٢ لأنه يقع بين telnetالمنفذين ٢٣ و ftp٢١. [ ١٥ ]
أصدر يلونين تطبيقه كبرنامج مجاني في يوليو 1995، وسرعان ما اكتسبت الأداة شعبية واسعة. وبحلول نهاية عام 1995، وصل عدد مستخدمي SSH إلى 20,000 مستخدم في خمسين دولة. [ 16 ]
في ديسمبر 1995، أسس يلونين شركة SSH Communications Security لتسويق وتطوير SSH. استخدمت النسخة الأصلية من برنامج SSH أجزاءً مختلفة من البرامج المجانية ، مثل GNU libgmp ، لكن الإصدارات اللاحقة التي أصدرتها SSH Communications Security تطورت لتصبح برامج احتكارية بشكل متزايد .
وتشير التقديرات إلى أن عدد المستخدمين قد نما إلى مليوني مستخدم بحلول عام 2000. [ 17 ]
الإصدار 2
في عام 2006، وبعد مناقشة في مجموعة عمل تُدعى "secsh"، [ 18 ] تم اعتماد نسخة مُعدّلة من بروتوكول SSH، وهي SSH-2، كمعيار. [ 19 ] تُقدّم هذه النسخة أمانًا مُحسّنًا وميزات جديدة، لكنها غير متوافقة مع SSH-1. على سبيل المثال، تُقدّم آليات جديدة لتبادل المفاتيح مثل تبادل مفاتيح ديفي-هيلمان ، وتحسينًا في التحقق من سلامة البيانات عبر رموز مصادقة الرسائل مثل MD5 أو SHA-1 ، والتي يُمكن التفاوض عليها بين العميل والخادم. كما تُضيف SSH-2 أساليب تشفير أقوى مثل AES، والتي حلت في النهاية محلّ خوارزميات التشفير الأضعف والأكثر عرضةً للاختراق من المعيار السابق مثل 3DES . [ 20 ] [ 21 ] [ 19 ] تشمل الميزات الجديدة لـ SSH-2 إمكانية تشغيل أي عدد من جلسات shell عبر اتصال SSH واحد. [ 22 ] نظرًا لتفوق SSH-2 وشعبيته على SSH-1، فإن بعض التطبيقات مثل libssh (v0.8.0+)، [ 23 ] Lsh [ 24 ] و Dropbear [ 25 ] تدعم في النهاية بروتوكول SSH-2 فقط.
الإصدار 1.99
في يناير 2006، وبعد فترة طويلة من اعتماد الإصدار 2.1، حددت RFC 4253 أن خادم SSH الذي يدعم الإصدار 2.0 بالإضافة إلى الإصدارات السابقة يجب أن يُعرّف إصدار بروتوكوله على أنه 1.99. [ 26 ] لا يعكس رقم الإصدار هذا مراجعة تاريخية للبرنامج، ولكنه طريقة لتحديد التوافق مع الإصدارات السابقة .
OSSH و OpenSSH
في عام ١٩٩٩، سعى المطورون، رغبةً منهم في توفير نسخة برمجية مجانية، إلى استئناف تطوير برنامج SSH الأصلي من الإصدار ١.٢.١٢، الذي كان آخر إصدار مُرخص بموجب رخصة مفتوحة المصدر . [ ٢٧ ] وقد شكّل هذا الإصدار قاعدة بيانات لبرنامج OSSH الخاص ببيورن غرونفال. [ ٢٨ ] بعد ذلك بوقت قصير، قام مطورو OpenBSD بنسخ كود غرونفال وإنشاء OpenSSH ، الذي تم إصداره مع الإصدار ٢.٦ من OpenBSD. ومن هذا الإصدار، تم إنشاء فرع "قابلية النقل" لنقل OpenSSH إلى أنظمة تشغيل أخرى. [ ٢٩ ]
اعتبارًا من عام 2005كان OpenSSH التطبيق الأكثر شيوعًا لبروتوكول SSH، حيث كان الإصدار الافتراضي في العديد من توزيعات أنظمة التشغيل. أما OSSH، فقد أصبح قديمًا. [ 30 ] لا يزال OpenSSH قيد الصيانة ويدعم بروتوكول SSH-2، بعد أن تم حذف دعم SSH-1 من قاعدة التعليمات البرمجية في إصدار OpenSSH 7.6.
مستقبل
في عام 2023، اقترح طالب الدكتوراه فرانسوا ميشيل والبروفيسور أوليفييه بونافنتور بديلاً لبروتوكول SSH التقليدي تحت اسم SSH3 [ 31 ] [ 32 ] [ 33 ] ، وقد تم نشر شفرته المصدرية مفتوحة المصدر. [ 34 ] تُطبّق هذه النسخة الجديدة بروتوكول اتصال SSH الأصلي، ولكنها تعمل على بروتوكول HTTP/3 ، الذي يعتمد بدوره على QUIC . وتُقدّم هذه النسخة العديد من الميزات، منها:
- إنشاء جلسات أسرع، مما يقلل عدد حالات التأخير ذهابًا وإيابًا من 5-7 إلى 3.
- أمان عالي: بينما يعتمد SSHv2 على بروتوكولاته الخاصة، فإن SSH3 يستفيد من TLS 1.3 و QUIC و HTTP .
- إعادة توجيه منفذ UDP
- شهادات X.509
- OpenID Connect
مع ذلك، لا يزال اسم SSH3 قيد النقاش، ويهدف المشروع إلى تغيير اسمه إلى اسم أكثر ملاءمة. [ 35 ] ينبع هذا النقاش من حقيقة أن هذا التطبيق الجديد يُجري تعديلات جوهرية على بروتوكول SSH، مما يُشير إلى أنه لا ينبغي تسميته SSH3.
الاستخدامات


بروتوكول SSH هو بروتوكول يُستخدم في العديد من التطبيقات على مختلف المنصات، بما في ذلك معظم توزيعات يونكس ( لينكس ، وأنظمة BSD بما فيها macOS من آبل ، وسولاريس )، بالإضافة إلى مايكروسوفت ويندوز . قد تتطلب بعض التطبيقات المذكورة أدناه ميزات متوفرة فقط أو متوافقة مع عملاء أو خوادم SSH محددة. على سبيل المثال، يُمكن استخدام بروتوكول SSH لإنشاء شبكة VPN ، ولكن حاليًا فقط مع خادم وعميل OpenSSH .
- لتسجيل الدخول إلى واجهة سطر الأوامر على مضيف بعيد (بدلاً من Telnet و rlogin )
- لتنفيذ أمر واحد على مضيف بعيد (بدلاً من rsh )
- لإعداد تسجيل دخول تلقائي (بدون كلمة مرور) إلى خادم بعيد (على سبيل المثال، باستخدام OpenSSH [ 36 ] )
- بالإضافة إلى استخدام rsync لعمل نسخ احتياطية ونسخ ومزامنة الملفات بكفاءة وأمان
- لإعادة توجيه منفذ
- للنفق (لا ينبغي الخلط بينه وبين VPN ، الذي يقوم بتوجيه الحزم بين الشبكات المختلفة، أو يربط نطاقي بث في نطاق واحد) .
- للاستخدام كشبكة VPN مشفرة بالكامل. لاحظ أن خادم وعميل OpenSSH فقط يدعمان هذه الميزة.
- لإعادة توجيه X من مضيف بعيد (ممكن عبر عدة مضيفات وسيطة)
- لتصفح الإنترنت من خلال اتصال بروكسي مشفر باستخدام عملاء SSH الذين يدعمون بروتوكول SOCKS .
- لتركيب دليل بشكل آمن على خادم بعيد كنظام ملفات على جهاز كمبيوتر محلي باستخدام SSHFS .
- للمراقبة والإدارة الآلية عن بعد للخوادم من خلال آلية واحدة أو أكثر من الآليات المذكورة أعلاه.
- للتطوير على جهاز محمول أو جهاز مدمج يدعم بروتوكول SSH.
- لتأمين بروتوكولات نقل الملفات.
بروتوكولات نقل الملفات
تُستخدم بروتوكولات Secure Shell في العديد من آليات نقل الملفات.
- النسخة الآمنة (SCP)، التي تطورت من بروتوكول RCP عبر SSH
- rsync ، مصمم ليكون أكثر كفاءة من SCP. يعمل عادةً عبر اتصال SSH.
- بروتوكول نقل الملفات عبر SSH (SFTP)، وهو بديل آمن لبروتوكول نقل الملفات FTP (لا ينبغي الخلط بينه وبين FTP عبر SSH أو FTPS ).
- بروتوكول نقل الملفات عبر الصدفة (FISH)، الذي تم إصداره في عام 1998، والذي تطور من أوامر صدفة يونكس عبر SSH
- يستخدم بروتوكول Fast and Secure Protocol (FASP)، المعروف أيضًا باسم Aspera ، بروتوكول SSH للتحكم ومنافذ UDP لنقل البيانات.
بنيان

يحتوي بروتوكول SSH على بنية متعددة الطبقات تتكون من ثلاثة مكونات منفصلة:
- تستخدم طبقة النقل (RFC 4253) عادةً بروتوكول التحكم بالنقل ( TCP ) الخاص ببروتوكول TCP/IP ، مع حجز المنفذ رقم 22 كمنفذ استماع للخادم. تتولى هذه الطبقة عملية تبادل المفاتيح الأولية، بالإضافة إلى مصادقة الخادم، وتُهيئ التشفير والضغط والتحقق من سلامة البيانات. كما تُوفر للطبقة العليا واجهة لإرسال واستقبال حزم البيانات النصية العادية بحجم يصل إلى 32,768 بايت لكل حزمة، ولكن قد تسمح بعض التطبيقات بحجم أكبر. وتُرتّب طبقة النقل أيضًا لإعادة تبادل المفاتيح، عادةً بعد نقل 1 جيجابايت من البيانات أو بعد مرور ساعة واحدة، أيهما أقرب.
- تتولى طبقة مصادقة المستخدم ( RFC 4252 ) مصادقة العميل، وتوفر مجموعة من خوارزميات المصادقة. وتتم المصادقة من جانب العميل : فعندما يُطلب من المستخدم إدخال كلمة مرور، قد يكون ذلك من قِبل عميل SSH وليس الخادم. يقتصر دور الخادم على الاستجابة لطلبات مصادقة العميل. ومن بين طرق مصادقة المستخدم الشائعة ما يلي:
- كلمة المرور : طريقة سهلة للتحقق من صحة كلمة المرور، تتضمن إمكانية تغييرها. لا تدعم جميع البرامج هذه الطريقة.
- المفتاح العام : طريقة للمصادقة القائمة على المفتاح العام ، وعادة ما تدعم على الأقل أزواج مفاتيح DSA أو ECDSA أو RSA ، مع دعم التطبيقات الأخرى أيضًا لشهادات X.509 .
- التفاعل عبر لوحة المفاتيح ( RFC 4256 ): طريقة متعددة الاستخدامات، حيث يرسل الخادم طلبًا واحدًا أو أكثر لإدخال المعلومات، ويعرضها العميل ويرسل ردودًا مُدخلة من قِبل المستخدم. تُستخدم هذه الطريقة لتوفير مصادقة كلمة مرور لمرة واحدة ، مثل S/Key أو SecurID . كما تُستخدم في بعض إعدادات OpenSSH عندما يكون PAM هو موفر مصادقة المضيف الأساسي، لتوفير مصادقة كلمة المرور بشكل فعال، مما قد يؤدي أحيانًا إلى عدم القدرة على تسجيل الدخول باستخدام عميل يدعم طريقة مصادقة كلمة المرور فقط .
- تُوفّر طرق مصادقة GSSAPI نظامًا قابلًا للتوسيع لإجراء مصادقة SSH باستخدام آليات خارجية مثل Kerberos 5 أو NTLM ، مما يُتيح إمكانية تسجيل الدخول الموحد لجلسات SSH. عادةً ما تُطبّق هذه الطرق في تطبيقات SSH التجارية المُخصصة للاستخدام في المؤسسات، مع العلم أن OpenSSH يمتلك تطبيقًا جاهزًا لـ GSSAPI.
- تُعرّف طبقة الاتصال ( RFC 4254 ) مفهوم القنوات وطلبات القنوات والطلبات العامة، والتي تُحدد خدمات SSH المُقدمة. يُمكن تقسيم اتصال SSH واحد إلى عدة قنوات منطقية في آنٍ واحد، حيث تنقل كل قناة البيانات في كلا الاتجاهين. تُستخدم طلبات القنوات لنقل بيانات خاصة بالقناة خارج نطاق الاتصال، مثل تغيير حجم نافذة طرفية أو رمز خروج عملية على جانب الخادم. بالإضافة إلى ذلك، تُجري كل قناة عملية تحكم في التدفق باستخدام حجم نافذة الاستقبال. يطلب عميل SSH إعادة توجيه منفذ على جانب الخادم باستخدام طلب عام. تشمل أنواع القنوات القياسية ما يلي:
- shell لأنظمة طرفية الأوامر، وطلبات SFTP و exec (بما في ذلك عمليات نقل SCP)
- بروتوكول TCP/IP المباشر للاتصالات المُعاد توجيهها من العميل إلى الخادم
- إعادة توجيه TCP/IP للاتصالات المُعاد توجيهها من الخادم إلى العميل
- يوفر سجل SSHFP DNS (RFC 4255) بصمات مفتاح المضيف العام للمساعدة في التحقق من صحة المضيف.
توفر هذه البنية المفتوحة مرونة كبيرة، مما يسمح باستخدام SSH لأغراض متنوعة تتجاوز مجرد توفير اتصال آمن. تُضاهي وظائف طبقة النقل وحدها وظائف بروتوكول أمان طبقة النقل (TLS)؛ وتتميز طبقة مصادقة المستخدم بقابلية عالية للتوسيع باستخدام أساليب مصادقة مخصصة؛ كما توفر طبقة الاتصال إمكانية دمج العديد من الجلسات الثانوية في اتصال SSH واحد، وهي ميزة تُضاهي بروتوكول BEEP وغير متوفرة في TLS.
الخوارزميات
نقاط الضعف
SSH-1
في عام ١٩٩٨، تم وصف ثغرة أمنية في بروتوكول SSH 1.5 تسمح بإدخال محتوى غير مصرح به في تدفق SSH المشفر، وذلك بسبب عدم كفاية حماية سلامة البيانات من خلال خوارزمية CRC-32 المستخدمة في هذا الإصدار من البروتوكول. [ ٤٢ ] [ ٤٣ ] تم إدخال إصلاح يُعرف باسم كاشف هجوم تعويض SSH [ ٤٤ ] في معظم التطبيقات. احتوت العديد من هذه التطبيقات المُحدثة على ثغرة أمنية جديدة تتعلق بتجاوز سعة عدد صحيح [ ٤٥ ] ، مما سمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية بصلاحيات خادم SSH، وعادةً ما تكون صلاحيات المستخدم الجذر.
في يناير 2001، تم اكتشاف ثغرة أمنية تسمح للمهاجمين بتعديل الجزء الأخير من جلسة مشفرة باستخدام بروتوكول IDEA . [ 46 ] وفي الشهر نفسه، تم اكتشاف ثغرة أمنية أخرى تسمح لخادم خبيث بإعادة توجيه بيانات مصادقة العميل إلى خادم آخر. [ 47 ]
نظراً لوجود عيوب تصميمية متأصلة في بروتوكول SSH-1 تجعله عرضة للاختراق، فإنه يُعتبر الآن بشكل عام بروتوكولاً قديماً ويجب تجنبه عن طريق تعطيل الرجوع إلى بروتوكول SSH-1 بشكل صريح. تدعم معظم الخوادم والعملاء الحديثة بروتوكول SSH-2. [ 47 ]
استعادة النص الأصلي لهيئة الإذاعة الكندية (CBC)
في نوفمبر 2008، تم اكتشاف ثغرة أمنية نظرية في جميع إصدارات بروتوكول SSH، تسمح باستعادة ما يصل إلى 32 بت من النص الأصلي من كتلة نص مشفر باستخدام نمط التشفير الافتراضي القياسي آنذاك، وهو CBC . [ 48 ] الحل الأبسط هو استخدام نمط العداد (CTR ) بدلاً من نمط CBC، لأن ذلك يجعل بروتوكول SSH مقاومًا لهذا الهجوم. [ 48 ]
يُشتبه في أن وكالة الأمن القومي قامت بفك التشفير
في 28 ديسمبر/كانون الأول 2014، نشرت مجلة دير شبيغل معلومات سرية [ 49 ] سربها إدوارد سنودن ، تشير إلى أن وكالة الأمن القومي قد تكون قادرة على فك تشفير بعض بيانات بروتوكول SSH. ولم تُكشف التفاصيل التقنية المتعلقة بهذه العملية. وأشار تحليل أُجري عام 2017 لأدوات القرصنة التابعة لوكالة المخابرات المركزية ، BothanSpy و Gyrfalcon، إلى أن بروتوكول SSH لم يتعرض للاختراق. [ 50 ]
هجوم السلاحف
تم اكتشاف هجوم جديد من نوع "رجل في المنتصف" يستهدف معظم تطبيقات SSH الحالية في عام 2023، وأطلق عليه مكتشفوه اسم " هجوم Terrapin" . [ 51 ] [ 52 ] ومع ذلك، يتم التخفيف من حدة هذا الهجوم بفضل اشتراط اعتراض جلسة SSH حقيقية، ونطاقه المحدود الذي يؤدي في الغالب إلى فشل الاتصالات. [ 52 ] [ 53 ] وقد صرّح مطورو SSH بأن التأثير الرئيسي لهذا الهجوم هو إضعاف ميزات إخفاء توقيت ضغطات المفاتيح في SSH. [ 53 ] تم إصلاح هذه الثغرة الأمنية في OpenSSH 9.6، ولكن يتطلب ذلك ترقية كل من العميل والخادم ليكون الإصلاح فعالاً بالكامل.
توثيق المعايير
توثق منشورات RFC التالية الصادرة عن مجموعة عمل IETF "secsh" معيار SSH-2 كمعيار إنترنت مقترح .
- RFC 4250 – أرقام بروتوكول Secure Shell (SSH) المخصصة
- RFC 4251 – بنية بروتوكول Secure Shell (SSH)
- RFC 4252 – بروتوكول المصادقة Secure Shell (SSH)
- RFC 4253 – بروتوكول طبقة النقل Secure Shell (SSH)
- RFC 4254 – بروتوكول اتصال Secure Shell (SSH)
- RFC 4255 – استخدام نظام أسماء النطاقات (DNS) لنشر بصمات مفاتيح Secure Shell (SSH) بشكل آمن
- RFC 4256 – مصادقة تبادل الرسائل العامة لبروتوكول Secure Shell (SSH)
- RFC 4335 – امتداد انقطاع قناة جلسة Secure Shell (SSH)
- RFC 4344 – أوضاع تشفير طبقة النقل في بروتوكول SSH
- RFC 4345 – أوضاع Arcfour المحسّنة لبروتوكول طبقة النقل Secure Shell (SSH)
تم تحديث مواصفات البروتوكول لاحقًا من خلال المنشورات التالية:
- RFC 4419 – تبادل مجموعة ديفي-هيلمان لبروتوكول طبقة النقل Secure Shell (SSH) (مارس 2006)
- RFC 4432 – تبادل مفاتيح RSA لبروتوكول طبقة النقل Secure Shell (SSH) (مارس 2006)
- RFC 4462 – واجهة برمجة تطبيقات خدمة الأمان العامة (GSS-API) المصادقة وتبادل المفاتيح لبروتوكول Secure Shell (SSH) (مايو 2006)
- RFC 4716 – تنسيق ملف المفتاح العام لبروتوكول SSH (نوفمبر 2006)
- RFC 4819 – نظام المفتاح العام لبروتوكول Secure Shell (مارس 2007)
- RFC 5647 – وضع عداد AES Galois لبروتوكول طبقة النقل Secure Shell (أغسطس 2009)
- RFC 5656 – دمج خوارزمية المنحنى الإهليلجي في طبقة النقل الآمنة (ديسمبر 2009)
- RFC 6187 – شهادات X.509v3 لمصادقة Secure Shell (مارس 2011)
- RFC 6239 – Suite B Crypographic Suites for Secure Shell (SSH) (مايو 2011)
- RFC 6594 – استخدام خوارزمية SHA-256 مع RSA وخوارزمية التوقيع الرقمي (DSA) وخوارزمية التوقيع الرقمي للمنحنى الإهليلجي (ECDSA) في سجلات موارد SSHFP (أبريل 2012)
- RFC 6668 – التحقق من سلامة البيانات SHA-2 لبروتوكول طبقة النقل Secure Shell (SSH) (يوليو 2012)
- RFC 7479 – Ed25519 سجلات موارد SSHFP (مارس 2015)
- RFC 5592 – نموذج نقل Secure Shell لبروتوكول إدارة الشبكة البسيط (SNMP) (يونيو 2009)
- RFC 6242 – استخدام بروتوكول NETCONF عبر Secure Shell (SSH) (يونيو 2011)
- RFC 8332 – استخدام مفاتيح RSA مع SHA-256 و SHA-512 في بروتوكول Secure Shell (SSH) (مارس 2018)
- RFC 8709 – Ed25519 و Ed448 خوارزميات المفتاح العام لبروتوكول Secure Shell (SSH) (فبراير 2020)
- draft-gerhards-syslog-transport-ssh – تعيين نقل SSH لـ SYSLOG (يوليو 2006)
- draft-ietf-secsh-filexfer – بروتوكول نقل الملفات عبر SSH (يوليو 2006)
- draft-ietf-sshm-ssh-agent - بروتوكول وكيل SSH (مارس 2025)
بالإضافة إلى ذلك، يتضمن مشروع OpenSSH العديد من مواصفات/امتدادات بروتوكولات البائعين:
انظر أيضاً
مراجع
- 1 2 ت. يلونين؛ س. لونفيك (يناير 2006). بنية بروتوكول Secure Shell (SSH) . IETF Trust. doi : 10.17487/RFC4251 . RFC 4251 .
- ↑ "جامعة ميسوري للعلوم والتكنولوجيا: بروتوكول Telnet الآمن" .
- 1 2 3 ت. يلونين؛ س. لونفيك (يناير 2006). بروتوكول مصادقة Secure Shell (SSH) . IETF Trust. doi : 10.17487/RFC4252 . RFC 4252 .
- ↑ "كيفية إعداد المفاتيح المعتمدة" . مؤرشف من الأصل بتاريخ 2011-05-10.
- ↑ Win-32 OpenSSH
- ↑ "الصفحة الرئيسية لبرنامج WinSCP" . مؤرشفة من الأصل بتاريخ 17-02-2014.
- ↑ "صفحة WinSCP لموقع PortableApps.com" . مؤرشفة من الأصل بتاريخ 16-02-2014.
- ↑ "صفحة PuTTY لموقع PortableApps.com" . مؤرشفة من الأصل بتاريخ 16-02-2014.
- ↑ آميس، أ؛ وو، سي إف؛ وانغ، جي سي؛ كريفيتي، إم (2012). "التواصل الشبكي على السحابة" . IBM developerWorks . مؤرشف من الأصل بتاريخ 14-06-2013.
- ↑ "سجل اسم الخدمة ورقم منفذ بروتوكول النقل" .
- ↑ "سجل اسم الخدمة ورقم منفذ بروتوكول النقل" . iana.org . مؤرشف من الأصل بتاريخ 2001-06-04.
- ↑ سيجلمان، ر.؛ توكسن، م.؛ راثجيب، إي. بي. (18-20 يوليو 2012). بروتوكول SSH عبر بروتوكول SCTP - تحسين بروتوكول متعدد القنوات من خلال تكييفه مع بروتوكول SCTP . المؤتمر الدولي الثامن لأنظمة الاتصالات والشبكات ومعالجة الإشارات الرقمية (CSNDSP). الصفحات 1-6 . doi : 10.1109/CSNDSP.2012.6292659 . ISBN 978-1-4577-1473-3. S2CID 8415240 .
- ↑ تاتو يلونين. "المفتاح الهيكلي الجديد: تغيير الأقفال في بيئة شبكتك" . مؤرشف من الأصل بتاريخ 20-08-2017.
- ↑ تاتو يلونين. "منفذ SSH" . مؤرشف من الأصل بتاريخ 2017-08-03.
- ↑ يلونين، تاتو. "قصة منفذ SSH هي 22" . www.ssh.com . تاريخ الاسترجاع: 30 نوفمبر 2023 .
- ↑ باريت، دانيال جيه؛ سيلفرمان، ريتشارد إي. (2001). SSH، الصدفة الآمنة: الدليل الشامل ( الطبعة الأولى). كامبريدج [ماساتشوستس]: أورايلي. ص 11. ISBN 978-0-596-00011-0.
- ↑ نيكولاس روساسكو وديفيد لاروشيل. "كيف ولماذا تنجح التقنيات الأكثر أمانًا في الأسواق التقليدية: دروس مستفادة من نجاح SSH" (ملف PDF) . نقلاً عن باريت وسيلفرمان، SSH، الغلاف الآمن: الدليل الشامل، أورايلي وشركاؤه (2001) . قسم علوم الحاسوب، جامعة فرجينيا. مؤرشف (ملف PDF) من الأصل بتاريخ 25 يونيو 2006. تم الاطلاع عليه بتاريخ 19 مايو 2006 .
- ↑ فريق عمل هندسة الإنترنت (IETF): متتبع البيانات لـ secsh
- 1 2 RFC4252: بروتوكول المصادقة Secure Shell (SSH)، يناير 2006
- ↑ أورايلي: الدليل الشامل لبروتوكول Secure Shell
- ↑ RFC4250: بروتوكول Secure Shell (SSH): الأسماء المخصصة، يناير 2006، الصفحة 16
- ↑ "الأسئلة الشائعة حول SSH" . مؤرشف من الأصل بتاريخ 10-10-2004.
- ↑ "libssh" .
- ↑ "تطبيق GNU لبروتوكولات Secure Shell" . مؤرشف من الأصل بتاريخ 2012-02-04.
- ↑ "Dropbear SSH" . مؤرشف من الأصل بتاريخ 2011-10-14.
- ↑ يلونين، ت.؛ لونفيك، س. "عميل قديم، خادم جديد" . بروتوكول طبقة النقل لبروتوكول SSH . IETF. القسم 5.1. doi : 10.17487/RFC4253 . RFC 4253 .
- ↑ يتوفر الآن الإصدار ssh-1.2.13: تم تغيير سياسة النسخ (يلزم الآن الحصول على إذن لبيع ssh تجاريًا، ولا يزال الاستخدام مسموحًا به لأي غرض)
- ↑ مصادر OSSH
- ↑ "OpenSSH: تاريخ المشروع وقائمة المساهمين" . openssh.com. 22-12-2004. مؤرشف من الأصل في 24-12-2013 . تم الاطلاع عليه في 27-04-2014 .
- ↑ "معلومات OSSH للوحدة الافتراضية رقم 419241" . مركز تنسيق CERT . 15 فبراير 2006. مؤرشف من الأصل بتاريخ 27 سبتمبر 2007.
على أي حال، فإن ossh قديم ومتقادم، ولا أنصح باستخدامه.
- ↑ "محطة طرفية عن بعد عبر اتصالات HTTP/3" . datatracker.ietf.org . 2024-08-01.
- ↑ "بروتوكول Secure shell عبر اتصالات HTTP/3" . www.ietf.org . 2024-02-28.
- ↑ ميشيل، فرانسوا؛ بونافنتور، أوليفييه (2023-12-12). "نحو SSH3: كيف يُحسّن HTTP/3 من أمان الصدفات". arXiv : 2312.08396 [ cs.NI ].
- ^ "سش3" . جيثب.كوم . 2024-07-12.
- ↑ "Secure shell over HTTP/3 connections" . datatracker.ietf.org . 2024-02-28.
- ↑ سوبيل، مارك (2012). دليل عملي لأوامر لينكس، والمحررات، وبرمجة الصدفة ( الطبعة الثالثة). أبر سادل ريفر، نيوجيرسي: برنتيس هول. الصفحات 702-704 . ISBN 978-0133085044.
- ↑ هاريس، ب.؛ فيلفيندرون، ل. (فبراير 2020). خوارزميات المفتاح العام Ed25519 وEd448 لبروتوكول Secure Shell (SSH) . IETF . doi : 10.17487/RFC8709 . RFC 8709 .
- 1 2 ستيبلا، د.؛ غرين، ج. (ديسمبر 2009). دمج خوارزمية المنحنى الإهليلجي في طبقة نقل بروتوكول SSH . IETF . doi : 10.17487/RFC5656 . RFC 5656. تم الاطلاع عليه بتاريخ 12 نوفمبر 2012 .
- ↑ ميلر، د.؛ فالشيف، ب. (3 سبتمبر 2007). استخدام UMAC في بروتوكول طبقة النقل SSH . IETF . المعرف draft-miller-secsh-umac-00.
- ↑ يلونين، ت.؛ لونفيك، س. بروتوكول طبقة النقل Secure Shell (SSH) . IETF. doi : 10.17487/RFC4253 . RFC 4253 .
- ↑ إيغو، ك.؛ سولينس، ج. (أغسطس 2009). وضع عداد غالوا لخوارزمية التشفير المتقدمة (AES) لبروتوكول طبقة النقل الآمنة (SSL) . IETF . doi : 10.17487/RFC5647 . RFC 5647 .
- ↑ "هجوم إدخال SSH" . تقنيات الأمن الأساسية . مؤرشف من الأصل بتاريخ 2011-07-08.
- ↑ "ملاحظة حول الثغرة الأمنية VU#13877 - يسمح CRC الضعيف بحقن الحزم في جلسات SSH المشفرة باستخدام تشفير الكتل" . US CERT . مؤرشف من الأصل بتاريخ 10 يوليو 2010.
- ↑ "ثغرة أمنية في كاشف هجوم تعويض CRC-32 لبروتوكول SSH" . SecurityFocus . مؤرشف من الأصل بتاريخ 25-07-2008.
- ↑ "ملاحظة حول الثغرة الأمنية VU#945216 - يحتوي رمز اكتشاف هجوم SSH CRC32 على تجاوز سعة عدد صحيح عن بُعد" . US CERT . مؤرشف من الأصل بتاريخ 13-10-2005.
- ↑ "ملاحظة حول الثغرة الأمنية VU#315308 - يسمح نظام التحقق من التكرار الضعيف (CRC) بتغيير الكتلة الأخيرة من حزمة SSH المشفرة باستخدام خوارزمية IDEA دون إشعار" . مركز الاستجابة للطوارئ الحاسوبية الأمريكي (US CERT) . مؤرشف من الأصل بتاريخ 11 يوليو 2010.
- ١ ٢ "ملاحظة حول الثغرة الأمنية VU#684820 - يسمح بروتوكول SSH-1 بإعادة توجيه بيانات مصادقة العميل من خادم خبيث إلى خادم آخر" . مركز الاستجابة للطوارئ الحاسوبية الأمريكي (US CERT) . مؤرشف من الأصل بتاريخ 1 سبتمبر 2009.
- 1 2 "ملاحظة حول الثغرة الأمنية VU#958563 - ثغرة SSH CBC" . مركز الاستجابة للطوارئ الحاسوبية الأمريكي (US CERT) . مؤرشف من الأصل بتاريخ 22-06-2011.
- ↑ "عيون متطفلة: داخل حرب وكالة الأمن القومي على أمن الإنترنت" . شبيغل أونلاين . 28 ديسمبر 2014. مؤرشف من الأصل في 24 يناير 2015.
- ↑ يلونين، تاتو (3 أغسطس 2017). "BothanSpy وGyrfalcon - تحليل أدوات اختراق وكالة المخابرات المركزية لبروتوكول SSH" . ssh.com . تم الاطلاع عليه بتاريخ 15 يوليو 2018 .
- ↑ "هجوم التيرابين" . terrapin-attack.com . تم الاطلاع عليه بتاريخ 20-12-2023 .
- 1 2 جونز، كونور (2023-12-20). "ثغرة أمنية في Terrapin تُزعزع بروتوكول SSH، لا تُحركه" . ذا ريجستر .
- 1 2 "ملاحظات إصدار OpenSSH 9.6" . openssh.com . 2023-12-18.
للمزيد من القراءة
- باريت، دانيال ج .؛ سيلفرمان، ريتشارد إي.؛ بيرنز، روبرت ج. (2005). SSH: The Secure Shell (الدليل الشامل) (الطبعة الثانية ). أورايلي. ISBN 0-596-00895-3.
- لوكاس، مايكل و. (2018). إتقان مهارات التواصل الاجتماعي والهوية ( الطبعة الثانية). دار نشر تيلتد ويندميل. رقم ISBN 9781642350029.
- ستاهنكي، مايكل (2005). برو OpenSSH . Apress. رقم ISBN 1-59059-476-2.
- تاتو إيلونين (12 يوليو 1995). "إعلان: برنامج تسجيل الدخول عن بعد Ssh (Secure Shell)" . comp.security.unix.الإعلان الأصلي عن SSH
- دويفيدي، هيمانشو (2003). تطبيق SSH . وايلي. ISBN 978-0-471-45880-7.
روابط خارجية
- بروتوكولات SSH
- م. جوزيف؛ ج. سوسوي (نوفمبر 2013). نظام المفتاح العام لبروتوكول Secure Shell في P6R . IETF . doi : 10.17487/RFC7076 . RFC 7076 .
- ملف المصدر الأصلي لبروتوكول SSH المضغوط
- صدفة آمنة
- بروتوكولات طبقة التطبيق
- الاختراعات الفنلندية
- برنامج تم تطويره في فنلندا
