The difficulty of switching authentication providers
ezid.io
ezid.io
a) User has to wait many minutes for email
b) User never finds the email
c) User clicks to get another email, invalidating the first, then clicking the first
d) User tries to re-use old sign-in emails to get in again many days later
e) User gets confused as to whether they are supposed to have a password or not, or other forms of sign-in vs passwordless
At best, these problems amount to some support work and user friction. But in the worse case, for the not so tech-savvy users, they become a complete blocker to using the product.
Of course, we cannot track deliverability when the emails are sent by Firebase so we can't really see how often there are problems. Are we just unlucky, missing something obvious or is passwordless a poor bandaid on the auth problem (hey, webauthn?)
That could result in private user content being indexed by the crawler if it's not configured correctly, or if it didn't realise this.
This also introduces another complication on figuring out whether the user clicked it twice, or whether one click was actually the email server provider doing some "scanning" by clicking all the private links in the email...
In an enterprise setting, access to email can be made to require MFA. The email loop itself, to major providers, is generally secure.
By the time you go through all the rigamarole, you're just better off forcing your customer to manage their own MFA.
What concerns do you have?
Plus, having someone access your email account means you're pwned anyway - they can see your sensitive documents that were received / sent as attachments, they can read recent conversations and phish information, maybe even ask for a downpayment, etc.
So the basic rule should be: don't lose access to your email.
That doesn't mean that email-based login is good, just that IMO this point is kind of moot.
Also, do email-based login flows allow 2FA?
Of course, combining email-based login with another factor makes it more secure again, I was just talking about one factor.
As, what about web-based email systems that enforce 2FA? Isn't that a good mitigation?
Any other issues you see? (genuinely just curious, I don't mean to needle you :)
I use Sendgrid to send the email and have had no issues with the service so far.
They're also infuriating, massively increase friction (especially for users of a web-based email system that they may not keep open) by forcing a user out of their workflow, as well as infantilizing users by deciding that for them that they just don't know any better and can't be trusted to use a secure password/turn on 2FA.
If security were actually the concern, push users to turn on 2FA with a non-removable banner until they do it, and on that page prominently educate them on the best ways to smooth THAT out via the many 2FA tools that help manage logins, until we have a good 2FA standard or good, wide implementation of webauthn or similar.
Perhaps we tolerate emailed password reset links currently until there is a better method. There's an additional advantage to them in that "if they work, you know they haven't been lifted/used, and your password still works/has been set". On the other hand, given that anyone can go ask for a login link to be sent as many times as they want, if you come home to a mailbox full of login link requests you haven't requested and which have already expired you really have no hope of knowing whether or not your account has been compromised/used for some nefarious purpose already. Even having immutable-to-the-end-user session info saved and displayed probably isn't enough to remedy this.
Although the same would be true if your password to site in question itself got compromised, which is probably more likely. You wouldn't have any way of knowing if your account has been used for some nefarious purpose already too.
2 key things highlighted in the post though:
1. The trade-offs you take are entirely dependent on the type of web app you have and there isn't really a one size fits all solution (nor should there be). If you are having a banking app vs a newsletter subscription, of course the solution would (and should) be different. You can always supplement the email magic links with 2FA based on "something you have" like SMS, TOTP authenticators or WebAuthn. Just like you can supplement traditional un/pw auth with extra factors...
2. The encryption argument is factual but completely irrelevant if the comparison is really between a magic link flow and a password reset flow, which pretty much every site has to deal with. Magic link flow would give 'at least' that amount of security without the problems of passwords being phished or brute forced. This is true whether are not the email is e2e encrypted or not. Recovery mechanisms for some reason tends to get overlooked... and email is by far the most common recovery mechanism present in the internet today.
UX is arguably a security concern. Poor UX impacts availability of the service, and availability is definitely a security concern. It can also tempt users to bypass security mechanisms if they have poor UX, often leading to worse security than before the mechanism was added!
So while it's true that most SMTP connections are encrypted, that doesn't mean anything unless the endpoints are enforcing trust on each other which mostly they're not.
I have no certainty at all that any of those free providers use encryption at rest. How would they mine the messages for data to sell? And, cloud compute is expensive, and disk encryption takes more CPU cycles. Why would they spend that money? SMTP connections are more visible so it makes sense to use that from a marketing standpoint.
Password reuse is bad because it allows compromising one site if another one is compromised. By sending someone a URL to login via email, now you've effectively forced password reuse of their email password as the site password (because obviously, if someone gets access to email they also get access to the emailed links).
The point on password reuse I agree with, but flakiness here is that there do unfortunately exist dodgy sites without TSL and without password hashing and salting in place. This overall increases the probability of a breach and since re-use is common the supposedly secure sites become vulnerable too. At least with email, most major email providers have some level of securing the email (example 2FA involved when attempting to login from a different device).
If the comparison is between email magic links and a site that offers email / password with no recovery at all or "secret questions" as the means of password recovery, which I haven't seen in years, that's a whole other debate all together.