يوفر وظيفة المكتبة للتواصل مع جهاز FIDO عبر USB بالإضافة إلى التحقق من توقيعات الشهادة والتأكيد.
تهدف هذه المكتبة إلى دعم بروتوكولي FIDO U2F وFIDO 2 للتواصل مع موثق USB عبر بروتوكول Client-to-Authenticator (CTAP 1 و2). بالإضافة إلى الوصول إلى الأجهزة ذات المستوى المنخفض، تنفذ الفئات المحددة في وحدات fido2.client
و fido2.server
عمليات ذات مستوى أعلى تكون مفيدة عند التواصل مع Authenticator، أو عند تنفيذ دعم WebAuthn لطرف معتمد.
للاستخدام، راجع examples/
الدليل.
يمكن أن تساعدك هذه الروابط المرتبطة بـ WebAuthn وFIDO2 على البدء:
دليل Yubico WebAuthn/FIDO2: https://developers.yubico.com/FIDO2/
مواصفات W3C WebAuthn: https://www.w3.org/TR/webauthn/
مواصفات FIDO: https://fidoalliance.org/specations/download/
هذا المشروع، باستثناء الملفات المذكورة أدناه، مرخص بموجب ترخيص BSD 2-البند. راجع ملف النسخ للحصول على نص الترخيص الكامل.
يحتوي هذا المشروع على كود المصدر من pyu2f (https://github.com/google/pyu2f) المرخص بموجب ترخيص Apache، الإصدار 2.0. توجد هذه الملفات في fido2/hid/
. راجع http://www.apache.org/licenses/LICENSE-2.0، أو ملف COPYING.APLv2 للحصول على نص الترخيص الكامل.
يجمع هذا المشروع أيضًا قائمة اللاحقة العامة (https://publicsuffix.org) المرخصة بموجب ترخيص Mozilla العام، الإصدار 2.0. يتم تخزين هذا الملف باسم fido2/public_suffix_list.dat
. راجع https://mozilla.org/MPL/2.0/، أو ملف COPYING.MPLv2 للحصول على نص الترخيص الكامل.
يتوافق fido2 مع إصدار Python 3.7 والإصدارات الأحدث، ويتم اختباره على أنظمة التشغيل Windows وMacOS وLinux. يتم توفير الدعم لـ OpenBSD وFreeBSD وNetBSD كما هو ويعتمد على مساهمات المجتمع.
يمكن تثبيت fido2 عن طريق تشغيل الأمر التالي:
نقطة تثبيت fido2
لتثبيت التبعيات المطلوبة للاتصال بمصادقات NFC، استخدم بدلاً من ذلك:
تثبيت النقطة fido2[pcsc]
في نظام التشغيل Windows 10 (1903 أو الأحدث)، يكون الوصول إلى أجهزة FIDO مقيدًا ويتطلب التشغيل كمسؤول. لا يزال من الممكن استخدام هذه المكتبة عند التشغيل كغير مسؤول، عبر فئة fido.client.WindowsClient
. تم تضمين مثال على ذلك في الملف examples/credential.py
.
في نظام Linux، ستحتاج إلى إضافة قاعدة Udev لتتمكن من الوصول إلى جهاز FIDO، أو تشغيله كجذر. على سبيل المثال، قد تحتوي قاعدة Udev على ما يلي:
قاعدة #Udev للسماح بوصول HID إلى أجهزة Yubico لدعم FIDO. KERNEL==hidraw*,النظام الفرعي==hidraw, الوضع = "0664"، المجموعة = "plugdev"، ATTRS {idVendor} = = "1050"
قد تكون هناك حزمة متاحة بالفعل لتوزيعك تقوم بذلك نيابةً عنك، راجع: https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux
ضمن FreeBSD، ستحتاج إما إلى التشغيل كجذر أو إضافة قواعد لجهازك إلى /etc/devd.conf، والتي يمكن تشغيلها تلقائيًا عن طريق تثبيت الأمان/u2f-devd:
# pkg تثبيت u2f-devd
يعتمد هذا المشروع على التشفير. للحصول على إرشادات حول تثبيت هذه التبعية، راجع https://cryptography.io/en/latest/installation/.
يتوفر دعم NFC اختياريًا عبر الكمبيوتر الشخصي/SC، باستخدام مكتبة pyscard. للحصول على إرشادات حول تثبيت هذه التبعية، راجع https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md.
لتطوير المكتبة نستخدم الشعر. لإعداد بيئة التطوير، قم بتشغيل هذا الأمر في الدليل الجذر للمستودع:
تثبيت شعر
نستخدم أيضًا الالتزام المسبق لإجراء بعض عمليات الفحص على الكود قبل الالتزام.
في حين أن العديد من الاختبارات يمكن تشغيلها من تلقاء نفسها، إلا أن بعضها يتطلب جهاز U2F أو FIDO2 متصل لتشغيله.
تشغيل الشعر pytest