سecure الشيخell (SSH) هو بروتوكول أمان شائع التنفيذ مع مجموعة من الاستخدامات المختلفة. تطبيقه الأكثر شهرة يسمح للمستخدمين الوصول بأمان إلى أجهزة الكمبيوتر والخوادم البعيدة, ولكن يمكن استخدامه أيضًا للنفق وإعادة توجيه المنافذ ونقل الملفات بشكل آمن وغير ذلك الكثير.
في هذا الدليل ، سنغطي ما هو SSH ، ما هو استخدامه ، تاريخ البروتوكول ، تفاصيله الفنية, فضلا عن قضايا الأمن التي تحتاج إلى أن تؤخذ بعين الاعتبار.
يتكون SSH من ثلاثة بروتوكولات منفصلة: طبقة النقل ، طبقة المصادقة وطبقة الاتصال. تعمل هذه الميزات معًا على مصادقة الطرف الآخر في الاتصال وتوفير السرية من خلال التشفير والتحقق من سلامة البيانات. يتم الآن تطبيق SSH بشكل شائع باعتباره إما SSH-2 المملوك ، أو كتكرار مفتوح المصدر ، OpenSSH.
استخدامات SSH
SSH هو بروتوكول متعدد الاستخدامات. تسمح بهيكله وميزاته الأمنية باستخدامه بعدة طرق ، مثل الوصول عن بُعد وإعادة توجيه المنافذ والأنفاق ونقل الملفات بشكل آمن.
الوصول عن بعد
الوصول عن بعد يتيح للمستخدمين وسيلة ل تسجيل الدخول إلى كمبيوتر آخر أو خادم من الجهاز الخاص بهم. يتم استخدامه للوصول إلى الملفات المحلية للجهاز الهدف أو أداء الخدمات عليه ، كل ذلك دون الحاجة إلى الحضور فعليًا.
برامج مثل Telnet و rlogin لديها هذه الوظيفة أيضًا ، لكنها تفتقر إلى ميزات الأمان الخاصة بـ SSH. تسمح تدابير التشفير والمصادقة المتضمنة في SSH للمستخدمين بالاتصال بخادم أو كمبيوتر آخر بطريقة محمية ، حتى عبر شبكة وسيطة يحتمل أن تكون خطرة.
يتم تنفيذ الوصول عن بُعد باستخدام SSH بحيث يمكن للموظفين العمل عن بُعد أو للسماح لقسم تكنولوجيا المعلومات بإنجاز المهام دون الاضطرار إلى الذهاب فعليًا إلى الجهاز. يمكن استخدامه للإدارة عن بُعد وإدارة البنية الأساسية للشبكة لإعداد الأتمتة وإنشاء نسخ احتياطية والمزيد.
ميناء الشحن
يتم استخدام إعادة توجيه المنفذ لنقل الطلبات من عنوان ورقم منفذ إلى مجموعة أخرى. يطبق ترجمة عنوان الشبكة (NAT) على إعادة توجيه المنافذ بين شبكة محلية وجهاز كمبيوتر بعيد ، مما يتيح لك الوصول إلى جهاز من خارج الشبكة.
يمكن إجراء إعادة توجيه المنفذ بثلاث طرق مختلفة:
- محلي ميناء الشحن – تتيح لك ميزة إعادة توجيه المنفذ المحلي توصيل عميلك المحلي وشبكة خارجية. يمكن أن يكون فعالًا في القيام بأشياء مثل الوصول إلى مواقع الويب المحظورة محليًا أو للاتصال بقاعدة بيانات خلف جدار الحماية.
- ميناء الشحن البعيد – يتيح هذا النوع من إعادة التوجيه للتطبيقات من جانب الخادم الوصول إلى الخدمات من جانب العميل. تتيح إعادة توجيه المنافذ عن بُعد لـ SSH للمستخدمين الاتصال بأمان بالخوادم البعيدة عبر أجهزة الكمبيوتر المحلية الخاصة بهم عن طريق إعادة توجيه منفذ محلي إلى خادم SSH بعيد.
- ديناميكي ميناء الشحن – يتيح ذلك للمستخدمين إرسال بياناتهم عبر منفذ معين إلى كمبيوتر بعيد أو خادم عن طريق استخدام عدد من خوادم SSH التي تعمل كوكلاء.
نفق
تستخدم بروتوكولات الأنفاق التغليف لنقل البيانات بين الشبكات. يمكن نشر الأنفاق للسماح للبروتوكولات غير المحلية بالعمل عبر الشبكات التي لا تدعمها عادةً. استخدام آخر شائع هو ل توفير الأمن عبر شبكة غير آمنة.
التفاف بروتوكولات الأنفاق الحزم الحرجة داخل الحمولة من حزمة أخرى. يسمح نفق SSH للمستخدمين بالالتفاف على أمان الشبكة ، وربط الأجهزة باستخدام بروتوكول شبكة غير أصلي ، وتأمين البيانات التي يتم إرسالها. يتم استخدامها بشكل متكرر لتوصيل المستخدمين عن بعد بموارد مؤسستهم عبر الإنترنت بطريقة آمنة.
SFTP
يوفر بروتوكول نقل الملفات SSH (FTP) ، والذي يُعرف أحيانًا باسم بروتوكول نقل الملفات الآمنة ، طريقة آمنة للوصول إلى الملفات ونقلها وإدارتها. إنه بديل آمن لبروتوكول نقل الملفات ، ويستفيد من بروتوكول SSH لإرسال واستقبال وإدارة الملفات بشكل آمن.
SCP
يشبه بروتوكول النسخ الآمن (SCP) بروتوكول SFTP ، ولكنه محدود في نطاقه. يسمح فقط بنقل الملفات بشكل آمن ، بدلاً من مجموعة الميزات الكاملة التي تسمح لـ SFTP بالعمل كبروتوكول لنظام ملفات بعيد.
منصات & التطبيقات التي تستخدم SSH
SSH الملكية أو OpenSSH يمكن استخدامها على جميع أنظمة التشغيل الرئيسية. وهي متوفرة على الأنظمة الأساسية المستندة إلى Unix مثل OpenBSD و macOS و Linux و Solaris ، بينما يمكن لمستخدمي Windows استخدام SSH من خلال PowerShell.
تاريخ SSH
تم تطوير SSH في جامعة هلسنكي للتكنولوجيا في عام 1995 من قبل Tatu Ylönen رداً على هجوم استنشاق كلمة المرور على شبكة الجامعة. تهدف إلى توفير بديل لبروتوكولات مثل FTP ، TELNET ، rsh و غير أمن, التي لم تضمن السرية أو مصادقة المستخدمين بطريقة آمنة.
تم إصدار SSH مجانًا للجمهور في عام 1995 وتم استقباله جيدًا. وسط اعتماده السريع ، أسس Ylönen SSH Communications Security بحلول نهاية العام نفسه من أجل مواصلة تطوير وتسويق SSH.
في عام 1995 ، نشر Ylönen أيضًا مسودة إنترنت لفريق مهام هندسة الإنترنت (IETF) توثيق بروتوكول SSH-1. سرعان ما تم العثور على قيود في البروتوكول ، وهذه لا يمكن معالجتها دون التأثير على التوافق مع الإصدارات السابقة. كان الحل إصدارًا جديدًا من البروتوكول ، وتم إطلاق SSH-2 بواسطة شركة Ylönen في عام 1996.
ظهرت SSH-2 خوارزميات جديدة ، مما دفع IETF لتأسيس مجموعة عمل تهدف إلى توحيد البروتوكول. كان الفريق الملقب SECSH ، ل ثانيةلدى عودتهم الشيخell ، ونشرت أول مسودة إنترنت لـ SSH-2 في عام 1997.
تم إصدار برنامج SSH-2 في عام 1998 ، لكن لم يتم اعتماده على الفور على نطاق واسع نظرًا لترخيصه الأكثر تقييدًا. في عام 2006 ، أصبحت نسخة معدلة من البروتوكول قياسية من قبل IETF. كان هذا أكثر أمانًا ، باستخدام رموز مصادقة الرسائل للتحقق من النزاهة وتبادل مفتاح Diffie-Hellman للمصادقة.
في عام 1999 أصدر مشروع OpenBSD OpenSSH. OpenSSH هو نسخة مجانية من البروتوكول يعتمد ذلك على التعديلات التي أجراها بيورن جرونفال على SSH 1.1.12. عاد المطورون إلى هذا الإصدار الأقدم وقاموا بتغييره بشدة ، لأنه كان الإصدار الأخير من SSH الذي كان مفتوحًا تمامًا. يعد OpenSSH الآن الخيار الأكثر استخدامًا على نطاق واسع ، وقد تم تطبيقه منذ ذلك الحين في مجموعة من أنظمة التشغيل ، مثل Windows و macOS و Linux و Solaris وغيرها.
SSH-1 vs SSH-2 vs OpenSSH
كما ذكر أعلاه ، SSH-1 هو الإصدار الأول من البروتوكول ، والذي تم إصداره أصلاً تحت رخصة مفتوحة المصدر. يعتبر غير آمن ولا يجب تنفيذه. هذا يترك إصدار الملكية ، SSH-2 ، والنسخة المتاحة بحرية ، OpenSSH ، كبدائل قابلة للتطبيق.
SSH-2 و OpenSSH هما نفس الشيء عندما يتعلق الأمر بالهندسة المعمارية وكيفية عملها. يتمثل الاختلاف الرئيسي في أن إصدار الملكية يأتي مع مجموعة من خيارات الدعم ، بينما يحتاج أولئك الذين يستخدمون OpenSSH إلى الاعتماد على الموارد التي أنشأها المجتمع بحرية.
SSH: التفاصيل الفنية
يعمل SSH-1 كبروتوكول واحد ، لكننا لن نذهب إليه هنا لأنه عفا عليه الزمن. بدلاً من ذلك ، سنركز على SSH-2 و OpenSSH ، وكلاهما يتكون من ثلاثة بروتوكولات منفصلة:
- بروتوكول النقل – هذا يؤسس الاتصال ويوفر الأمن الأساسي.
- بروتوكول المصادقة – تستخدم هذه الطبقة لمصادقة العميل.
- بروتوكول الاتصال – يعالج هذا البروتوكول القنوات التي يتم نقل البيانات إليها.
يخدم كل من هذه البروتوكولات دورًا فريدًا يعمل على إنشاء اتصال وتأمينه ، ومصادقة الطرف الآخر ، ونقل البيانات. منفذ اتصال TCP الافتراضي هو 22 ، ويتم إعداد الاتصالات بين عميل SSH وخادم SSH على طول نموذج خادم العميل.
تستمر عملية تسجيل الدخول عن بُعد لـ SSH وفقًا للهيكل الأساسي التالي (مع وجود اختلافات حسب التكوين) ، والتي سنغطيها بمزيد من التفاصيل لاحقًا:
- يتصل العميل بخادم SSH لبدء الاتصال.
- ثم يرسل الخادم المفتاح العمومي إلى العميل لمصادقة هويته.
- يقوم الطرفان بالتفاوض على معلمات الاتصال ، ثم إنشاء قناة آمنة على طول هذه الخطوط.
- يقوم المستخدم بعد ذلك بتسجيل الدخول إلى نظام التشغيل الخاص بمضيف الخادم ويمكنه الآن إدارة مهامه عن بُعد.
بروتوكول النقل
طبقة النقل هي بروتوكول منخفض المستوى يعتني بالمهام التالية.
- مصادقة خادم المضيف
- تبادل المفاتيح
- تشفير لسرية البيانات
- يتحقق النزاهة للتحقق من عدم تغيير البيانات
- إنشاء معرف جلسة والتي يمكن استخدامها في البروتوكولات الأخرى
ال بروتوكول النقل يصادق فقط على الخادم وليس العميل (تتم مصادقة العميل في بروتوكول المصادقة إذا كان ذلك مطلوبًا).
في طبقة النقل ، يتم بدء الاتصال من قبل العميل ويقوم الطرفان بعد ذلك بالتفاوض حول كيفية تبادل المفاتيح ، وخوارزمية المفتاح العام التي سيتم استخدامها ، والتي تشفير المفتاح المتماثل ستقوم بتشفير البيانات ، وسيتم استخدام خوارزمية مصادقة الرسائل. للتحقق من البيانات ، وأي طريقة ضغط (إن وجدت) سيتم تنفيذها.
بمجرد بدء الاتصال ، يحتاج كل من الخادم والعميل إلى الإرسال عبر سلسلة تعريف ، والتي تتضمن إصدار البروتوكول (2.0).
خوارزمية التفاوض
لإعداد معلمات الاتصال ، يرسل كلا الجانبين حزمة تحتوي على قائمة بالخيارات التالية:
البايت SSH_MSG_KEXINIT
البايت [16] ملف تعريف الارتباط (بايت عشوائي)
خوارزميات قائمة الأسماء
اسم قائمة server_host_key_algorithms
قائمة أسماء encryption_algorithms_client_to_server
قائمة أسماء encryption_algorithms_server_to_client
اسم قائمة mac_algorithms_client_to_server
اسم قائمة mac_algorithms_server_to_client
اسم قائمة compression_algorithms_client_to_server
اسم قائمة compression_algorithms_server_to_client
قائمة أسماء اللغات
قائمة أسماء اللغات_الخادم_السابق
منطقية first_kex_packet_follows
uint32 0 (محجوز للتوسعة المستقبلية)
يسرد كل جانب المعلمات التي هم على استعداد لقبولها في الاتصال ، مفصولة بفواصل. يجب أن يتم سرد الخوارزمية المفضلة أولاً.
إلى عن على تبادل المفتاح (kex_algorithms) ، سيتم اختيار الخوارزمية الأولى التي يدعمها كلا الطرفين للاتصال (قد يكون هناك أيضًا عوامل أخرى يجب الوفاء بها ، اعتمادًا على الخوارزمية التي تم اختيارها). إذا لم يتمكن الطرفان من العثور على خوارزمية مدعومة بشكل متبادل تفي بهذه المتطلبات ، فسيفشل الاتصال.
خوارزميات مفتاح مضيف الخادم هي الخوارزميات المدعومة لمفتاح مضيف الخادم. يحدد الخادم الخوارزميات التي لديه مفاتيح المضيف لها ، في حين يحدد العميل الخوارزميات التي هو على استعداد لقبولها. يعتمد الاختيار على ما إذا كانت طريقة تبادل المفاتيح التي تمت تسويتها تتطلب مفتاح مضيفًا قادرًا على التشفير أو توقيعًا رقميًا
كلا الجانبين قائمة خوارزميات مفتاح متماثل أنهم على استعداد لقبول ، مع الأساليب المفضلة في الأعلى. يجب استخدام الخيار الأول للظهور في قائمة العميل والذي يحدث أيضًا في قائمة الخادم. إذا لم يتم التوصل إلى اتفاق ، فشل الاتصال.
كلا ال خوارزمية MAC و ال خوارزمية ضغط يتم التفاوض في بنفس الطريقة.
تبادل المفاتيح
تبادل المفتاح هو المسؤول عن مصادقة الخادم, و إعداد المفاتيح التي سيتم استخدامها لتأمين الاتصال في الخطوات التالية. يبدأ بشكل عام مع الأطراف بإرسال قوائم الخوارزميات المدعومة إلى بعضها البعض. بدلاً من ذلك ، يمكن لكل جانب تخمين الخوارزمية المفضلة للطرف الآخر وإرسال حزمة تناسب معلمات تلك الخوارزمية في البداية.
إذا كان تخمين أحد الأطراف صحيحًا ، فسيتم استخدام هذه الحزمة كحزمة تبادل المفتاح الأولى. إذا لم يكن أي من التخمينين صحيحًا ، فيجب على كل جانب التراجع وإرسال قوائم الخوارزميات المفضلة لديهم. إذا كانت رسالة تبادل المفاتيح تتضمن التوقيع الرقمي للخادم كدليل على شرعية الخادم ، فيُعتبر ذلك مصادقة خادم صريحة. إذا كان يستخدم السر المشترك بدلاً من ذلك ، تتم الإشارة إليه باسم مصادقة خادم ضمني.
التبادل الرئيسي مسؤول أيضًا عن إنشاء سر مشترك وعثرة. تصبح قيمة التجزئة من تبادل المفاتيح الأولي هي المعرف الفريد للجلسة ، وتستخدم أيضًا كجزء من التواقيع الرقمية التي تثبت أن الطرف هو المالك الحقيقي لمفتاحه الخاص.
تعتمد وظيفة التجزئة المستخدمة على طريقة تبادل المفاتيح التي تم تحديدها في التفاوض. عند اكتمال تبادل المفاتيح ، ستستخدم جميع الاتصالات المستقبلية المجموعة الجديدة من المفاتيح والخوارزميات.
وفقًا لمسودة الإنترنت لفريق هندسة الإنترنت (IETF) ، تعتبر طرق تبادل المفاتيح التالية آمنة:
- curve25519-SHA256
- curve448-SHA512
- ديفي-هيلمان-جماعة الصرف SHA256
- ديفي-هيلمان-group14-SHA256
- ديفي-هيلمان-group15-SHA512
- ديفي-هيلمان-group16-SHA512
- ديفي-هيلمان-group17-SHA512
- ديفي-هيلمان-group18-SHA512
- ecdh-SHA2-nistp256
- ecdh-SHA2-nistp384
- جهاز الأمن العام-group14-SHA256
- جهاز الأمن العام-group15-SHA512
- جهاز الأمن العام-group16-SHA512
- جهاز الأمن العام-group17-SHA512
- جهاز الأمن العام-group18-SHA512
- جهاز الأمن العام-nistp256-SHA256
- جهاز الأمن العام-nistp384-SHA384
- جهاز الأمن العام-nistp521-SHA512
- جهاز الأمن العام-curve25519-SHA256
- جهاز الأمن العام-curve448-SHA512
- rsa2048-SHA256
خادم خوارزمية مفتاح المضيف
تستخدم خوارزميات المفتاح العمومي هذه لـ مصادقة خادم وكذلك لتأسيس معرف جلسة مشتركة بشكل آمن. كما يمكن استخدامها اختياريا لمصادقة المضيف. تم تصميم SSH للعمل مع مجموعة من خوارزميات المفتاح العمومي وأنواع الترميز والتنسيقات:
- يستخدم خوارزميات المفتاح العمومي للتشفير و / أو التوقيعات الرقمية.
- يمكن تنفيذ مجموعة من أساليب الترميز ، مما يتيح التكوين بتنسيقات بيانات مختلفة ، وترتيب الحشو وترتيب البايت.
- تسمح تنسيقات المفاتيح المختلفة بتشفير المفاتيح بطرق مختلفة ، وكذلك مجموعة من شهادات التمثيل.
تتضمن الخوارزميات الافتراضية ما يلي ، ومع ذلك هناك بعض الاختلافات الأخرى التي يمكن تنفيذها أيضًا:
- سه-آر إس إيه
- سه-RSA-SHA256
- سه-مفاجآت صيف دبي
- سه-DSS-SHA256
- x509v3-تسجيل الدخول مفاجآت صيف دبي
- x509v3 تسجيل الدخول-DSS-SHA256
- x509v3-تسجيل الدخول آر إس إيه
- x509v3-تسجيل الدخول آر إس إيه-SHA256
خوارزميات التشفير
تستخدم خوارزميات مفتاح متماثل تشفير البيانات وتوفير السرية. يتم إنشاء المعلمات والمفتاح المشترك المستخدم في عملية التشفير في المراحل السابقة من الاتصال. تقوم الخوارزمية المختارة بتشفير الحمولة وطول الحزمة وطول الحشوة وحقول الحشو.
يتم قبول مجموعة من خوارزميات التشفير المختلفة في SSH ، ولكن لأغراض الأمان ، من الأفضل التمسك بـ AES. يجب أن تكون المفاتيح بحد أدنى 128 بت ، لكن المفاتيح الأكبر مفضلة.
خوارزميات MAC
بروتوكول النقل يتحقق من سلامة البيانات عن طريق إضافة رمز مصادقة الرسالة (MAC) إلى الحزمة. يعتمد MAC على السر المشترك (الذي تم إنشاؤه في تبادل المفاتيح) ، ورقم تسلسل الحزمة ومحتويات الحزمة. يتم حسابه قبل حدوث التشفير.
تحتاج التطبيقات إلى تقديم خوارزمية مستقلة لتعمل في كل اتجاه ، على الرغم من أنها مثالية إذا تم استخدام نفس الخوارزمية على كلا الجانبين. يمكن تنفيذ مجموعة كبيرة من خوارزميات مصادقة الرسائل ، ولكن يجب استخدام SHA-256 وما فوق في معظم الحالات لضمان مستوى عالٍ من الأمان.
ضغط
لا يعد الضغط إلزاميًا في بروتوكول SSH ، ويجب أن تسمح تطبيقاته بإجراء الاتصالات دون ضغط. لا يمكن تطبيق الضغط إلا كخيار ، باستخدام مخططات مثل زليب. إذا تم استخدام الضغط ، فإنه يؤثر فقط على الحمولة النافعة. ثم يتم حساب MAC وحقل طول الحزمة بناءً على الحمولة المضغوطة.
حزمة بروتوكول النقل
يتم تنسيق حزمة بروتوكول النقل لتضمين المعلومات التالية (بالإضافة إلى بعض التفاصيل الأقل صلة التي تم استبعادها):
- طول الحزمة
- طول الحشو
- الحمولة
- حشوة
- رمز مصادقة الرسالة (MAC)
بروتوكول المصادقة
يستخدم هذا البروتوكول من قبل الخادم ل مصادقة العميل. يمكنه القيام بذلك من خلال مجموعة متنوعة من الآليات المختلفة ، التي يعتمد الكثير منها على معرف الجلسة المحدد في بروتوكول النقل. يستخدم البعض اختبارات التشفير والتكامل من بروتوكول النقل بالتزامن مع معرف الجلسة ، بينما يستخدم البعض الآخر هذه الخوارزميات بأنفسهم.
يستخدم الخادم سياسته المحلية لتحديد طرق المصادقة التي يقبلها من مستخدم فردي. منذ تم مصادقة الخادم بالفعل في بروتوكول النقل, ليست هناك حاجة لمصادقة الخادم مرة أخرى.
يعتمد أمان بروتوكول المصادقة على بروتوكول النقل الذي يتم تشغيله عبر الجزء العلوي منه. إذا لم يتمكن بروتوكول النقل من ضمان السرية أو التحقق من سلامة البيانات ، فإن هذا يحد من كيفية استخدام بروتوكول المصادقة بأمان.
على سبيل المثال ، إذا لم يتم تطبيق حماية النزاهة بواسطة بروتوكول النقل ، فلا ينبغي السماح بالطلبات مثل تغييرات كلمة المرور ، لأن هذا قد يترك فرصًا للمهاجمين للعبث بالبيانات دون أن يتم ملاحظة ذلك.
يستخدم بروتوكول المصادقة مصادقة المفتاح العمومي على افتراض أنه لم يتم اختراق المفتاح الخاص لمضيف الخادم أو مفتاح مضيف العميل.. إذا تم اختراق الخادم ، فقد يؤدي ذلك إلى اسم المستخدم وكلمة المرور للعميل الذي يتم إطلاق سراحه للمهاجم.
لكي تكون المصادقة المستندة إلى المضيف آمنة ، يجب ألا يتم اختراق العميل. إذا كان هذا احتمالًا ، فيجب إضافة طرق مصادقة أخرى. من المهم أن نلاحظ ذلك تكون عملية المصادقة قوية مثل طريقة التبادل الأضعف التي يقبلها الخادم.
عملية بروتوكول المصادقة
يبدأ بروتوكول المصادقة عندما يرسل الخادم العميل قائمة بأساليب المصادقة المقبولة. يمكن للعميل بعد ذلك الاختيار من بين هذه الطرق بأي ترتيب. تتيح هذه العملية التحكم في الخادم ، ولكنها تتيح أيضًا مرونة كافية بحيث يمكن للعميل الترتيب لاستخدام الطريقة الأكثر ملاءمة.
تتضمن أساليب مصادقة العميل الأكثر شيوعًا ما يلي:
- المفتاح العمومي – تستخدم هذه الطريقة خوارزميات مثل RSA و DSA و ECDSA لمصادقة العميل من خلال تشفير المفتاح العام. تستخدم بعض التطبيقات شهادات x.509 أيضًا. يتحقق الخادم من التوقيع الرقمي للعميل مقابل المفتاح العمومي للتحقق من هوية العميل.
- كلمه السر – يمكن أيضًا استخدام كلمات المرور لمصادقة العميل. يرسل العميل من خلال كلمة المرور الخاصة به (والتي يجب تشفيرها بواسطة بروتوكول النقل). إذا تطابقت كلمة المرور مع القيمة المخزنة على الخادم ، يتم قبولها وتتحرك المصادقة للأمام.
- GSSAPI – بموجب هذه الطريقة ، يمكن استخدام مخططات خارجية مثل Kerberos لتسجيل الدخول الموحد.
- لوحة المفاتيح التفاعلية – توفر هذه التقنية مصادقة كلمة المرور لمرة واحدة من خلال مطالبة الخادم العميل بالمعلومات.
بروتوكول الاتصال
يحدد بروتوكول الاتصال كيف سيتم دمج قنوات متعددة من البيانات عبر طبقة النقل الآمنة. كما أنه يتعامل مع المعلمات التي يتم استخدامها للوصول إلى الأنظمة الفرعية الآمنة على مضيف الخادم ، بالإضافة إلى إعادة توجيه وكيل الوصول إلى قذائف.
يوجد بروتوكول الاتصال أعلى طبقة النقل وبروتوكولات المصادقة. لأنها تتيح تنفيذ الأوامر عن بعد ، وكذلك توجيه X11 واتصالات TCP / IP. إذا تم اختراق الخادم أو العميل ، فإن بروتوكول الاتصال غير آمن.
قنوات
القنوات هي مسارات الاتصال الأساسية ، ويمكن فتحها من قبل أي من الطرفين. يمكن أن تتضمن القنوات جلسات طرفية ووصلات معاد توجيهها وأشكال اتصال أخرى. عند وجود قنوات متعددة ، يتم تعددها في اتصال واحد.
فتح القنوات
يتم ترقيم كل قناة على طرفيها ، على الرغم من أن الأرقام يمكن أن تكون مختلفة على كلا الجانبين. عندما يطلب أحد الجانبين فتح قناة ، فإنه يرسل رقم قناته كجزء من الرسالة ، وكذلك معلومات على حجم النافذة الأولي و ال الحد الأقصى لحجم الحزمة.
يشير حجم النافذة الأولي إلى مقدار البيانات التي يمكن أن يتلقاها الطرف الذي يفتح القناة. إذا كانت هناك حاجة لإرسال المزيد من البيانات ، فيجب تعديل النافذة أولاً. وبالمثل ، يحدد الحد الأقصى لحجم الرزمة حجم الحزمة التي يمكن استلامها.
عندما يطلب أحد الجانبين فتح قناة ، سيفتح الجانب الآخر القناة إذا كان بإمكانها استيعابها. إذا لم يكن كذلك ، فسوف ترسل عبر رسالة فشل. قد تفشل القنوات في فتحها للأسباب التالية:
- يحظر من قبل الإدارة
- فشل الاتصال
- نوع قناة غير معروف
- نقص الموارد
إذا أراد أحد جانبي الاتصال إرسال بيانات أكثر مما تسمح به النافذة حاليًا ، فيمكنه إرسال رسالة تطلب إضافة مزيد من وحدات البايت.
إغلاق القنوات
بمجرد اكتمال أحد جانبي الاتصال لنقل البيانات ، يجب عليه إرسال رسالة تشير إلى أنه قد انتهى من استخدام القناة. على الرغم من ذلك ، تظل القناة مفتوحة ، ولا يزال من الممكن إرسال البيانات من قبل الطرف الآخر. إذا أراد أحد الأطراف إنهاء القناة تمامًا ، فإنه يفعل ذلك برسالة إنهاء منفصلة.
الأمن SSH
لدى الإصدارات المختلفة من SSH مشكلات أمنية خاصة بها ، على الرغم من أن التكوينات الحالية لـ يعتبر SSH-2 و OpenSSH أكثر أمانًا من SSH-1.
SSH-1
يُعتبر SSH-1 عمومًا معيبًا ، مع مجموعة من نقاط الضعف المختلفة. تتضمن هذه الأخطاء في SSH 1.5 والتي سمحت للمستخدمين غير المصرح لهم بإدراج محتوى في دفق بيانات SSH. استفاد هذا الهجوم من الحد الأدنى من حماية سلامة البيانات في خوارزمية CRC-32.
تم تخفيف هذا الهجوم باستخدام أداة الكشف عن هجمات SSH ، التي تم دمجها في معظم التطبيقات الحديثة. جاء هذا الإصلاح مع مشكلة عدم حصانة جديدة ، والتي كان لديها القدرة على تنفيذ تعليمات برمجية عشوائية بامتيازات الجذر.
هناك أيضًا ثغرة أمنية تسمح للخصوم بتغيير الكتلة الأخيرة في جلسة تستخدم تشفير IDEA ، بالإضافة إلى واحدة تسمح للخادم المعرض للخطر بإعادة توجيه عملية مصادقة العميل إلى خادم آخر.
بسبب مشكلات الأمان هذه ، يجب استخدام SSH-2 بدلاً من ذلك. للحفاظ على تنفيذ الخاص بك آمنة ، يجب عليك أيضا تعطيل إعادة التفاوض على SSH-1, لأن الهجمات يمكن أن تستفيد من ذلك للوصول إلى بياناتك عبر مستوى الحماية الأضعف في SSH-1.
SSH-2
SSH-2 عرضة للهجوم النظري ضد وضع التشفير الافتراضي ، CBC. يسمح للمهاجم باسترداد ما يصل إلى 32 بت من النص العادي من كتلة مشفرة. يمكن التخفيف من ذلك باستخدام وضع العداد (CTR) ، وتحويل تشفير البلوك إلى تشفير تيار بدلاً من ذلك.
في نهاية عام 2014 ، أصدرت Der Spiegel مستندات وكالة الأمن القومي التي تنطوي على أن وكالة الأمن القومي يمكن في بعض الأحيان كسر SSH. هذا تسرب NSA PowerPoint ينص على أن وكالة الأمن القومي يمكن أن “من المحتمل أن تستعيد أسماء المستخدمين وكلمات المرور“، على الرغم من عدم إعطاء مزيد من التفاصيل. من غير المعروف الأساليب التي استخدمتها الوكالة للقيام بذلك ، ولكن يبدو من غير المرجح أن تكمن في قدراتها في وثائقها الداخلية الخاصة.
في تسرب Vault 7 لعام 2023 ، تم الكشف عن ذلك كان لدى CIA أداتين يمكن استخدامها لاعتراض وسرقة تسجيلات الدخول وكلمات مرور SSH. استهدف BothanSpy عملاء Windows Xshell ، بينما تم استخدام Gyrfalcon ضد عميل OpenSSH على عدد من توزيعات Linux المختلفة.
هذه الأدوات قادرة على سرقة بيانات الاعتماد ثم نقلها مرة أخرى إلى خادم CIA. لا يمكن لأي من هذه الهجمات كسر البروتوكول نفسه ؛ إنهم يستخدمون هجمات قناة جانبية أخرى يمكنها الالتفاف عليها في تطبيقات معينة.
على الرغم من هذه الهجمات ، تعتبر SSH-2 آمنة في معظم الحالات ، طالما تم تنفيذها بشكل مناسب. يجب أن تنظر الأهداف عالية القيمة أو أولئك الذين يستخدمون تطبيقات قديمة أو سيئة في خيارات أخرى.
المفتوح
في OpenSSH الإصدار 2, تم اكتشاف هجوم استفاد من ضعف في حزمة SSH الثنائية. سمح الهجوم للباحثين من جامعة لندن باستعادة 14 بت من النص غير المشفر من كتلة مشفرة. تم تخفيف ذلك في الإصدار 5.2 من خلال جعل البروتوكول يقرأ مجمل طول رمز الحزمة أو رمز مصادقة الرسالة غير صالح ، بدلاً من إنهاء الاتصال.
في الإصدارات 6.8 و 6.9 ، يمكن استخدام Linux لتنفيذ الأوامر التعسفية على أطراف المستخدمين الآخرين. تم تحقيق ذلك من خلال مشكلة عدم حصانة تصاعد الامتيازات التي سمحت للمهاجمين بحقن أحرف باستخدام عنصر تحكم الإدخال / الإخراج في TIOCSTI.
هل SSH آمن?
بينما قد يبدو أن SSH لديه الكثير من مشكلات الأمان, انها relatively طبيعي لعدد من نقاط الضعف التي يمكن العثور عليها في تطبيقات البروتوكول المختلفة. هذا لا يعني أن بروتوكول SSH غير آمن. بدلاً من ذلك ، هذا يعني فقط ذلك يجب أن تنفذ بشكل صحيح.
طالما كنت تستخدم سواء SSH-2 أو OpenSSH وتم تهيئته بطريقة مناسبة لاستخدامك ، يجب أن تشعر بالثقة في الحماية التي يوفرها SSH لاتصالك. لهذا السبب لا يزال هذا البروتوكول يستخدم بشكل متكرر ، خاصةً لأغراض الوصول عن بُعد والنفق.
راجع أيضًا: شرح أنواع التشفير الشائعة
خلفية تقنية شبكة الإنترنت بواسطة TheDigitalArtist مرخص بموجب CC0
التطبيقات التي تستخدم SSH متعددة ومتنوعة ، وتشمل أنظمة التشغيل المختلفة مثل Linux وUnix وWindows و MacOS. يمكن استخدام SSH في العديد من التطبيقات ، بما في ذلك الوصول عن بعد وإعادة توجيه المنافذ والأنفاق ونقل الملفات بشكل آمن. يتم استخدامه بشكل واسع في الشركات والمؤسسات والحكومات لتأمين الاتصالات والبيانات. يجب أن يتم اتخاذ الحيطة والحذر عند استخدام SSH ، وتحديث البرامج بانتظام لضمان الأمان والحماية من الهجمات الإلكترونية.