Skip to content

Commit adf7a95

Browse files
authored
Merge pull request #2134 from w3c/issue-2132-obsolete-privacy-cons
Update obsolete privacy concerns about throwing errors early
2 parents 199dcda + e0fb9b2 commit adf7a95

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

index.bs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2234,9 +2234,7 @@ a numbered step. If outdented, it (today) is rendered as a bullet in the midst o
22342234
</dl>
22352235
</li>
22362236

2237-
1. Throw a "{{NotAllowedError}}" {{DOMException}}. In order to prevent information leak that could identify the
2238-
user without [=user consent|consent=], this step MUST NOT be executed before |lifetimeTimer| has expired. See
2239-
[[#sctn-make-credential-privacy]] for details.
2237+
1. Throw a "{{NotAllowedError}}" {{DOMException}}.
22402238

22412239
During the above process, the user agent SHOULD show some UI to the user to guide them in the process of selecting and
22422240
authorizing an authenticator. When <code>|options|.{{CredentialCreationOptions/mediation}}</code> is set to {{CredentialMediationRequirement/conditional}}, prominent modal UI should <i>not</i> be shown <i>unless</i> credential creation was previously consented to via means determined by the user agent.
@@ -2683,9 +2681,7 @@ When this method is invoked, the user agent MUST execute the following algorithm
26832681
1. Return |constructAssertionAlg| and terminate this algorithm.
26842682
</dl>
26852683

2686-
1. Throw a "{{NotAllowedError}}" {{DOMException}}. In order to prevent information leak that could identify the
2687-
user without [=user consent|consent=], this step MUST NOT be executed before |lifetimeTimer| has expired. See
2688-
[[#sctn-assertion-privacy]] for details.
2684+
1. Throw a "{{NotAllowedError}}" {{DOMException}}.
26892685

26902686
</div>
26912687

@@ -8834,8 +8830,8 @@ credential|credentials=] listed by the [=[RP]=] in {{PublicKeyCredentialCreation
88348830
If the above cases are distinguishable, information is leaked by which a malicious [=[RP]=] could identify the user by probing for
88358831
which [=public key credential|credentials=] are available. For example, one such information leak is if the client returns a
88368832
failure response as soon as an excluded [=authenticator=] becomes available. In this case - especially if the excluded
8837-
[=authenticator=] is a [=platform authenticator=] - the [=[RP]=] could detect that the [=ceremony=] was canceled before the
8838-
timeout and before the user could feasibly have canceled it manually, and thus conclude that at least one of the [=public key
8833+
[=authenticator=] is a [=platform authenticator=] - the [=[RP]=] could detect that the [=ceremony=] was canceled
8834+
before the user could feasibly have canceled it manually, and thus conclude that at least one of the [=public key
88398835
credential|credentials=] listed in the {{PublicKeyCredentialCreationOptions/excludeCredentials}} parameter is available to the user.
88408836

88418837
The above is not a concern, however, if the user has [=user consent|consented=] to create a new credential before a
@@ -8854,12 +8850,18 @@ key credential|credential=] is listed by the [=[RP]=] in {{PublicKeyCredentialRe
88548850
- A named [=public key credential|credential=] is available, but the user does not [=user consent|consent=] to use it.
88558851

88568852
If the above cases are distinguishable, information is leaked by which a malicious [=[RP]=] could identify the user by probing
8857-
for which [=public key credential|credentials=] are available. For example, one such information leak is if the client returns a
8858-
failure response as soon as the user denies [=user consent|consent=] to proceed with an [=authentication ceremony=]. In this
8859-
case the [=[RP]=] could detect that the [=ceremony=] was canceled by the user and not the timeout, and thus conclude that at least
8853+
for which [=public key credential|credentials=] are available.
8854+
For example, one such information leak may happen if the client displays instructions and controls
8855+
for canceling or proceeding with the [=authentication ceremony=]
8856+
only after discovering an [=authenticator=] that [=contains=] a named [=credential=].
8857+
In this case, if the [=[RP]=] is aware of this [=client=] behavior,
8858+
the [=[RP]=] could detect that the [=ceremony=] was canceled by the user and not the timeout, and thus conclude that at least
88608859
one of the [=public key credential|credentials=] listed in the {{PublicKeyCredentialRequestOptions/allowCredentials}} parameter is
88618860
available to the user.
88628861

8862+
This concern may be addressed by displaying controls allowing the user to cancel an [=authentication ceremony=] at any time,
8863+
regardless of whether any named [=credentials=] are available.
8864+
88638865

88648866
### Privacy Between Operating System Accounts ### {#sctn-os-account-privacy}
88658867

0 commit comments

Comments
 (0)