From bd15e8bdfad1becc7c7be606bcf83b4b09862791 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 12 Jul 2023 12:57:42 -0600 Subject: [PATCH 1/6] Initial packed enterprise attestation requirements. --- index.bs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index c0d33b9dd..089b37123 100644 --- a/index.bs +++ b/index.bs @@ -5750,7 +5750,7 @@ implementable by [=authenticators=] with limited resources (e.g., secure element [=attestation trust path=]. -### Packed Attestation Statement Certificate Requirements ### {#sctn-packed-attestation-cert-requirements} +### Certificate Requirements for Packed Attestation Statements ### {#sctn-packed-attestation-cert-requirements} The attestation certificate MUST have the following fields/extensions: @@ -5787,6 +5787,21 @@ The attestation certificate MUST have the following fields/extensions: are both OPTIONAL as the status of many attestation certificates is available through authenticator metadata services. See, for example, the FIDO Metadata Service [[FIDOMetadataService]]. +### Certificate Requirements for Enterprise Packed Attestation Statements ### {#sctn-enterprise-packed-attestation-cert-requirements} + +There are two potential sources for Enterprise Attestestations in Packed format: + +1. From a hardware device which is manufactured with a device-specific attestation statement and key +2. Via a provisioned attestation statement, such as with a platform authenticator configured via managed policy + +For attestation statements provisioned at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) +MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. + +For attestation statements provisioned at manufacturing, the extension OID `1.3.6.1.4.1.45724.1.1.5` (`id-fido-gen-ce-fw-version`) +MUST be present, containing an unsigned INTEGER which is incremented for new firmware release versions. The extension MUST NOT be marked as critical. + +As enterprise attestations are normally consumed by relying parties which are looking for particular authenticators, +there MAY be additional extensions used to convey information based on prior agreement. ## TPM Attestation Statement Format ## {#sctn-tpm-attestation} From 6298db7ecdceb639e63037d5729edce86bfe049b Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 30 Aug 2023 12:37:46 -0600 Subject: [PATCH 2/6] Remove non-enterprise sepcific firmware version This is separately proposed for general packed attestation verification. --- index.bs | 3 --- 1 file changed, 3 deletions(-) diff --git a/index.bs b/index.bs index 089b37123..05a4b88a3 100644 --- a/index.bs +++ b/index.bs @@ -5797,9 +5797,6 @@ There are two potential sources for Enterprise Attestestations in Packed format: For attestation statements provisioned at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. -For attestation statements provisioned at manufacturing, the extension OID `1.3.6.1.4.1.45724.1.1.5` (`id-fido-gen-ce-fw-version`) -MUST be present, containing an unsigned INTEGER which is incremented for new firmware release versions. The extension MUST NOT be marked as critical. - As enterprise attestations are normally consumed by relying parties which are looking for particular authenticators, there MAY be additional extensions used to convey information based on prior agreement. From d57cd65cd43cb686f52a0f225b62a26e51855904 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 6 Sep 2023 12:33:04 -0600 Subject: [PATCH 3/6] abbreviate and link "RPs" Co-authored-by: Emil Lundberg --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 05a4b88a3..cec3a0f26 100644 --- a/index.bs +++ b/index.bs @@ -5797,7 +5797,7 @@ There are two potential sources for Enterprise Attestestations in Packed format: For attestation statements provisioned at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. -As enterprise attestations are normally consumed by relying parties which are looking for particular authenticators, +As enterprise attestations are normally consumed by [=[RPS]=] which are looking for particular authenticators, there MAY be additional extensions used to convey information based on prior agreement. ## TPM Attestation Statement Format ## {#sctn-tpm-attestation} From c294f84caf7dad88149d26decf86fe3b85bb5777 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 27 Mar 2024 11:51:27 -0600 Subject: [PATCH 4/6] Update per agl editorial comments --- index.bs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.bs b/index.bs index cf68c5114..a644b7266 100644 --- a/index.bs +++ b/index.bs @@ -5874,10 +5874,10 @@ The attributes above are structured within this certificate as such: ### Certificate Requirements for Enterprise Packed Attestation Statements ### {#sctn-enterprise-packed-attestation-cert-requirements} -There are two potential sources for Enterprise Attestestations in Packed format: +There are two potential sources for Enterprise Attestations in Packed format. -1. From a hardware device which is manufactured with a device-specific attestation statement and key -2. Via a provisioned attestation statement, such as with a platform authenticator configured via managed policy +1. Attestation statements from a hardware device, which was manufactured with the statement and a corresponding private key. +2. Attestation statements which have been provisioned, such as a platform authenticator configured via managed policy. For attestation statements provisioned at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. From 9212bc492a2d5b303b93e7b107b26d81c835e0a5 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 27 Mar 2024 12:01:01 -0600 Subject: [PATCH 5/6] Lowercase enterprise attestation in text. Enterprise attestation is used elsewhere without capitalization, and it could be said to be a characteristic and not a format like Packed. Change "provisioned at manufacturing" to "provided at manufacturing" to clarify difference from MDM-provisioned attestations. --- index.bs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index a644b7266..ba9b53e0b 100644 --- a/index.bs +++ b/index.bs @@ -5874,12 +5874,12 @@ The attributes above are structured within this certificate as such: ### Certificate Requirements for Enterprise Packed Attestation Statements ### {#sctn-enterprise-packed-attestation-cert-requirements} -There are two potential sources for Enterprise Attestations in Packed format. +There are two potential sources for enterprise attestations in Packed format. 1. Attestation statements from a hardware device, which was manufactured with the statement and a corresponding private key. 2. Attestation statements which have been provisioned, such as a platform authenticator configured via managed policy. -For attestation statements provisioned at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) +For attestation statements provided at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. As enterprise attestations are normally consumed by [=[RPS]=] which are looking for particular authenticators, From 39733f08b59471c641abc458bd60fd05662bc704 Mon Sep 17 00:00:00 2001 From: David Waite Date: Wed, 18 Sep 2024 12:50:25 -0600 Subject: [PATCH 6/6] Added simplified text based on feedback --- index.bs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/index.bs b/index.bs index f389f1f77..bba005757 100644 --- a/index.bs +++ b/index.bs @@ -3871,7 +3871,7 @@ Note: The {{AttestationConveyancePreference}} enumeration is deliberately not re :: The [=[RP]=] wants to receive the [=attestation statement=] as generated by the [=authenticator=]. : enterprise - :: The [=[RP]=] wants to receive an [=attestation statement=] that may include uniquely identifying information. This is intended for controlled deployments within an enterprise where the organization wishes to tie registrations to specific authenticators. User agents MUST NOT provide such an attestation unless the user agent or authenticator configuration permits it for the requested [=RP ID=]. + :: The [=[RP]=] wants to receive an enterprise attestation, which is an [=attestation statement=] that may include information which uniquely identifies the authenticator. This is intended for controlled deployments within an enterprise where the organization wishes to tie registrations to specific authenticators. User agents MUST NOT provide such an attestation unless the user agent or authenticator configuration permits it for the requested [=RP ID=]. If permitted, the user agent SHOULD signal to the authenticator (at [invocation time](#CreateCred-InvokeAuthnrMakeCred)) that enterprise attestation is requested, and convey the resulting [=/AAGUID=] and [=attestation statement=], unaltered, to the [=[RP]=]. @@ -6460,16 +6460,7 @@ The attributes above are structured within this certificate as such: ### Certificate Requirements for Enterprise Packed Attestation Statements ### {#sctn-enterprise-packed-attestation-cert-requirements} -There are two potential sources for enterprise attestations in Packed format. - -1. Attestation statements from a hardware device, which was manufactured with the statement and a corresponding private key. -2. Attestation statements which have been provisioned, such as a platform authenticator configured via managed policy. - -For attestation statements provided at manufacturing, the Extension OID `1.3.6.1.4.1.45724.1.1.2` (`id-fido-gen-ce-sernum`) -MUST be present, containing a unique serial number for the device as an OCTET STRING. The extension MUST NOT be marked as critical. - -As enterprise attestations are normally consumed by [=[RPS]=] which are looking for particular authenticators, -there MAY be additional extensions used to convey information based on prior agreement. +The Extension OID `1.3.6.1.4.1.45724.1.1.2` ( `id-fido-gen-ce-sernum` ) MAY additionally be present in packed attestations for enterprise use. If present, this extension MUST indicate a unique octet string value per device against a particular AAGUID. This value MUST remain constant through factory resets, but MAY be distinct from any other serial number or other hardware identifier associated with the device. This extension MUST NOT be marked as critical, and the corresponding value is encoded as an OCTET STRING. This extension MUST NOT be present in non-enterprise attestations. ## TPM Attestation Statement Format ## {#sctn-tpm-attestation}