vanguardbackup / vanguard

Open-source backup solution for server and application backup, built by the community for the community.
https://vanguardbackup.com
GNU Affero General Public License v3.0
21 stars 2 forks source link

[Feature]: Two Factor Authentication #21

Closed lewislarsen closed 3 months ago

lewislarsen commented 3 months ago

Contact Details

No response

Feature Title

Add two-factor authentication

Feature Description

Two-factor authentication (2FA) is a security feature that would significantly enhance the protection of user accounts during the login process. This feature requires users to provide two different authentication factors to verify their identity.

The proposed 2FA system will include three authentication methods:

  1. Passkey Sign-in Option
  2. Email Sign-in (Code sent to email address)
  3. Mobile App 2FA Sign-in (6-digit randomly generated code)

How it works:

  1. Primary Authentication: Users will first log in with their username and password as usual.
  2. Secondary Authentication: After successful primary authentication, users will be prompted to choose one of the following secondary authentication methods:

a) Passkey Sign-in:

Users can register a passkey (e.g., biometric data or a hardware security key) to their account. During login, after entering their password, they'll be prompted to use their passkey to complete authentication.

b) Email Sign-in:

A unique, time-limited code will be sent to the user's registered email address. The user must enter this code on the login page to complete authentication.

c) Mobile App 2FA Sign-in:

Users will need to install an authenticator app on their mobile device. During login, users must enter the current code from the app to complete authentication.

Vanguard Version

v1.5.0

Current Issues

Single Point of Failure: Currently, user accounts are protected only by a password. If this password is compromised, an attacker can gain full access to the account.

Lack of Options: The current system doesn't provide users with choices for how they want to secure their accounts, which can lead to frustration for security-conscious users.

Implementing the proposed 2FA system will address these issues by adding an extra layer of security, providing user choice, meeting compliance requirements, and significantly reducing the risk of unauthorized access to user accounts.

Additional Context

No response

Resources

No response