المصادقة الثنائية لـ SSH

"Secure Shell" SSH هو بروتوكول شبكة لإنشاء اتصال آمن بين المضيفين، بشكل قياسي عبر المنفذ 22 (وهو الأفضل للتغيير). يتوفر عملاء SSH وخوادم SSH لمعظم أنظمة التشغيل. يعمل أي بروتوكول شبكة آخر تقريبًا داخل SSH، أي أنه يمكنك العمل عن بعد على كمبيوتر آخر، ونقل دفق الصوت أو الفيديو عبر قناة مشفرة، وما إلى ذلك. بجانب، عبر وكيل SOCKS على مضيف بعيد يمكنك الاتصال بمضيفين آخرين نيابة عن هذا المضيف البعيد.

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

كيفية تنفيذ المصادقة الثنائية

المطورين من قرص العسل نشرت مؤخرا تعليمات مفصلةكيفية تنفيذ البنية التحتية المناسبة على العميل والخادم.

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

الخيار الأول هو OTP

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

في هذه الحالة، على جانب الخادم، تتم كتابة الأسطر التالية في تكوين الشيف:

  • metadata.rb
  • attributes/default.rb (من attributes.rb)
  • files/sshd
  • recipes/default.rb (نسخة من recipe.rb)
  • templates/default/users.oath.erb

يتم تثبيت أي تطبيق OTP على جانب العميل: تم تثبيت Google Authenticator وAuthy وDuo وLastpass brew install oath-toolkit أو apt install oathtool openssl، ثم يتم إنشاء سلسلة عشوائية (مفتاح) base16. يتم تحويله إلى تنسيق Base32 الذي يستخدمه المصادقون المحمولون ويتم استيراده مباشرة إلى التطبيق.

ونتيجة لذلك، يمكنك الاتصال بـ Bastion ورؤية أنه لا يتطلب الآن عبارة مرور فحسب، بل يتطلب أيضًا رمز OTP للمصادقة:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

الخيار الثاني هو مصادقة الأجهزة

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

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

يؤكد مالكو iOS وAndroid تسجيل الدخول عن طريق الضغط على زر واحد على هاتفك الذكي. هذه تقنية خاصة من Krypt.co، وهي أكثر أمانًا من كلمة المرور لمرة واحدة (OTP).

يوجد في Linux/ChromeOS خيار للعمل مع رموز YubiKey USB المميزة. بالطبع، يمكن للمهاجم سرقة الرمز المميز الخاص بك، لكنه ما زال لا يعرف عبارة المرور.

المصدر: www.habr.com

إضافة تعليق