Two Factor Authentication - Criteria
Authentication is a process through which one's identity is verified. For a long time it was done
using a one-step login where users had to provide their passwords. This approach was appropriate for
the early days and served us well for a while.
Unfortunately due to our reliance on digital systems for sensitive operations, the prevalence of bad
actors to break or steal credentials for their own nefarious plans compounded by the bad passwords
practices and management better authentication is required.
Multi factor authentication as the name indicates, does not solely rely on a single step, rather a
mix and match of different factors where users have to provide something they know, have or are. The
first one corresponds to the traditional system previously mentioned with passwords and PINs. The
second makes use of physical devices, general purpose ones such as phones or for more secure
contexts dedicated and specialized hardware keys. While the last one mainly refers to biometrics
such as fingerprints and facial or voice recognition.
Security generally inversely correlate with ease of use. Two factor is then a compromise, suitable
to the majority of commonly encountered situations. While hardware keys are preferable, most users
rely on their phone and an authenticator app to generate a one time password.
As always the application should be Free and Open Source, implement at least one of the two standard
algorithms for one time passwords: HMAC-based one-time password (HOTP) and Time-based
one-timepassword (TOTP), have a secure vault protected by a password or biometrics. And additional
functionalities such as backup and data import/export.