
Fornisce funzionalità di libreria per FIDO2, inclusa la comunicazione con un dispositivo tramite USB o NFC.
== libfido2
image:https://github.com/yubico/libfido2/workflows/linux/badge.svg["Linux Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/macos/badge.svg["macOS Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/windows/badge.svg["Windows Build Status (github actions)", link="https://github.com/Yubico/libfido2/actions"] image:https://github.com/yubico/libfido2/workflows/fuzzer/badge.svg["Fuzz Status (github actions)", link="https://github.com/yubico/libfido2/actions"] image:https://oss-fuzz-build-logs.storage.googleapis.com/badges/libfido2.svg["Fuzz Status (oss-fuzz)", link="https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:libfido2"]
libfido2 fornisce funzionalità di libreria e strumenti da riga di comando per comunicare con un dispositivo FIDO tramite USB o NFC e per verificare le firme di attestazione e di asserzione.
libfido2 supporta i protocolli FIDO U2F (CTAP 1) e FIDO2 (CTAP 2).
Per l'utilizzo, vedere la directory examples/.
=== Licenza
libfido2 è distribuito sotto la licenza BSD a 2 clausole. Vedere il file LICENSE per il testo completo della licenza.
=== Piattaforme Supportate
libfido2 è noto per funzionare su Linux, macOS, Windows, OpenBSD e FreeBSD.
=== Documentazione
La documentazione è disponibile in formato troff e HTML. È disponibile anche un https://developers.yubico.com/libfido2/Manuals/[mirror online della documentazione di libfido2].
=== Binding
=== Rilasci
La versione attuale di libfido2 è la 1.17.0. I tarball delle release firmati sono disponibili nella https://developers.yubico.com/libfido2/Releases[pagina delle release] di Yubico.
=== Dipendenze
libfido2 dipende da https://github.com/pjk/libcbor[libcbor], https://www.openssl.org[OpenSSL] 3.0 o successivo e https://zlib.net[zlib]. Su Linux, è richiesto anche libudev (parte di https://www.freedesktop.org/wiki/Software/systemd[systemd]).
=== Installazione
==== Fedora 34 e versioni successive
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) e versioni successive
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
In alternativa, versioni più recenti di libfido2 sono disponibili nel PPA di Yubico. Seguire le istruzioni per Ubuntu 18.04 (Bionic) di seguito.
==== Ubuntu 18.04 (Bionic)
$ sudo apt install software-properties-common $ sudo apt-add-repository ppa:yubico/stable $ sudo apt update $ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Su Linux, potrebbe essere necessario aggiungere una regola udev per poter accedere al dispositivo FIDO. Ad esempio, la regola udev può contenere quanto segue:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
Si prega di consultare la https://developers.yubico.com/libfido2/Releases[pagina delle release] di Yubico per gli artefatti ARM, ARM64, Win32 e Win64.
Un utilizzo sicuro delle nostre librerie presuppone che gli artefatti vengano estratti in una directory attendibile e non scrivibile, con le DLL accanto all'eseguibile. Fare riferimento alla documentazione ufficiale Microsoft per una guida generale sulla distribuzione delle DLL e sulle tecniche di packaging sicuro. Si noti che i nostri artefatti collegati dinamicamente sono compilati con /MD e potrebbero richiedere la presenza del corrispondente runtime Visual C++.
=== Compilazione dal sorgente
Su sistemi UNIX-like:
$ cmake -B build $ make -C build $ sudo make -C build install
A seconda della piattaforma, potrebbe essere necessario installare https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] o impostare la variabile d'ambiente PKG_CONFIG_PATH. Per istruzioni di compilazione complete e specifiche per il sistema operativo, fare riferimento alle directory .actions/ (Linux, macOS, BSD) e windows/.
=== Personalizzazione in fase di compilazione
libfido2 supporta diverse opzioni CMake. Alcune opzioni richiedono dipendenze aggiuntive. Le opzioni disabilitate per impostazione predefinita non sono supportate ufficialmente.
[%autowidth.stretch] |=== |Opzione |Descrizione |Predefinito | BUILD_EXAMPLES | Compila i programmi di esempio | ON | BUILD_MANPAGES | Compila le pagine man | ON | BUILD_SHARED_LIBS | Compila una libreria condivisa | ON | BUILD_STATIC_LIBS | Compila una libreria statica | ON | BUILD_TOOLS | Compila gli strumenti ausiliari | ON | FUZZ | Abilita la strumentazione per il fuzzing | OFF | NFC_LINUX | Abilita il supporto NFC netlink su Linux | ON | USE_HIDAPI | Usa hidapi come backend HID | OFF | USE_PCSC | Abilita il supporto sperimentale PCSC | OFF | USE_WINHELLO | Astrae Windows Hello come dispositivo FIDO | ON |===
L'opzione USE_HIDAPI richiede https://github.com/libusb/hidapi[hidapi]. L'opzione USE_PCSC richiede https://github.com/LudovicRousseau/PCSC[pcsc-lite] su Linux.
=== Sviluppo
Si prega di utilizzare https://github.com/Yubico/libfido2/discussions[GitHub Discussions] per porre domande e suggerire funzionalità, e https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] per i contributi di codice.
=== Segnalazione di bug
Si prega di utilizzare https://github.com/Yubico/libfido2/issues[GitHub Issues] per segnalare bug. Per segnalare problemi di sicurezza, contattare [email protected]. Una chiave pubblica PGP è disponibile su https://www.yubico.com/support/security-advisories/issue-rating-system/.