Earlier quoted context omitted.
>- Passcode or biometric locks on an app are a gimmick and offer negligible value. Biometric locks are interfaces that the OS does not expose to users, and that are backed via an HSM. On the iPhone and modern Android, they allow you to envelope encrypt a message via biometrics in such a way that it can only be unlocked from within the app that locked it AND via enrolled biometric signatures. Passcodes are the same, b…
> It is incorrect to say that they "are a gimmick and offer negligible value". I'm well aware of how the mechanism works. If the host OS or the app is compromised, it won't help - the attacker can just steal the codes after they're unlocked by the enclave. For physical theft, it only provides a meaningful advantage if the phone is unlocked. Someone stealing your unlocked phone to get at your 2FA codes is well outside…
If the host OS or app is compromised, then it absolutely helps! The codes cannot be stolen until the user unlocks.
Considering that the most recent iOS jailbreak was not persistent, due to their chain or trust, this is absolutely helpful. It's one component of defense in depth.
In a system with a properly established chain of trust (as ios and android have now), compromising only one component is not enough to ensure complete user compromise.
In your "advanced threat" example, where a fed compromises a device, powering off and then on the device will hopefully put the device into a trusted state again. Aside from the boot0 exploit that nailed ios a few months ago, a few revealed state-level attacks _were not persistent_. Even here, it helps!
>For physical theft, it only provides a meaningful advantage if the phone is unlocked.
These biometric mechanisms are implemented in such a way that "opportunistic" theft (such a as a mugging) yields a positive outcome for average users.
>Someone stealing your unlocked phone to get at your 2FA codes is well outside of most people's threat model.
Aside from the aforementioned compromised host example, which has been a problem on android in the past.... 2FA, sure, that's a bit more esoteric... except... not really. Since 2FA can be used for payments, or other sensitive info, we should probably give users the opportunity to protect against. I work for a personal finance company and we enforce biometrics for a 2nd factor on login to help protect against both the compromised host threat, but also to prevent against spousal, familial id theft (more common than you'd think, sadly). Your familial member may know your passcode, but they will be unable to access your financial data.