يضيف OpenSSH دعمًا للمصادقة الثنائية العالمية

إلى قاعدة بيانات OpenSSH مضاف الدعم التجريبي للمصادقة الثنائية باستخدام الأجهزة التي تدعم البروتوكول U2F، التي طورها التحالف FIDO. يسمح U2F بإنشاء رموز الأجهزة منخفضة التكلفة للتحقق من التواجد الفعلي للمستخدم، والتفاعل معها عبر USB أو Bluetooth أو NFC. يتم الترويج لمثل هذه الأجهزة كوسيلة للمصادقة الثنائية على مواقع الويب، وهي مدعومة بالفعل من قبل المتصفحات الرئيسية ويتم إنتاجها من قبل العديد من الشركات المصنعة، بما في ذلك Yubico وFeitian وThetis وKensington.

للتفاعل مع الأجهزة التي تؤكد وجود المستخدم، تمت إضافة نوع جديد من المفاتيح إلى OpenSSH "[البريد الإلكتروني محمي]"("ecdsa-sk")، الذي يستخدم خوارزمية التوقيع الرقمي ECDSA (خوارزمية التوقيع الرقمي للمنحنى الإهليلجي) مع منحنى NIST P-256 الإهليلجي وتجزئة SHA-256. يتم وضع إجراءات التفاعل مع الرموز المميزة في مكتبة وسيطة، والتي يتم تحميلها بطريقة مشابهة للمكتبة لدعم PKCS#11 وتكون عبارة عن غلاف أعلى المكتبة libfido2، والذي يوفر أدوات للتواصل مع الرموز المميزة عبر USB (يتم دعم بروتوكولات FIDO U2F/CTAP 1 وFIDO 2.0/CTAP 2). المكتبة الوسيطة libsk-libfido2 التي أعدها مطورو OpenSSH يتم تضمين في قلب libfido2، كذلك اختبأ سائق لبرنامج OpenBSD.

لتمكين U2F، يمكنك استخدام شريحة جديدة من قاعدة التعليمات البرمجية من مخزن OpenSSH وفرع HEAD للمكتبة libfido2، والتي تتضمن بالفعل الطبقة اللازمة لـ OpenSSH.
يدعم Libfido2 OpenBSD وLinux وmacOS وWindows.

للمصادقة وإنشاء مفتاح، تحتاج إلى تعيين متغير البيئة SSH_SK_PROVIDER، مع الإشارة فيه إلى المسار إلى libsk-libfido2.so (تصدير SSH_SK_PROVIDER=/path/to/libsk-libfido2.so)، أو تحديد المكتبة من خلال SecurityKeyProvider الإعداد، ثم قم بتشغيل "ssh-keygen -t ecdsa-sk" أو، إذا تم إنشاء المفاتيح وتكوينها بالفعل، فاتصل بالخادم باستخدام "ssh". عند تشغيل ssh-keygen، سيتم حفظ زوج المفاتيح الذي تم إنشاؤه في "~/.ssh/id_ecdsa_sk" ويمكن استخدامه بشكل مشابه للمفاتيح الأخرى.

يجب نسخ المفتاح العام (id_ecdsa_sk.pub) إلى الخادم في ملف Author_keys. من جانب الخادم، يتم التحقق من التوقيع الرقمي فقط، ويتم التفاعل مع الرموز المميزة من جانب العميل (لا تحتاج إلى تثبيت libsk-libfido2 على الخادم، ولكن يجب أن يدعم الخادم نوع المفتاح "ecdsa-sk"). . المفتاح الخاص الذي تم إنشاؤه (id_ecdsa_sk) هو في الأساس مقبض مفتاح، ويشكل مفتاحًا حقيقيًا فقط مع التسلسل السري المخزن على جانب الرمز المميز U2F.

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

يمكن إضافة مفتاح U2F إلى وكيل ssh عبر "ssh-add ~/.ssh/id_ecdsa_sk"، ولكن يجب إنشاء وكيل ssh بدعم مفاتيح "ecdsa-sk"، ويجب أن تكون طبقة libsk-libfido2 موجودة ويجب أن تكون طبقة libsk-libfidoXNUMX موجودة. يجب أن يكون الوكيل قيد التشغيل على النظام الذي يتصل به الرمز المميز.
تمت إضافة نوع مفتاح جديد "ecdsa-sk" نظرًا لأن تنسيق مفاتيح OpenSSH ecdsa يختلف عن تنسيق U2F للتوقيعات الرقمية ECDSA في وجود حقول إضافية.

المصدر: opennet.ru

إضافة تعليق