| Consider the threat model: An adversary takes over the email account, and checks if they reused their password on your site. If they didn't, then they'll try to reset the password, and you should check the second factor before resetting the password.
If they did reuse their password, then you should check the second factor on login (assuming it's coming from a previously unrecognized source).
At this point, the attacker will either give up, or attempt to contact your support channels, impersonating the user. It's up to you what restrictions you place on your support mechanism for resetting 2FA. I would suggest a combination of the following: - photo of a currently valid credit card associated with the account - photo ID with address that matches billing address - mandatory 7 day delay in the reset - prove access to the payment method by issuing a payment for some fractional amount and request the amount, then refund it (or don't and keep it as a "security fee") But no matter what you do, please please please be consistent. Train your entire support staff (if any), keep records of when people talk with you, don't disclose when the last time you talked was, and insist on following a process. If your process fails, see how and improve it. |
Please don't do this. There are people who move often to not have their current address on their photo id.