Earlier quoted context omitted.
>D. Reset via email is the most commonly used one. It's scalable, unlike manual review. Less secure, arguably. What's the argument that it's not any less secure? That seems like a pretty obvious conclusion to me.
Password reuse and 2FA enforcement. Although, we at HN are the shining tier of amazingness (/s), most people will use the same password across as many accounts as they can, or use some dirivation of the password. The bigger issue is that plenty of people don't enable 2FA onto their emails as it's never really suggested by the providers, some just don't support it, and the fear of getting locked out of something so ce…
Ask HN: What is a secure way to allow 2FA resets?
41–50 of 76 posts
Re: Ask HN: What is a secure way to allow 2FA resets?
#42Put a timer on the reset - Allow them to start the reset process, but make it so it takes a while (At least a few days), and during that time make sure any successfully logged in person on that account sees large warnings that someone is resetting their 2FA. This ensures that whoever actually owns the account can react in time to stop a takeover, at the cost of making the reset process kindda painful.
Re: Ask HN: What is a secure way to allow 2FA resets?
#43Put a timer on the reset - Allow them to start the reset process, but make it so it takes a while (At least a few days), and during that time make sure any successfully logged in person on that account sees large warnings that someone is resetting their 2FA. This ensures that whoever actually owns the account can react in time to stop a takeover, at the cost of making the reset process kindda painful.
Still vulnerable to a "I know this user is on vacation for a week" attacks, but it's fairly effective.
Re: Ask HN: What is a secure way to allow 2FA resets?
#44In order to be able to prove who you are to reset your auth credentials, you have to have proven who you are when you set up the account, in a way which distinguishes your identity from that of others who share some-but-not-all of your attributes (e.g. your legal name.) Otherwise, anyone with those same attributes “has the key” to your account.
The only convenient way to create such a distinguished profile, is to hand over some legal identifying document that is linked to a pool of other identifying documents, such that if you later see a different such document, you can ask the relevant government whether it identifies the same person as the previous document you saw.
This requires keeping around identity documents for later comparisons, which is a fraught problem. I’d rather trust as few companies with my identity documents as possible—especially if I know that they’re going to need to keep them on file.
Thus why I say that probably only SSO providers can manage TOTP 2FA: without a secure 2FA-reset flow, they don’t “really” have 2FA; and only very few companies (i.e. identity providers) are able to be trusted with the documents required to implement such a secure flow.
——
...none of which matters all that much, because the real problem is TOTP itself, and the solution is to switch to a better type of 2FA. In the original enterprise 2FA smart-card implementation, it wasn’t the company with the account requiring auth that issued the 2FA token, but rather a separate 2FA issuer. The client would then get their card bound to each account they wanted to use it to authenticate. The card had a signing key, and the services just needed its matching public key.
With “real” 2FA impls like this, you aren’t supposed to need N 2FA tokens that you would need to reset separately with each rinky-dink authable service, but rather just one 2FA token, with token rollover—and the security around it—handled by the issuer. Use better 2FA.
Re: Ask HN: What is a secure way to allow 2FA resets?
#45Earlier quoted context omitted.
> photo ID with address that matches billing address Please don't do this. There are people who move often to not have their current address on their photo id.
For this to be a problem someone would have to lose their 2FA device, and their backup codes, and change their billing address but not the address on their ID. If all that does happen, they can solve it by updating their ID, which most states require within 30 days of moving anyway.
Re: Ask HN: What is a secure way to allow 2FA resets?
#46Put a timer on the reset - Allow them to start the reset process, but make it so it takes a while (At least a few days), and during that time make sure any successfully logged in person on that account sees large warnings that someone is resetting their 2FA. This ensures that whoever actually owns the account can react in time to stop a takeover, at the cost of making the reset process kindda painful.
Counter that if I’m a hacker, I’ll already have knowledge of this and try and time my attack when my target is unlikely to log in, but I suppose we’re getting into weeds with that.
Re: Ask HN: What is a secure way to allow 2FA resets?
#47Earlier quoted context omitted.
> photo ID with address that matches billing address Please don't do this. There are people who move often to not have their current address on their photo id.
For a business setting, that's a red flag for KYC, but for a B2C app, that's a very legitimate concern. If I were in that position, I'd probably just insist on seeing some proof that I can tie to the payment method, because otherwise how do I know you're John Smith from 123 Residential St, or John "the crook" Smith from the bad side of town? Bank statement, photo ID, etc. Remember that this process needs to be painfu…
> A few examples of acceptable documents to prove California residency are:
> Rental or lease agreement with the signature of the owner/landlord and the tenant/resident
> Deed or title to residential real property
> Mortgage bill
> Home utility bills (including cellular phone)
> Medical documents
> Employee documents
[1] https://www.dmv.ca.gov/portal/dmv/detail/pubs/newsrel/newsre...
Re: Ask HN: What is a secure way to allow 2FA resets?
#48Earlier quoted context omitted.
> photo ID with address that matches billing address Please don't do this. There are people who move often to not have their current address on their photo id.
For this to be a problem someone would have to lose their 2FA device, and their backup codes, and change their billing address but not the address on their ID. If all that does happen, they can solve it by updating their ID, which most states require within 30 days of moving anyway.
> A new driver license, identification card or registration card is not issued when changing your address.
[1] https://www.dmv.ca.gov/portal/dmv/detail/online/coa/welcome
Re: Ask HN: What is a secure way to allow 2FA resets?
#49Earlier quoted context omitted.
Counter that if I’m a hacker, I’ll already have knowledge of this and try and time my attack when my target is unlikely to log in, but I suppose we’re getting into weeds with that.
There is no staying out of the weeds when it comes to security. The weeds are where the threats hide.
Re: Ask HN: What is a secure way to allow 2FA resets?
#50You probably want to request a reset. When a reset is requested, you should then allow a grace period - possibly up to a month for the reset to be cancelled. You should notify the user via email/out of band mechanism that a reset has been requested. On each login you should prompt that the reset is ongoing and that it can be cancelled. Finally after a month, you revoke the 2FA and allow a new device to be activated.…
This is the one that I like the best if manual human review doesn't work for your use case. Set a reasonable time period (a month seems like really long, I was thinking more along the lines of a week), use every piece of information you have to attempt to alert the user multiple times that a reset is happening (email, text, in-app alerts, etc...), make sure that each "alert" gives the user a one-click way of stopping…
Once the attacker has control and you try to reassert ownership, the attacker gets a loud warning every time you try to login/change the TFA and a month to respond.