Proporciona funcionalidad de biblioteca para comunicarse con un dispositivo FIDO a través de USB, así como para verificar firmas de certificación y afirmación.
Esta biblioteca tiene como objetivo admitir los protocolos FIDO U2F y FIDO 2 para comunicarse con un autenticador USB a través del protocolo de cliente a autenticador (CTAP 1 y 2). Además de este acceso al dispositivo de bajo nivel, las clases definidas en los módulos fido2.client
y fido2.server
implementan operaciones de nivel superior que son útiles al interactuar con un autenticador o al implementar el soporte WebAuthn para una parte de confianza.
Para conocer su uso, consulte el directorio examples/
.
Estos enlaces relacionados con WebAuthn y FIDO2 pueden ayudarle a empezar:
Guía de Yubico WebAuthn/FIDO2: https://developers.yubico.com/FIDO2/
Especificación de WebAuthn del W3C: https://www.w3.org/TR/webauthn/
Especificaciones de FIDO: https://fidoalliance.org/specifications/download/
Este proyecto, con excepción de los archivos mencionados a continuación, tiene la licencia BSD de 2 cláusulas. Consulte el archivo COPYING para ver el texto completo de la licencia.
Este proyecto contiene código fuente de pyu2f (https://github.com/google/pyu2f) que tiene la licencia Apache, versión 2.0. Estos archivos se encuentran en fido2/hid/
. Consulte http://www.apache.org/licenses/LICENSE-2.0 o el archivo COPYING.APLv2 para obtener el texto completo de la licencia.
Este proyecto también incluye la lista pública de sufijos (https://publicsuffix.org) que tiene la licencia pública de Mozilla, versión 2.0. Este archivo se almacena como fido2/public_suffix_list.dat
. Consulte https://mozilla.org/MPL/2.0/ o el archivo COPYING.MPLv2 para obtener el texto completo de la licencia.
fido2 es compatible con Python 3.7 y posteriores y está probado en Windows, MacOS y Linux. El soporte para OpenBSD, FreeBSD y NetBSD se proporciona tal cual y depende de las contribuciones de la comunidad.
fido2 se puede instalar ejecutando el siguiente comando:
pip instalar fido2
Para instalar las dependencias necesarias para la comunicación con autenticadores NFC, utilice:
pip instalar fido2 [pcsc]
En Windows 10 (1903 o posterior), el acceso a los dispositivos FIDO está restringido y requiere ejecutarse como Administrador. Esta biblioteca aún se puede usar cuando se ejecuta como no administrador, a través de la clase fido.client.WindowsClient
. Un ejemplo de esto se incluye en el archivo examples/credential.py
.
En Linux, deberá agregar una regla Udev para poder acceder al dispositivo FIDO o ejecutarlo como root. Por ejemplo, la regla Udev puede contener lo siguiente:
Regla #Udev para permitir el acceso HID a dispositivos Yubico para soporte FIDO. KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"
Es posible que ya haya un paquete disponible para su distribución que haga esto por usted, consulte: https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux
En FreeBSD necesitarás ejecutarlo como root o agregar reglas para tu dispositivo a /etc/devd.conf, lo cual se puede automatizar instalando security/u2f-devd:
# paquete instalar u2f-devd
Este proyecto depende de la Criptografía. Para obtener instrucciones sobre cómo instalar esta dependencia, consulte https://cryptography.io/en/latest/installation/.
La compatibilidad con NFC está disponible opcionalmente a través de PC/SC, utilizando la biblioteca pyscard. Para obtener instrucciones sobre cómo instalar esta dependencia, consulte https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md.
Para el desarrollo de la biblioteca utilizamos poesía. Para configurar el entorno de desarrollo, ejecute este comando en el directorio raíz del repositorio:
instalación de poesía
También utilizamos la confirmación previa para ejecutar algunos escaneos del código antes de confirmarla.
Si bien muchas pruebas pueden ejecutarse por sí solas, algunas requieren un dispositivo U2F o FIDO2 conectado para ejecutarse.
poesía ejecuta pytest