w3c / webauthn

Web Authentication: An API for accessing Public Key Credentials
https://w3c.github.io/webauthn/
Other
1.19k stars 172 forks source link

supplementalPubKeys attestation incompatible with most verification procedures #2075

Open emlun opened 6 months ago

emlun commented 6 months ago

The supplementalPubKeys extension states for its attestation signing procedure:

Therefore when calculating an attestation for a supplemental public key, the inputs are:

  • For authData, substitute the concatenation of the byte string h’737570706c656d656e74616c5075624b657973206174746573746174696f6e2e00ffffffff' and the value of aaguid from the extension output.
  • For hash, substitute the concatenation of the spk and nonce fields from the extension output. (The nonce MAY be empty.)

However, this is incompatible with most of the attestation verification procedures since most of them extract one or more fields from the authData argument:

So existing implementations of these verification procedures may fail to verify a supplementalPubKeys attestation. The extension may need to specify modifications to the verification procedures, or adjust the extension's signing procedure to take arguments with the same structure as the original signing procedures.