https://github.com/ellwould/mfa-view
A Go HTTP program to generate MFA codes from a stored secret key and can also add a new MFA key. MFA keys are encrypted and the user's password is hashed and salted.
https://github.com/ellwould/mfa-view
2fa-security encryption go golang https login mfa-authenticator mit-license multifactor-authentication nginx nginx-proxy portal two-factor-authentication web website
Last synced: 3 months ago
JSON representation
A Go HTTP program to generate MFA codes from a stored secret key and can also add a new MFA key. MFA keys are encrypted and the user's password is hashed and salted.
- Host: GitHub
- URL: https://github.com/ellwould/mfa-view
- Owner: ellwould
- License: mit
- Created: 2025-04-02T17:07:22.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-18T02:19:31.000Z (9 months ago)
- Last Synced: 2025-09-06T00:39:14.304Z (7 months ago)
- Topics: 2fa-security, encryption, go, golang, https, login, mfa-authenticator, mit-license, multifactor-authentication, nginx, nginx-proxy, portal, two-factor-authentication, web, website
- Language: Go
- Homepage: https://mfa.ell.today
- Size: 2.62 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MFA View
### A Go HTTP program to generate MFA codes from a stored secret key and can also add a new MFA key.
### MFA keys are encrypted and the user's password is hashed and salted.
#### (Built using operating system - Ubuntu 22.04.5 LTS)
### Access demo site at https://mfa.ell.today
#### Demo username is: `demo@ell.today`
#### Demo password is: `passwordpasswordpassword1$`
#### Demo 2FA secret key is: `IHJU2OCCJCGAH5CMTSIBPU66SVLDVIRV`
#### or scan the QR code below for secret key
#### MFA View can be installed easily with the BASH script - [install-mfaview.sh](https://github.com/ellwould/mfa-view/blob/main/install-mfaview.sh)
#### MFA View can be un-installed easily with the BASH script - [uninstall-mfaview.sh](https://github.com/ellwould/mfa-view/blob/main/uninstall-mfaview.sh)
---
## Website:
### Login page:

### Logging in with no MFA accounts present:

### Adding a MFA acount:
#### (In this example I generated a random secret key for the purpose of demonstrating - `V2J6E2BTG3LPGRWB63CVCKXXRGENYS3K`)

### Logging in with a MFA account present:
#### (Java Script used to create a copy to clipboard button)

### Screenshot of he mfaview-key.csv file (located in /etc/mfaview/key) showing the secret key is encrypted:
#### (AES encryption used)

### Add MFA account page switched off in the configuration file:

### Examples of validation on the login page:



---
## CLI:
### Adding an email address:
#### (`demo@ell.today` was used)

### Adding a password:
#### (Easy example password used was `passwordpasswordpassword1$`):

### Generating a 2FA secret key:
#### (Secret key generated - `IHJU2OCCJCGAH5CMTSIBPU66SVLDVIRV`)

### 2FA secret key embedded inside a Quick Response (QR) code for a 3rd party authenticator app to scan:

### 3rd party application generating 2FA code:

### MFA View checks the 2FA code generated from a 3rd party authenticator app is correct before adding the secret key to the configuration file:

### MFA View informing the user the 2FA secret key has been added to the configuration file:

### Example of configuration file (password is hashed and salted):

### Systemd after MFA View was installed but before account setup:

### Systemd after account setup is complete:

### Examples of validation when creating an account:


---
>[!NOTE]
>For a list of abbreviations and there meanings used throughout this repository please refer to this [README](https://github.com/Ellwould/information_technology_and_telecommunication_abbreviations)
> [!IMPORTANT]
> All third-party product and/or company names and logos are trademarks™ or registered® trademarks and remain the property of their respective holders/owners. Unless specifically identified as such, use of third party trademarks does not imply any affiliation with or endorsement between Elliot Michael Keavney and the owners of those trademarks.