Automattic / Simplenote-United

Coordinating Simplenote development across its multiple platforms.
10 stars 4 forks source link

Add some more security features: 2FA/MFA with WebAuthn/FIDO2, TOTP, Hardware keys, passkeys! #145

Open Haulien opened 6 months ago

Haulien commented 6 months ago

What

Additional security and login options.

Why

In this day and age when everything is getting compromised, let's up the security a bit.

Two-factor authentication (2FA) is the foundational element of a zero trust security model. In order to protect sensitive data, you must verify that the users trying to access that data are who they say they are. 2FA is an effective way to protect against many security threats that target user passwords and accounts, such as phishing, brute-force attacks, credential exploitation and more.

How

Usual implementations of TOTP keys and hardware keys have the user prompted to authenticate once their username and password has been successfully entered. One could also have a 2FA box that is always on the login screen below a username/password (however it may confuse users who don't know what 2fa is)

Good example implementations of passkeys are Coinbase, GitHub, and even Roblox. They either have a dedicated "Sign in with passkey" button on the login page, or they auto prompt your browser. Passkeys should not require entering a username or password once enabled. There's an Apple Developer article here. Google have a lot of info on Passkey authentication on Android and web here. There's also the WebAuthn API

Haulien commented 6 months ago

126 touches on basic 2FA via SMS/email codes. I don't think that's a valid solution however.