From d13f46a06ba267d9633e5f86132de8e7818faa1c Mon Sep 17 00:00:00 2001 From: Shane Weeden Date: Wed, 22 Nov 2023 10:32:57 +1000 Subject: [PATCH 1/2] Clarify validation step for packed attestation certificate for RPs. Addresses #1998 --- index.bs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index e5f847486..f917ca36a 100644 --- a/index.bs +++ b/index.bs @@ -5888,7 +5888,9 @@ The attestation certificate MUST have the following fields/extensions: - If the related attestation root certificate is used for multiple authenticator models, the Extension OID `1.3.6.1.4.1.45724.1.1.4` (`id-fido-gen-ce-aaguid`) MUST be present, containing the AAGUID as a 16-byte OCTET STRING. - The extension MUST NOT be marked as critical. + The extension MUST NOT be marked as critical. As [=Relying Parties=] may not know if the attestation root + certificate is used for multiple authenticator models, it is suggested that [=Relying Parties=] check if the extension + is present, and if it is, then validate that it contains that same AAGUID as presented in the [=attestation object=]. Note that an X.509 Extension encodes the DER-encoding of the value in an OCTET STRING. Thus, the AAGUID MUST be wrapped in two OCTET STRINGS to be valid. Here is a sample, encoded Extension structure: From 73eb670800e7129a8a15b3d1255baa8f7d7b1173 Mon Sep 17 00:00:00 2001 From: Shane Weeden Date: Wed, 29 Nov 2023 10:05:33 +1000 Subject: [PATCH 2/2] Update index.bs agreed Co-authored-by: Emil Lundberg --- index.bs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index f917ca36a..f6081d461 100644 --- a/index.bs +++ b/index.bs @@ -5888,8 +5888,10 @@ The attestation certificate MUST have the following fields/extensions: - If the related attestation root certificate is used for multiple authenticator models, the Extension OID `1.3.6.1.4.1.45724.1.1.4` (`id-fido-gen-ce-aaguid`) MUST be present, containing the AAGUID as a 16-byte OCTET STRING. - The extension MUST NOT be marked as critical. As [=Relying Parties=] may not know if the attestation root - certificate is used for multiple authenticator models, it is suggested that [=Relying Parties=] check if the extension + The extension MUST NOT be marked as critical. + + As [=[RPS]=] may not know if the attestation root + certificate is used for multiple authenticator models, it is suggested that [=[RPS]=] check if the extension is present, and if it is, then validate that it contains that same AAGUID as presented in the [=attestation object=]. Note that an X.509 Extension encodes the DER-encoding of the value in an OCTET STRING.