These weaknesses are implementation specific. FIDO2/U2F is unphishable, requires proof of presence, and is a significant security win over a strong password.
That's a great initiative, but I expect the maintainers who are interested to be the ones who've already turned on (some lesser form of) 2FA voluntarily.
Anyone who is turning on 2FA because of this requirement is going to select the most frictionless method of complying with the mandate. Which will not be a hardware key.
TOTP is a minuscule security win in exchange for a significant amount of inconvenience, versus using a good password manager. If you want to prevent password reuse, add an option to use a pre-generated password as an alternative to 2FA.
I think the statement "these weaknesses are implementation specific", while true, is irrelevant when 99% of people affected by this mandate (and 99.9% of 2FA users in general) are going to use an implementation with these weaknesses. And, I think it really sucks that PyPI is loosing maintainers due to a policy that won't increase security in a meaningful way.
The difference between a password manager and TOTP is that TOTP is something PyPI can enforce and a password manager is not.
Yes, TOTP adds very little advantage when you have an already safe password. But there is no way for PyPI to know if you're doing that or not, and they can know if you're using 2FA.
> 99% of people affected by this mandate (and 99.9% of 2FA users in general) are going to use an implementation with these weaknesses
Time will tell. PyPI is giving away free keys, presumably to encourage adoption of the safer option.
I'm actually very happy to see maintainers go. If they weren't willing to enable 2FA I worry about what other issues their software poses.
I'm not calling it a weakness. I'm saying that the alleged advantages of the 2F in 2FA don't normally matter to people who just want to their shit to work.
Anyone who hadn’t already turned on 2FA is going to use the most frictionless so-called second factor they can.