Post

Replies

Boosts

Views

Activity

Reply to iPhone + Safari + Passwords violates WebAuthn spec when pubKeyCredParams doesn't contain ES256
Seeing how Chromium on laptop + Passwords works correctly, I'm inclined to believe the issue lies with Safari (at least on iOS). If I had to "guess" what is happening, it is that Safari automatically adds ES256 when it does not exist (and possibly removes the supplied algorithms). This violates the spec though. WebAuthn Level 3 § 5.1.3 Step 10 states the steps a user agent MUST follow: If pkOptions.pubKeyCredParams’s size is is zero: Append the following pairs of PublicKeyCredentialType and COSEAlgorithmIdentifier values to credTypesAndPubKeyAlgs: public-key and -7 ("ES256"). public-key and -257 ("RS256"). is non-zero For each current of pkOptions.pubKeyCredParams: If current.type does not contain a PublicKeyCredentialType supported by this implementation, then continue. Let alg be current.alg. Append the pair of current.type and alg to credTypesAndPubKeyAlgs. If credTypesAndPubKeyAlgs is empty, throw a "NotSupportedError" DOMException. In particular when an RP does supply a list of algorithms, the user agent is not permitted to add its own algorithms nor remove any of the supplied algorithms (assuming the PublicKeyCredentialType is supported (e.g., "public-key")).
Topic: Privacy & Security SubTopic: General Tags:
Jul ’25