提供用於透過 USB 與 FIDO 裝置通訊以及驗證證明和斷言簽章的庫功能。
該程式庫旨在支援 FIDO U2F 和 FIDO 2 協議,以便透過用戶端到身份驗證器協議(CTAP 1 和 2)與 USB 身份驗證器進行通訊。除了這種低階設備存取之外, 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/specifications/download/
此項目(除下面提到的文件外)均根據 BSD 2 條款許可證獲得許可。請參閱複製文件以取得完整的許可證文字。
此專案包含 pyu2f (https://github.com/google/pyu2f) 的原始程式碼,該程式碼根據 Apache 授權 2.0 版授權。這些文件位於fido2/hid/
中。請參閱 http://www.apache.org/licenses/LICENSE-2.0 或COPYING.APLv2檔案以取得完整的授權文字。
該專案還捆綁了公共後綴清單 (https://publicsuffix.org),該清單已根據 Mozilla 公共授權 2.0 版獲得許可。該檔案儲存為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 下,您需要新增 Udev 規則才能存取 FIDO 設備,或以 root 身分執行。例如,Udev 規則可能包含以下內容:
#Udev 規則,允許 HID 存取 Yubico 裝置以獲得 FIDO 支援。 KERNEL==“hidraw*”,SUBSYSTEM==“hidraw”, 模式=“0664”,群組=“plugdev”,ATTRS {idVendor}==“1050”
您的發行版可能已經有一個軟體包可以為您執行此操作,請參閱:https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with- Linux
在 FreeBSD 下,您需要以 root 身分運行,或將裝置規則新增至 /etc/devd.conf,這可以透過安裝 security/u2f-devd 來自動化:
# pkg 安裝 u2f-devd
該項目依賴密碼學。有關安裝此依賴項的說明,請參閱 https://cryptography.io/en/latest/installation/。
可以使用 pyscard 庫透過 PC/SC 選擇提供 NFC 支援。有關安裝此依賴項的說明,請參閱 https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md。
為了圖書館的發展,我們使用詩歌。若要設定開發環境,請在儲存庫的根目錄中執行以下命令:
詩歌裝置
我們還使用預提交在提交之前對程式碼執行一些掃描。
雖然許多測試可以單獨運行,但有些測試需要連接的 U2F 或 FIDO2 設備才能運行。
詩歌運行 pytest