OpenSSH هو مجموعة التطبيقات التي تسمح بالاتصالات المشفرة عبر شبكة باستخدام بروتوكول SSH أضاف دعمًا تجريبيًا للمصادقة الثنائية إلى قاعدة التعليمات البرمجية الخاصة به ، باستخدام الأجهزة التي تدعم بروتوكول U2F الذي طوره تحالف FIDO.
لمن لا يعرفون U2F ، يجب أن يعرفوا ذلك، هذا معيار مفتوح لعمل رموز أمان للأجهزة منخفضة التكلفة. هذه هي بسهولة أرخص طريقة للمستخدمين للحصول على زوج مفاتيح مدعوم من الأجهزة و هناك مجموعة جيدة من الشركات المصنعة الذين يبيعونها ، بما في ذلكيوبيكو ، فيتيان ، ثيتيس ، وكينسينجتون.
توفر المفاتيح المدعومة بالأجهزة ميزة كونها أكثر صعوبة في السرقة: يجب على المهاجم عمومًا سرقة الرمز المادي (أو على الأقل الوصول المستمر إليه) من أجل سرقة المفتاح.
نظرًا لوجود عدة طرق للتحدث إلى أجهزة U2F ، بما في ذلك USB و Bluetooth و NFC ، لم نرغب في تحميل OpenSSH بمجموعة من التبعيات. بدلاً من ذلك ، قمنا بتفويض مهمة التواصل مع الرموز إلى مكتبة صغيرة من البرامج الوسيطة التي يتم تحميلها بطريقة مشابهة لدعم PKCS # 11 الحالي.
OpenSSH لديه الآن دعم U2F / FIDO التجريبي، مع U2F يتم إضافته كنوع مفتاح جديد sk-ecdsa-sha2-nistp256@openssh.com أو «إكسدسا- sk"باختصار (كلمة" sk "تعني" مفتاح الأمان ").
تم نقل إجراءات التفاعل مع الرموز إلى مكتبة وسيطة، والذي يتم تحميله عن طريق القياس مع مكتبة دعم PKCS # 11 وهو رابط في مكتبة libfido2 ، والذي يوفر وسيلة للتواصل مع الرموز عبر USB (FIDO U2F / CTAP 1 و FIDO 2.0 / CTAP 2)
المكتبة متوسط libsk-libfido2 من إعداد مطوري OpenSSH مدرج في نواة libfido2، وكذلك برنامج تشغيل HID لـ OpenBSD.
لتمكين U2F ، يمكن استخدام جزء جديد من قاعدة التعليمات البرمجية من مستودع OpenSSH وفرع HEAD في مكتبة libfido2 ، والذي يتضمن بالفعل الطبقة اللازمة لـ OpenSSH. يدعم Libfido2 العمل على OpenBSD و Linux و macOS و Windows.
لقد كتبنا برمجية وسيطة أساسية لـ libfido2 من Yubico قادرة على التحدث إلى أي رمز مميز USB HID U2F أو FIDO2. الوسيطة. يتم استضافة المصدر في شجرة libfido2 ، لذا فإن بناء ذلك و OpenSSH HEAD يكفي للبدء
يجب نسخ المفتاح العام (id_ecdsa_sk.pub) إلى الخادم في الملف author_keys. على جانب الخادم ، يتم التحقق فقط من التوقيع الرقمي ويتم التفاعل مع الرموز المميزة من جانب العميل (لا يلزم تثبيت libsk-libfido2 على الخادم ، ولكن يجب أن يدعم الخادم نوع المفتاح "ecdsa-sk" ).
المفتاح الخاص الذي تم إنشاؤه (معرف_ecdsa_sk) هو في الأساس واصف مفتاح يشكل مفتاحًا حقيقيًا فقط بالاشتراك مع تسلسل سري مخزن على جانب رمز U2F.
إذا كان المفتاح معرف_ecdsa_sk يقع في يد المهاجم ، للمصادقة ، سيحتاج أيضًا إلى الوصول إلى رمز الجهاز ، والذي بدونه يكون المفتاح الخاص المخزن في ملف id_ecdsa_sk عديم الفائدة.
وبالإضافة إلى ذلك، بشكل افتراضي ، عندما يتم تنفيذ العمليات الرئيسية (سواء أثناء الإنشاء والمصادقة) ، مطلوب تأكيد محلي للوجود المادي للمستخدمعلى سبيل المثال ، يُقترح لمس المستشعر الموجود على الرمز المميز ، مما يجعل من الصعب تنفيذ هجمات عن بُعد على الأنظمة ذات الرمز المميز المتصل.
في المرحلة الأولى ssh-keygen ، يمكن أيضًا تعيين كلمة مرور أخرى للوصول إلى الملف باستخدام المفتاح.
يمكن إضافة مفتاح U2F إلى سه وكيل عبر "إضافة ssh ~ / .ssh / id_ecdsa_sk"، لكن سه وكيل يجب تجميعها مع الدعم الرئيسي إكسدسا- sk، يجب أن تكون طبقة libsk-libfido2 موجودة ويجب أن يعمل العامل على النظام الذي تم إرفاق الرمز المميز به.
تمت إضافة نوع جديد من المفاتيح إكسدسا- sk منذ تنسيق المفتاح إكسدسا يختلف OpenSSH عن تنسيق U2F للتوقيعات الرقمية ECDSA من خلال وجود حقول إضافية.
إذا كنت تريد معرفة المزيد عنها يمكنك التشاور الرابط التالي.