-
Notifications
You must be signed in to change notification settings - Fork 172
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
Clarify how the given origin in the ClientDataJSON matches to the expected one #1889
Comments
RFC3986 normalization methods such as Section 6.2.2 Syntax-Based Normalization (specifically point 1 as I don't believe the other points apply to the origin portion of a URI), Section 6.2.3 Scheme-Based Normalization, and Section 6.2.4 Protocol-Based Normalization are probably the most appropriate normalization types to use (in order of importance). Theoretically a simple string comparison with case normalization is probably the most appropriate minimum requirement. |
Is the issue that strings may not be normalized by the client? I guess I'm not understanding how this process needs to be defined more robustly. |
@MasterKale |
I think there is also some level of user interaction with the consistency of the strings on RP side. For example the administrator may not provide a string consistent with the value the client does. The developer implementing the RP would realistically be expected to account for this in some way. |
Should't |
I agree with @Kieun, the spec is too vague about origin matching. It references web origin RFC6454, but it doesn't mandate the origin to be a web origin. This allows, for example, Android native API to send The spec should say that both client and RP origins must be web origins, if that's the case, and the origin matching should be done the same way RP ID matching is done. If it is not the case, and the origin can be just a string, then explicitly specify matching rules for such strings, i.e. string equality, binary equality, etc. If there are some constraints for the origin values, specify them as well. Back to my example. Is If the phishing-resistance promise of WebAuthn is based on the origin (and RP ID), we should be very specific about origin matching. |
Yes, this is a valid origin for an app on Android.
RP's need to ensure that the origin included in clientData is an expected origin during verification. |
Does it mean the rule should say "RP origin list must contain the clientData origin; values are compared using string equality."? And case-sensitivity would be different for web vs other types of origins, I presume. |
The term |
|
Proposed Change
In the spec, there are multiple occurrence around origin matching.
For example, in section 7.1. Registering a New Credential, there is a following step.
Some of implementations in OSS just maintain list of acceptable origins and simply compares the given origin with the list by simply text equality.
It would be better to explain or add text about the matching logic in more detail.
The text was updated successfully, but these errors were encountered: