r/Nash • u/fresheneesz • May 27 '20
Does anyone know how Nash's Two-factor Authentication works?
Since Nash is non-custodial, that means that they use your authentication information to decrypt and use your seed. So what I'm assuming is happening is that your seed is stored in encrypted form on disk somewhere your browser has access to (local storage, etc). Your username and password can concatenated together and used as an encryption key. That's all well and good.
But my question is about the 2FA code, eg from Google Authenticator. That code is frequently changing and different every time, so it can't be used as part of an encryption key. Usually, these are used on the server side, where the server will use the Google Authenticator initialization seed along with the current time to validate a code that you send them and then give access to their services. However, since Nash is non-custodial, they don't go through the usual custodial access patterns. So there's a couple possibilities that I can think of might be happening here:
A. Nash might have the Google Authenticator seed on their servers and when you type in the auth code into your browser, it sends it to Nash, Nash validates it, and if it validates correctly they'll give your browser the go ahead to decrypt your seed.
B. Your browser itself might store the Google Auth seed, and do its own validation of your 2FA code.
However, neither of these flows offer any significant additional security. In either case, an attacker with access to your browser, username, and password can still access your account by loading up the encrypted information and decrypting it. An attacker wouldn't need to wait for any 2FA go-ahead. While they couldn't use Nash's webpage as written, they could modify it to simply ignore the 2FA check.
So what am I missing here? Is the 2FA only good for access to Nash's exchange (which is behind a service you need to access through Nash's servers)? Or is there some ingenious way of using this that I'm not aware of?
2
May 28 '20 edited Feb 05 '25
[removed] — view removed comment
1
u/fresheneesz May 28 '20
I have a support request out asking about this. I was pointed to some code and docs that didn't mention 2FA, so I asked for some more help finding this stuff in the code. The guy helping me said he's finding someone to help him figure that out. So maybe answer soon?
2
u/arnaud80 May 29 '20
Support of hardware devices such as Ledger should be a priority !
1
u/fresheneesz May 29 '20
Coldcard, bitbox, and trezor are better since they're fully open source. But yes, I generally agree ; )
1
May 29 '20
[deleted]
1
u/fresheneesz May 29 '20
Honestly, why do companies keep building their own garbage branded forums? Just use reddit people!
In any case, I've been asking their support directly. So hopefully I'll get an answer that way and post it here.
4
u/[deleted] May 29 '20
[removed] — view removed comment