
Stellt Bibliotheksfunktionen für FIDO2 bereit, einschließlich der Kommunikation mit einem Gerät über USB oder 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 bietet Bibliotheksfunktionen und Kommandozeilenwerkzeuge, um über USB oder NFC mit einem FIDO-Gerät zu kommunizieren und Attestierungs- und Assertionssignaturen zu verifizieren.
libfido2 unterstützt die Protokolle FIDO U2F (CTAP 1) und FIDO2 (CTAP 2).
Nutzungsbeispiele finden Sie im Verzeichnis examples/.
=== Lizenz
libfido2 ist unter der BSD-2-Klausel-Lizenz lizenziert. Den vollständigen Lizenztext finden Sie in der Datei LICENSE.
=== Unterstützte Plattformen
libfido2 funktioniert nachweislich auf Linux, macOS, Windows, OpenBSD und FreeBSD.
=== Dokumentation
Die Dokumentation ist im troff- und HTML-Format verfügbar. Ein https://developers.yubico.com/libfido2/Manuals/[Online-Spiegel der Dokumentation von libfido2] ist ebenfalls verfügbar.
=== Anbindungen
=== Veröffentlichungen
Die aktuelle Version von libfido2 ist 1.17.0. Signierte Release-Tarballs sind auf Yubicos https://developers.yubico.com/libfido2/Releases[Release-Seite] verfügbar.
=== Abhängigkeiten
libfido2 hängt von https://github.com/pjk/libcbor[libcbor], https://www.openssl.org[OpenSSL] 3.0 oder neuer sowie https://zlib.net[zlib] ab. Unter Linux wird außerdem libudev (Teil von https://www.freedesktop.org/wiki/Software/systemd[systemd]) benötigt.
=== Installation
==== Fedora 34 und neuer
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) und neuer
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
Alternativ sind neuere Versionen von libfido2 im PPA von Yubico verfügbar. Befolgen Sie dazu die folgenden Anweisungen für Ubuntu 18.04 (Bionic).
==== 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
Unter Linux müssen Sie möglicherweise eine udev-Regel hinzufügen, um auf das FIDO-Gerät zugreifen zu können. Die udev-Regel könnte beispielsweise Folgendes enthalten:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
Bitte konsultieren Sie Yubicos https://developers.yubico.com/libfido2/Releases[Release-Seite] für ARM, ARM64, Win32- und Win64-Artefakte.
Für die sichere Verwendung unserer Bibliotheken müssen die Artefakte in einem
vertrauenswürdigen, nicht beschreibbaren Verzeichnis entpackt werden, wobei
sich die DLLs neben der ausführbaren Datei befinden. Allgemeine Hinweise zur
DLL-Bereitstellung und zu sicheren Verpackungstechniken finden Sie in der
offiziellen Dokumentation von Microsoft. Beachten Sie, dass unsere dynamisch
verknüpften Artefakte mit /MD erstellt werden und die entsprechende
Visual-C++-Laufzeitumgebung erforderlich sein kann.
=== Erstellen aus dem Quellcode
Auf UNIX-ähnlichen Systemen:
$ cmake -B build $ make -C build $ sudo make -C build install
Je nach Plattform muss möglicherweise
https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config] installiert
oder die Umgebungsvariable PKG_CONFIG_PATH gesetzt werden. Vollständige,
betriebssystemspezifische Build-Anweisungen finden Sie in den Verzeichnissen
.actions/ (Linux, macOS, BSD) und windows/.
=== Anpassung zur Build-Zeit
libfido2 unterstützt eine Reihe von CMake-Optionen. Einige der Optionen erfordern zusätzliche Abhängigkeiten. Optionen, die standardmäßig deaktiviert sind, werden nicht offiziell unterstützt.
[%autowidth.stretch] |=== |Option |Beschreibung |Standard | BUILD_EXAMPLES | Beispielprogramme erstellen | ON | BUILD_MANPAGES | Manpages erstellen | ON | BUILD_SHARED_LIBS | Gemeinsame Bibliothek erstellen | ON | BUILD_STATIC_LIBS | Statische Bibliothek erstellen | ON | BUILD_TOOLS | Hilfswerkzeuge erstellen | ON | FUZZ | Fuzzing-Instrumentierung aktivieren | OFF | NFC_LINUX | Netlink-NFC-Unterstützung unter Linux aktivieren | ON | USE_HIDAPI | hidapi als HID-Backend verwenden | OFF | USE_PCSC | Experimentelle PCSC-Unterstützung aktivieren | OFF | USE_WINHELLO | Windows Hello als FIDO-Gerät abstrahieren | ON |===
Die Option USE_HIDAPI erfordert https://github.com/libusb/hidapi[hidapi]. Die Option USE_PCSC erfordert unter Linux https://github.com/LudovicRousseau/PCSC[pcsc-lite].
=== Entwicklung
Bitte nutzen Sie https://github.com/Yubico/libfido2/discussions[GitHub Discussions], um Fragen zu stellen und Funktionen vorzuschlagen, sowie https://github.com/Yubico/libfido2/pulls[GitHub pull-requests] für Code-Beiträge.
=== Fehler melden
Bitte nutzen Sie https://github.com/Yubico/libfido2/issues[GitHub Issues], um Fehler zu melden. Für die Meldung von Sicherheitsproblemen wenden Sie sich bitte an [email protected]. Ein öffentlicher PGP-Schlüssel ist unter https://www.yubico.com/support/security-advisories/issue-rating-system/ zu finden.