Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

U2F support #59

Open
llann opened this issue Jan 1, 2018 · 2 comments
Open

U2F support #59

llann opened this issue Jan 1, 2018 · 2 comments
Labels

Comments

@llann
Copy link

llann commented Jan 1, 2018

Supporting U2F to be able to connect using a Yubikey would be a nice feature by integrating django-u2f or implementing it directly.

@clokep
Copy link
Collaborator

clokep commented Jan 2, 2018

There's a django-otp-yubikey that would likely make this easy to integrate. Probably need to solve #23 first though.

@clokep clokep added the feature label Sep 25, 2020
@9mido
Copy link
Contributor

9mido commented Mar 23, 2021

Just so others are aware, you can install django-otp-yubikey in settings.py and use the yubikey authenticator app (downloaded from yubikey website) to scan the QR code produced by django-allauth-2fa and generate an OTP that the hardware yubikey can now use to login via django-allauth-2fa just like google-authenticator and other authenticator mobile apps do. I didn't have to change any django-allauth-2fa code to use OTP with the yubikey.

It is now recommended to use webauthn as opposed to U2F (see below).

FIDO1 is older while FIDO2 is newer and uses more of a PKI approach.

U2F is supported on both FIDO1 and FIDO2 but FIDO2 U2F is better.

https://security.stackexchange.com/questions/220752/fido-and-fido2-differences

U2F / CTAP1 = Second factor authentication scheme in addition to the first factor (the user's password). The yubikey is what you have and a password is what you know.

UAF = First factor authentication only. Think biometrics like a fingerprint. Passwordless.

Webauthn = Part of FIDO2. Uses a javascript API for browser authentication where the browser talks to the yubikey device.

CTAP2 = Part of FIDO2. How a yubikey can talk to a browser and OS. Used to enable a passwordless, second-factor or multi-factor authentication experience.

Webauthn:

https://webauthn.io/

https://www.youtube.com/watch?v=jilKhi67qG0

https://gitlab.com/stavros/django-webauthin

https://github.com/shemigon/django-webauthn

https://github.com/duo-labs/py_webauthn

FIDO2:

https://github.com/CZ-NIC/django-fido

https://github.com/Yubico/python-fido2

https://developers.yubico.com/python-fido2/

If someone were to make a PR, here is a good demo to replicate for django-allauth-2fa:

https://demo.yubico.com/webauthn-technical/registration

Django MFA2 App:

https://github.com/mkalioby/django-mfa2/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants