diff --git a/index.bs b/index.bs
index b48165267..211680cf5 100644
--- a/index.bs
+++ b/index.bs
@@ -6015,6 +6015,13 @@ a numbered step. If outdented, it (today) is rendered as a bullet in the midst o
- Otherwise, use the X.509 certificates returned as the [=attestation trust path=] from the [=verification procedure=]
to verify that the attestation public key either correctly chains up to an acceptable root certificate, or is itself an acceptable certificate
(i.e., it and the root certificate obtained in [step 22](#reg-ceremony-attestation-trust-anchors) may be the same).
+
+ If the attestation statement is not deemed trustworthy, the [=[RP]=] SHOULD fail the [=registration ceremony=].
+
+ NOTE: However, if permitted by policy, the [=[RP]=] MAY register the [=credential ID=] and credential public key but treat the
+ credential as one with [=self attestation=] (see [[#sctn-attestation-types]]). If doing so, the [=[RP]=] is asserting there
+ is no cryptographic proof that the [=public key credential=] has been generated by a particular [=authenticator=] model.
+ See [[FIDOSecRef]] and [[UAFProtocol]] for a more detailed discussion.
1. Verify that the [=credentialId=]
is ≤ 1023 bytes. Credential IDs larger than this many bytes SHOULD cause the RP to fail this [=registration ceremony=].
@@ -6023,11 +6030,8 @@ a numbered step. If outdented, it (today) is rendered as a bullet in the midst o
NOTE: The rationale for [=[RPS]=] rejecting duplicate [=credential IDs=] is as follows: [=credential IDs=] contain sufficient entropy that accidental duplication is very unlikely. However, [=attestation types=] other than [=self attestation=] do not include a self-signature to explicitly prove possession of the [=credential private key=] at [=registration=] time. Thus an attacker who has managed to obtain a user's [=credential ID=] and [=credential public key=] for a site (this could be potentially accomplished in various ways), could attempt to register a victim's credential as their own at that site. If the [=[RP]=] accepts this new registration and replaces the victim's existing credential registration, and the [=discoverable credentials|credentials are discoverable=], then the victim could be forced to sign into the attacker's account at their next attempt. Data saved to the site by the victim in that state would then be available to the attacker.
-
|pkOptions|.{{PublicKeyCredentialCreationOptions/user}}
,
- with the following contents:
+ |pkOptions|.{{PublicKeyCredentialCreationOptions/user}}
+ and continue the [=registration ceremony=] as appropriate.
+ Otherwise, fail the [=registration ceremony=].
- NOTE: However, if permitted by policy, the [=[RP]=] MAY register the [=credential ID=] and credential public key but treat the
- credential as one with [=self attestation=] (see [[#sctn-attestation-types]]). If doing so, the [=[RP]=] is asserting there
- is no cryptographic proof that the [=public key credential=] has been generated by a particular [=authenticator=] model.
- See [[FIDOSecRef]] and [[UAFProtocol]] for a more detailed discussion.
Verification of [=attestation objects=] requires that the [=[RP]=] has a trusted method of determining acceptable trust anchors
in [step 22](#reg-ceremony-attestation-trust-anchors) above.
@@ -6251,20 +6253,6 @@ a numbered step. If outdented, it (today) is rendered as a bullet in the midst o
- |credentialRecord|.[$credential record/signCount$]
to the value of |authData|.[=authData/signCount=]
.
- 1. Update |credentialRecord|.[$credential record/backupState$]
to the value of |currentBs|.
- 1. If |credentialRecord|.[$credential record/uvInitialized$]
is [FALSE],
- update it to the value of the [=authData/flags/UV=] bit in the [=flags=] in |authData|.
- This change SHOULD require authorization by an additional [=authentication factor=] equivalent to WebAuthn [=user verification=];
- if not authorized, skip this step.
-
- If the [=[RP]=] performs additional security checks beyond these WebAuthn [=authentication ceremony=] steps,
- the above state updates SHOULD be deferred to after those additional checks are completed successfully.
- |credentialRecord|.[$credential record/signCount$]
to the value of |authData|.[=authData/signCount=]
.
+ 1. Update |credentialRecord|.[$credential record/backupState$]
to the value of |currentBs|.
+ 1. If |credentialRecord|.[$credential record/uvInitialized$]
is [FALSE],
+ update it to the value of the [=authData/flags/UV=] bit in the [=flags=] in |authData|.
+ This change SHOULD require authorization by an additional [=authentication factor=] equivalent to WebAuthn [=user verification=];
+ if not authorized, skip this step.
+
+ If the [=[RP]=] performs additional security checks beyond these WebAuthn [=authentication ceremony=] steps,
+ the above state updates SHOULD be deferred to after those additional checks are completed successfully.
+