This one’s a bit confusing but I’ll try my best to explain the issue.
Let’s say I’m trying to save a passkey to my iCloud Keychain to login to Bitwarden with. iCloud Keychain is PRF-capable, so naturally I want to set it as a Login Passkey with Encryption to make it easy to login to the web vault.
The Login Passkeys aren’t currently supported on the iOS client. So, I have to login with the Master Password and 2FA. However, when I attempt to login this way, the passkey fails because the Login Passkey isn’t included as part of the FIDO2 2FA option. I have to fall back and use TOTP.
Well, when I try to add a second iCloud Passkey as a 2FA Passkey, iOS overwrites the PRF Passkey. iOS is seeing both the Login Passkeys and the 2FA Passkeys as the same passkey for the same account, same website, and same system, trying to be added twice, and overwrites it with the most recently added one. Thus, while Master Password + FIDO2 now works, Login with Passkey stops working.
I’ve tried workarounds such as adding one, moving it to trash, adding the other, and recovering the first one, but iOS still treats them as duplicates and they both become duplicate entries of the same passkey, and only 2FA or only PRF Login works.
I’m not sure what change can be made, but something should be changed so that they are treated as distinct passkeys, so that a PRF Login Passkey and a 2FA FIDO2 Passkey can coexist on the same device, and that each will work correctly when logging in.
That way, when logging in on the Web Vault on my iPad, I can skip past the master password and use my PRF Passkey, and whenever I need to re-login to my iOS client, I can use Master Password + Passkey rather than falling back on TOTP.
Does this make sense?