Menyediakan fungsionalitas perpustakaan untuk berkomunikasi dengan perangkat FIDO melalui USB serta memverifikasi pengesahan dan tanda tangan pernyataan.
Pustaka ini bertujuan untuk mendukung protokol FIDO U2F dan FIDO 2 untuk berkomunikasi dengan autentikator USB melalui Protokol Client-to-Authenticator (CTAP 1 dan 2). Selain akses perangkat tingkat rendah ini, kelas yang ditentukan dalam modul fido2.client
dan fido2.server
menerapkan operasi tingkat lebih tinggi yang berguna saat berinteraksi dengan Authenticator, atau saat mengimplementasikan dukungan WebAuthn untuk Pihak yang Mengandalkan.
Untuk penggunaan, lihat direktori examples/
.
Tautan yang terkait dengan WebAuthn dan FIDO2 ini dapat membantu Anda memulai:
Panduan Yubico WebAuthn/FIDO2: https://developers.yubico.com/FIDO2/
Spesifikasi WebAuthn W3C: https://www.w3.org/TR/webauthn/
Spesifikasi FIDO: https://fidoalliance.org/spesifikasi/download/
Proyek ini, dengan pengecualian file yang disebutkan di bawah, dilisensikan berdasarkan lisensi klausa 2 BSD. Lihat file COPYING untuk teks lisensi lengkap.
Proyek ini berisi kode sumber dari pyu2f (https://github.com/google/pyu2f) yang dilisensikan di bawah Lisensi Apache, versi 2.0. File-file ini terletak di fido2/hid/
. Lihat http://www.apache.org/licenses/LICENSE-2.0, atau file COPYING.APLv2 untuk teks lisensi lengkap.
Proyek ini juga menggabungkan daftar sufiks publik (https://publicsuffix.org) yang dilisensikan di bawah Lisensi Publik Mozilla, versi 2.0. File ini disimpan sebagai fido2/public_suffix_list.dat
. Lihat https://mozilla.org/MPL/2.0/, atau file COPYING.MPLv2 untuk teks lisensi lengkap.
fido2 kompatibel dengan Python 3.7 dan yang lebih baru, dan diuji pada Windows, MacOS, dan Linux. Dukungan untuk OpenBSD, FreeBSD, dan NetBSD disediakan apa adanya dan bergantung pada kontribusi komunitas.
fido2 dapat diinstal dengan menjalankan perintah berikut:
pip instal fido2
Untuk menginstal dependensi yang diperlukan untuk komunikasi dengan pengautentikasi NFC, gunakan:
pip instal fido2[pcsc]
Di bawah Windows 10 (1903 atau lebih baru) akses ke perangkat FIDO dibatasi dan harus dijalankan sebagai Administrator. Pustaka ini masih dapat digunakan saat dijalankan sebagai non-administrator, melalui kelas fido.client.WindowsClient
. Contohnya disertakan dalam file examples/credential.py
.
Di Linux Anda perlu menambahkan aturan Udev agar dapat mengakses perangkat FIDO, atau dijalankan sebagai root. Misalnya, aturan Udev mungkin berisi hal berikut:
Aturan #Udev untuk mengizinkan akses HID ke perangkat Yubico untuk dukungan FIDO. KERNEL===”hidraw*”, SUBSYSTEM===”hidraw”, MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050"
Mungkin sudah ada paket yang tersedia untuk distribusi Anda yang melakukan hal ini untuk Anda, lihat: https://support.yubico.com/hc/en-us/articles/360013708900-Using-Your-U2F-YubiKey-with-Linux
Di FreeBSD Anda harus menjalankan sebagai root atau menambahkan aturan untuk perangkat Anda ke /etc/devd.conf, yang dapat diotomatisasi dengan menginstal security/u2f-devd:
# pkg instal u2f-devd
Proyek ini bergantung pada Kriptografi. Untuk petunjuk tentang cara menginstal ketergantungan ini, lihat https://cryptography.io/en/latest/installation/.
Dukungan NFC tersedia secara opsional melalui PC/SC, menggunakan perpustakaan pyscard. Untuk petunjuk tentang cara menginstal ketergantungan ini, lihat https://github.com/LudovicRousseau/pyscard/blob/master/INSTALL.md.
Untuk pengembangan perpustakaan kami menggunakan puisi. Untuk mengatur lingkungan dev, jalankan perintah ini di direktori root repositori:
pemasangan puisi
Kami juga menggunakan pra-komit untuk menjalankan beberapa pemindaian pada kode sebelum melakukan.
Meskipun banyak pengujian dapat dijalankan sendiri, beberapa pengujian memerlukan perangkat U2F atau FIDO2 yang terhubung untuk menjalankannya.
puisi dijalankan pytest