2 comments

  • deathanatos8 hours ago
    From the linked spec,<p>&gt; <i>The authenticator data is a CBOR structure defined in the WebAuthn Level 3 specification, is returned by the getAuthenticatorData() method of the AuthenticatorAttestationResponse</i><p>From TFA,<p>&gt; <i>The payload is the authenticator data, a CTAP2 CBOR encoding of most of the credential record fields that is already specified by WebAuthn</i><p>Both link to the same section of the WebAuthn spec, §6.1 Authenticator Data[1]. Unless I&#x27;m missing something, that section is describing a custom binary format, <i>not</i> a CBOR encoding of data. (Though n.b. that one of the items contained by the outer custom binary format is CBOR, but the 37(ish) byte array itself is not CBOR.)<p>(…and it&#x27;s stuff like that that just makes all of WebAuthn so impenetrable.)<p>[1]: <a href="https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webauthn-3&#x2F;#sctn-authenticator-data" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webauthn-3&#x2F;#sctn-authenticator-data</a>
    • dwaite2 hours ago
      I was unclear on that as well. WebAuthn uses an extended form of the U2F format, such that if you don&#x27;t use any of the new features or extensions the two are binary compatible with compatible signatures.<p>So the U2F bits like authenticator data are in a bespoke format using section lengths, while the newer features and extensions are CBOR.<p>One could translate the bespoke bits to CBOR, but care would be needed if you want to round-trip back to the bespoke format (e.g. so that attestations could be verified in the future off of the registration record.) Since CBOR isn&#x27;t really as usable as say JSON as being an abstract object access API, and since CBOR is going to take up more space, I don&#x27;t think this would really provide value over leaving it in the WebAuthn format for tooling to work on directly.
    • FiloSottile2 hours ago
      Oooof, thank you for catching this. This is what I get for writing spec and API before the implementation (which, to be fair, is usually the right order not to lose sight of the broader picture).<p>Sorry for the confusion, it&#x27;s indeed the §6.1 binary format. I corrected the spec and post not to claim it&#x27;s CBOR.
    • masklinn4 hours ago
      The article does not say it’s storing the authenticator data (in the format the webauthn spec specifies), it says it’s storing (most of) <i>the fields</i> in cbor. So it’s using the webauthn reference for logical purposes (the names and types of fields) not physical (the encoding).
  • cadamsdotcom8 hours ago
    Ok so we are achieving interoperability by turning passkeys into strings.<p>You know what it&#x27;s called when you store a secret string in your password manager?<p>A password.
    • gnabgib8 hours ago
      &gt; You know what it&#x27;s called when you store a secret string in your password manager?<p>You keep changing your comment, but on the off chance you&#x27;re still throwing shade.. Filippo probably wrote your password manager (or the code it runs, or the code your docker&#x2F;kube system runs), and the decoder on the other end.
    • fastest9636 hours ago
      The user still needs to provide proof that they own the passkey in order to login. It&#x27;s not like someone could hack the website, steal the &quot;string&quot; and use it to login.
    • miloignis8 hours ago
      That&#x27;s his point - he&#x27;s demonstrating a proposed standard that would make storing passkeys server-side almost as easy as passwords.