Предоставляет функциональные возможности библиотеки для связи с устройством FIDO через USB, а также для проверки подписей аттестации и утверждений.
Эта библиотека предназначена для поддержки протоколов FIDO U2F и FIDO 2 для связи с USB-аутентификатором через протокол клиент-аутентификатор (CTAP 1 и 2). В дополнение к этому низкоуровневому доступу к устройствам классы, определенные в модулях fido2.client
и fido2.server
реализуют операции более высокого уровня, которые полезны при взаимодействии с аутентификатором или при реализации поддержки WebAuthn для проверяющей стороны.
Сведения об использовании см. в каталоге examples/
.
Эти ссылки, связанные с WebAuthn и FIDO2, помогут вам начать работу:
Руководство Yubico WebAuthn/FIDO2: https://developers.yubico.com/FIDO2/
Спецификация W3C WebAuthn: https://www.w3.org/TR/weauthn/
Спецификации ФИДО: https://fidoalliance.org/specifications/download/
Этот проект, за исключением файлов, упомянутых ниже, распространяется по лицензии BSD с 2 пунктами. Полный текст лицензии см. в файле COPYING .
Этот проект содержит исходный код 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 можно установить, выполнив следующую команду:
pip установить fido2
Чтобы установить зависимости, необходимые для связи с аутентификаторами NFC, используйте вместо этого:
pip install fido2[pcsc]
В Windows 10 (1903 или более поздней версии) доступ к устройствам FIDO ограничен и требует запуска от имени администратора. Эту библиотеку по-прежнему можно использовать при работе без прав администратора через класс fido.client.WindowsClient
. Пример этого включен в файл examples/credential.py
.
В Linux вам нужно будет добавить правило Udev, чтобы иметь доступ к устройству FIDO или запускать его от имени пользователя root. Например, правило Udev может содержать следующее:
Правило #Udev для разрешения доступа HID к устройствам Yubico для поддержки FIDO. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"
Возможно, для вашего дистрибутива уже доступен пакет, который делает это за вас, см. https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux.
В FreeBSD вам нужно будет либо запуститься от имени пользователя root, либо добавить правила для вашего устройства в /etc/devd.conf, что можно автоматизировать, установив Security/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