Hey
So, I was just looking at this magic link situation because I’m finally moving my current account to Monzo and… I’m not thrilled with what I’m seeing, at least for the web app.
Let’s abandon all of the theoretical attacks and hyperbole and look at some facts that I think are concerning:
- The magic link emails are delivered by a third party (Mailgun) so the integrity of their systems/staff are crucial in protecting our Monzo accounts
- The emails are not end-to-end encrypted (nor could they reasonably be)
- The magic links don’t seem to be tied to the browser that requested the login, so intercepting a link works fine
Personally I would prefer to use a 2Fa code (not SMS), but I do think that addressing the 1st and 3rd points, particularly the 3rd, would go a long way to making the magic link system more trustworthy.
Fixing the 1st point would be relatively simple, so there’s no real need to discuss that.
The 3rd point was quite a surprise to me - I used two separate browsers (Safari and Chrome), one to visit web.monzo.com and start a login, and then the other to open the magic link in my email. The login worked fine, which tells me that the magic link is not tied to the originating browser (by cookie or local storage or something similar).
My guess was that maybe it would at least be tied to the originating IP address, but I was able to repeat the test using WiFi to start a login, and 4G to open the magic link, so it’s not tied to the IP address.
I happen to think that requiring a password to login, is absolutely fine, and/or requiring 2Fa is absolutely fine, and I would like either/both of those, but even if we discard my personal preferences, I think it’s pretty hard to make a sensible case that the magic link shouldn’t be tied to the browser that originated the request?
I’m not completely sure yet, but I think in the case of the iOS apps, the magic links are tied to the originating instance of the app - I haven’t yet been able to get my iPad to login with an email generated from my iPhone, or vice versa, but I can’t immediately tell if that’s because they are actually tied, or if there is something about the sequencing of two concurrent logins happening.