Sign in

Libre University uses your GitHub account. Signing in is only needed to sit a final test, so the score is kept on your profile.

Passkeys and WebAuthn

1.[3p]

What does the authenticator actually sign during an authentication ceremony?

Correct
The answer is: The raw authenticatorData bytes followed by SHA-256 of the clientDataJSON
The answer is: The raw authenticatorData bytes followed by SHA-256 of the clientDataJSON
The answer is: The raw authenticatorData bytes followed by SHA-256 of the clientDataJSON

2.[3p]

authenticatorData is rpIdHash, then flags, then the signature counter. How many bytes is it when no attested credential data or extensions follow?

CorrectNot quite: 37

3.[3p]

A flags byte of 0x41 arrives at registration. Which bits are set?

Correct
The answer is: UP and AT, so the user was present but not verified
The answer is: UP and AT, so the user was present but not verified
The answer is: UP and AT, so the user was present but not verified

4.[3p]

Why can a phishing page on examp1e.com not obtain a usable signature for example.com?

Select all that apply

Correct
Correct
Correct
The answer is: The browser only offers credentials whose relying party identifier matches the current domain, The browser writes the real origin into clientDataJSON and the authenticator signs over it, The user has no secret to type, so there is nothing to hand over

5.[2p]

Comparing clientData.origin with endsWith("example.com") is an acceptable origin check.

The answer is: False
Correct

6.[3p]

Match each part of the verification checklist to what it establishes.

  • Exact origin equality

  • rpIdHash against SHA-256 of your domain

  • Challenge equals the stored one

  • UV flag set

  • a biometric or PIN was checked, so there are two factors

  • the authenticator signed for your relying party

  • this is not a replayed signature

  • the ceremony ran on your site and not a lookalike

Show the answer

Exact origin equality: the ceremony ran on your site and not a lookalike rpIdHash against SHA-256 of your domain: the authenticator signed for your relying party Challenge equals the stored one: this is not a replayed signature UV flag set: a biometric or PIN was checked, so there are two factors

7.[3p]

Why does crypto.subtle.verify reject a WebAuthn ES256 signature that was passed through unchanged?

Correct
The answer is: WebAuthn returns the signature DER encoded and Web Crypto expects the raw 64-byte r and s
The answer is: WebAuthn returns the signature DER encoded and Web Crypto expects the raw 64-byte r and s
The answer is: WebAuthn returns the signature DER encoded and Web Crypto expects the raw 64-byte r and s

8.[3p]

What does a discoverable credential make possible that a non-discoverable one does not?

Correct
The answer is: Signing in with no username, since the authenticator returns the user handle itself
The answer is: Signing in with no username, since the authenticator returns the user handle itself
The answer is: Signing in with no username, since the authenticator returns the user handle itself

9.[3p]

Why has the signature counter largely stopped detecting cloned credentials?

Correct
The answer is: Synced passkeys report zero every time, because one counter cannot be kept across several devices
The answer is: Synced passkeys report zero every time, because one counter cannot be kept across several devices
The answer is: Synced passkeys report zero every time, because one counter cannot be kept across several devices