
FIDO2용 라이브러리 기능을 제공하며, USB 또는 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는 USB 또는 NFC를 통해 FIDO 기기와 통신하고, 증명(attestation) 및 검증(assertion) 서명을 확인하기 위한 라이브러리 기능과 명령줄 도구를 제공합니다.
libfido2는 FIDO U2F(CTAP 1) 및 FIDO2(CTAP 2) 프로토콜을 지원합니다.
사용법은 examples/ 디렉터리를 참조하세요.
=== 라이선스
libfido2는 BSD 2-Clause 라이선스로 배포됩니다. 전체 라이선스 전문은 LICENSE 파일을 참조하세요.
=== 지원 플랫폼
libfido2는 Linux, macOS, Windows, OpenBSD, FreeBSD에서 동작하는 것으로 알려져 있습니다.
=== 문서
문서는 troff 및 HTML 형식으로 제공됩니다. libfido2 문서의 https://developers.yubico.com/libfido2/Manuals/[온라인 미러]도 이용할 수 있습니다.
=== 바인딩
=== 릴리스
libfido2의 현재 릴리스는 1.17.0입니다. 서명된 릴리스 타르볼은 Yubico의 https://developers.yubico.com/libfido2/Releases[릴리스 페이지]에서 구할 수 있습니다.
=== 의존성
libfido2는 https://github.com/pjk/libcbor[libcbor], https://www.openssl.org[OpenSSL] 3.0 이상, https://zlib.net[zlib]에 의존합니다. Linux에서는 libudev (https://www.freedesktop.org/wiki/Software/systemd[systemd]의 일부)도 필요합니다.
=== 설치
==== Fedora 34 이상
$ sudo dnf install libfido2 libfido2-devel fido2-tools
==== Ubuntu 20.04 (Focal) 이상
$ sudo apt install libfido2-1 libfido2-dev libfido2-doc fido2-tools
또는 최신 버전의 libfido2는 Yubico PPA에서 제공됩니다. 아래의 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
Linux에서는 FIDO 기기에 접근할 수 있도록 udev 규칙을 추가해야 할 수 있습니다. 예를 들어, udev 규칙은 다음과 같은 내용을 포함할 수 있습니다:
#udev rule for allowing HID access to Yubico devices for FIDO support.
==== macOS
$ brew install libfido2
==== Windows
ARM, ARM64, Win32, Win64 아티팩트에 대해서는 Yubico의 https://developers.yubico.com/libfido2/Releases[릴리스 페이지]를 참조하세요.
라이브러리를 안전하게 사용하려면 아티팩트를 신뢰할 수 있고 쓰기 불가능한 디렉터리에 DLL과 함께 실행 파일이 나란히 배치된 상태로 압축을 풀어야 합니다. DLL 배포 및 안전한 패키징 기법에 대한 일반적인 지침은 Microsoft 공식 문서를 참조하세요. 참고로, 동적으로 링크된 아티팩트는 /MD로 빌드되며 해당 Visual C++ 런타임이 필요할 수 있습니다.
=== 소스에서 빌드
UNIX 계열 시스템:
$ cmake -B build $ make -C build $ sudo make -C build install
플랫폼에 따라 https://www.freedesktop.org/wiki/Software/pkg-config/[pkg-config]를 설치해야 하거나 PKG_CONFIG_PATH 환경 변수를 설정해야 할 수 있습니다. 전체 OS별 빌드 지침은 .actions/(Linux, macOS, BSD) 및 windows/ 디렉터리를 참조하세요.
=== 빌드 시 사용자 지정
libfido2는 다양한 CMake 옵션을 지원합니다. 일부 옵션은 추가 의존성이 필요합니다. 기본적으로 비활성화된 옵션은 공식적으로 지원되지 않습니다.
[%autowidth.stretch] |=== |Option |Description |Default | BUILD_EXAMPLES | Build example programs | ON | BUILD_MANPAGES | Build man pages | ON | BUILD_SHARED_LIBS | Build a shared library | ON | BUILD_STATIC_LIBS | Build a static library | ON | BUILD_TOOLS | Build auxiliary tools | ON | FUZZ | Enable fuzzing instrumentation | OFF | NFC_LINUX | Enable netlink NFC support on Linux | ON | USE_HIDAPI | Use hidapi as the HID backend | OFF | USE_PCSC | Enable experimental PCSC support | OFF | USE_WINHELLO | Abstract Windows Hello as a FIDO device | ON |===
USE_HIDAPI 옵션은 https://github.com/libusb/hidapi[hidapi]가 필요합니다. USE_PCSC 옵션은 Linux에서 https://github.com/LudovicRousseau/PCSC[pcsc-lite]가 필요합니다.
=== 개발
질문을 하거나 기능을 제안하려면 https://github.com/Yubico/libfido2/discussions[GitHub Discussions]를 사용하고, 코드 기여는 https://github.com/Yubico/libfido2/pulls[GitHub pull-requests]를 사용하세요.
=== 버그 신고
버그를 신고하려면 https://github.com/Yubico/libfido2/issues[GitHub Issues]를 사용하세요. 보안 문제를 신고하려면 [email protected]으로 연락해 주세요. PGP 공개 키는 https://www.yubico.com/support/security-advisories/issue-rating-system/에서 확인할 수 있습니다.