-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Smaller keyhandle length #8
Conversation
@szszszsz Is my understanding correct that this change is backwards-compatible because we can still deserialize the old key handles that include the now absent fields? |
That's correct. This should not affect previous registrations at all. What's left is to make sure, if the extension fields can be safely skipped, or do they need to be encoded, and checked on assertion getting with the browser's request. By the way, here are my notes from testing the key handles' lengths:
|
9396680
to
c9c70c3
Compare
Remove some fields from credential data serialization while making credential ID. Reduces key handle size by around 30% (from ~320 to ~220). Tested on Gitlab, and this patch makes it working correctly (both registering and signing, as opposed to 500 error code returned otherwise). Presumably the hidden limit is 255 bytes, which would be compatible with CTAP1. Related: trussed-dev#8
Note: we have reports that this is not backwards compatible for some users. |
Some services do not accept arbitrary long key handle (aka Credential ID), which makes the FIDO operations failing. This patch removes some fields from credential data serialization while making credential ID, and with this it reduces key handle size by around 30% (from ~320 to ~220 using test site [1]). Tested on Gitlab, and this patch makes it working correctly (both registering and signing, as opposed to 500 error code returned otherwise). Presumably the hidden limit is 255 bytes, which would be compatible with CTAP1. Resident Keys stay the same, with full metadata stored on the device. [1] webauthn.bin.coffee
c9c70c3
to
ade608c
Compare
Rebased on |
Closing this PR in favor of a major rework (which includes your ID shortening). |
Remove some fields from credential data serialization while making credential ID.
Reduces key handle size by around 30% (from ~320 to ~220). Tested on Gitlab, and this patch makes it working correctly (both registering and signing, as opposed to 500 error code returned otherwise).
Presumably the hidden limit is 255 bytes, which would be compatible with CTAP1.
cc @jans23 @robin-nitrokey
To do: