USB를 통해 FIDO 장치와 통신하고 증명 및 어설션 서명을 확인하기 위한 라이브러리 기능을 제공합니다.
이 라이브러리는 클라이언트-인증자 프로토콜(CTAP 1 및 2)을 통해 USB 인증자와 통신하기 위한 FIDO U2F 및 FIDO 2 프로토콜을 지원하는 것을 목표로 합니다. 이러한 낮은 수준의 장치 액세스 외에도 fido2.client
및 fido2.server
모듈에 정의된 클래스는 인증자와 인터페이스할 때 또는 신뢰 당사자에 대한 WebAuthn 지원을 구현할 때 유용한 더 높은 수준의 작업을 구현합니다.
사용법은 examples/
디렉터리를 참조하세요.
WebAuthn 및 FIDO2와 관련된 다음 링크는 시작하는 데 도움이 될 수 있습니다.
Yubico WebAuthn/FIDO2 가이드: https://developers.yubico.com/FIDO2/
W3C WebAuthn 사양: https://www.w3.org/TR/webauthn/
FIDO 사양: https://fidoalliance.org/specations/download/
아래에 언급된 파일을 제외하고 이 프로젝트는 BSD 2절 라이선스에 따라 라이선스가 부여됩니다. 전체 라이센스 텍스트는 COPYING 파일을 참조하세요.
이 프로젝트에는 Apache 라이센스 버전 2.0에 따라 라이센스가 부여된 pyu2f(https://github.com/google/pyu2f)의 소스 코드가 포함되어 있습니다. 이러한 파일은 fido2/hid/
에 있습니다. 전체 라이센스 텍스트를 보려면 http://www.apache.org/licenses/LICENSE-2.0 또는 COPYING.APLv2 파일을 참조하십시오.
이 프로젝트는 또한 Mozilla Public License 버전 2.0에 따라 라이센스가 부여된 공개 접미사 목록(https://publicsuffix.org)을 번들로 제공합니다. 이 파일은 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 설치 fido2[pcsc]
Windows 10(1903 이상)에서는 FIDO 장치에 대한 액세스가 제한되며 관리자 권한으로 실행해야 합니다. 이 라이브러리는 관리자가 아닌 사용자로 실행할 때 fido.client.WindowsClient
클래스를 통해 계속 사용할 수 있습니다. 이에 대한 예는 examples/credential.py
파일에 포함되어 있습니다.
Linux에서는 FIDO 장치에 액세스하거나 루트로 실행하려면 Udev 규칙을 추가해야 합니다. 예를 들어 Udev 규칙에는 다음이 포함될 수 있습니다.
#FIDO 지원을 위해 Yubico 장치에 대한 HID 액세스를 허용하는 Udev 규칙입니다. 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에서는 루트로 실행하거나 /etc/devd.conf에 장치에 대한 규칙을 추가해야 하며, 이는 security/u2f-devd를 설치하여 자동화할 수 있습니다:
# pkg install u2f-devd
이 프로젝트는 암호화에 의존합니다. 이 종속성 설치에 대한 지침은 https://cryptography.io/en/latest/installation/을 참조하세요.
NFC 지원은 pyscard 라이브러리를 사용하여 PC/SC를 통해 선택적으로 사용할 수 있습니다. 이 종속성 설치에 대한 지침은 https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md를 참조하세요.
도서관 개발을 위해 우리는 시를 사용합니다. 개발 환경을 설정하려면 저장소의 루트 디렉터리에서 다음 명령을 실행하세요.
시 설치
또한 커밋하기 전에 코드에 대한 일부 스캔을 실행하기 위해 사전 커밋을 사용합니다.
많은 테스트가 자체적으로 실행될 수 있지만 일부 테스트를 실행하려면 연결된 U2F 또는 FIDO2 장치가 필요합니다.
시 실행 pytest