Skip to content

Commit 506a6fe

Browse files
Allocate OIDs for the EAT profile and derivation attributes. (#42)
* Allocate OIDs for the EAT profile and derivation attributes. Signed-off-by: Jeff Andersen <jeffandersen@google.com> * Incorporate PR feedback. Co-authored-by: Steven Bellock <sbellock@nvidia.com> --------- Signed-off-by: Jeff Andersen <jeffandersen@google.com> Co-authored-by: Steven Bellock <sbellock@nvidia.com>
1 parent c455b83 commit 506a6fe

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

specifications/device-identity-provisioning/cddl/envelope-signed-csr-eat.cddl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cwt-envelope-signed-csr-eat = {
22
; The EAT Profile for Envelope-Signed CSR OCP will register
3-
&(eat-profile : 265 ) => ~oid ; "2.16.840.1.113741.1.16.1" - note: `~` strips CBOR tag #6.111(oid) from `oid`
3+
&(eat-profile : 265 ) => ~oid ; "1.3.6.1.4.1.42623.1" - note: `~` strips CBOR tag #6.111(oid) from `oid`
44

55
; Issuer claim is StringOrURI (tstr)
66
&(iss : 1) => tstr

specifications/device-identity-provisioning/spec.ocp

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,11 @@ Table: ENVELOPE_SIGNED_CSR VendorDefinedRespPayload {#tbl:ecsr-resp}
299299
The EnvelopeSignedCSRdata shall adhere to the following requirements:
300300

301301
- The payload SHALL be an EAT encoded as a CBOR Web Token (CWT) [@{ietf-cwt}].
302-
- The EAT SHALL conform to the OCP Envelope-Signed CSR EAT profile (TODO: OCP to assign OID for this profile).
302+
- The EAT SHALL conform to the OCP Envelope-Signed CSR EAT profile (see @sec:defined-oids for the defined OID).
303303
- The EAT SHALL include standard claims for issuer identification and nonce for freshness verification.
304304
- The EAT SHALL include private claims[^private-claims] containing:
305305
- The CSR as a byte string
306-
- An array of OIDs representing the key's derivation attributes (see @sec:key-derivation-attribute-oids for defined OIDs)
306+
- An array of OIDs representing the key's derivation attributes (see @sec:defined-oids for defined OIDs)
307307
- The CSR included in the EAT SHALL be DER-encoded and may be either self-signed or non-self-signed depending on device capabilities. For non-self-signed CSRs, the signature field SHALL contain all zeroes and be the same size as would be required for a valid signature using the subject key's algorithm.
308308
- The nonce claim SHALL match the nonce value provided in the GET_ENVELOPE_SIGNED_CSR request to ensure freshness.
309309
- If SignerSlotIDParam indicates a signed envelope, the CWT SHALL be signed by an Attestation Key endorsed by the certificate chain corresponding to the specified SlotID. In addition, the unprotected header of the CWT SHALL contain the Attestation Key's certificate chain, including at least all certificates from the Attestation Key up to the identity certificate issued by the slot's PKI owner.
@@ -312,17 +312,25 @@ The EnvelopeSignedCSRdata shall adhere to the following requirements:
312312

313313
[^private-claims]: RFC 8392 [@{ietf-cwt}] defines a private claim as one whose key value has an integer value < -65536.
314314

315-
### Key Derivation Attribute OIDs {#sec:key-derivation-attribute-oids}
315+
### Defined OIDs {#sec:defined-oids}
316+
317+
**OCP Security Branch**: `ocp-security OBJECT IDENTIFIER ::= {1 3 6 1 4 1 42623 1}`
318+
319+
**Envelope-signed EAT profile OID**: `ocp-security-dip-eat-profile OBJECT IDENTIFIER ::= {ocp-security 1}`
320+
321+
**Key Derivation Attribute OID Branch**: `ocp-security-dip-kda OBJECT IDENTIFIER ::= {ocp-security 2}`
316322

317323
The following OIDs are defined for key derivation attributes:
318324

319-
- **Derived from Owner Entropy Fuse** - (TODO: OCP to assign OID)
320-
- **Derived from First Mutable Code** - (TODO: OCP to assign OID)
321-
- **Derived from Non-First Mutable Code** - (TODO: OCP to assign OID)
322-
- **Derived from Owner Provisioned Key** - (TODO: OCP to assign OID)
325+
- **Derived from Owner Entropy Fuse**: `ocp-security-dip-kda-OwnerEntropyFuse ::= {ocp-security-dip-kda 1}`
326+
- **Derived from First Mutable Code**: `ocp-security-dip-kda-FirstMutableCode ::= {ocp-security-dip-kda 2}`
327+
- **Derived from Non-First Mutable Code**: `ocp-security-dip-kda-NonFirstMutableCode ::= {ocp-security-dip-kda 3}`
328+
- **Derived from Owner Provisioned Key**: `ocp-security-dip-kda-OwnerProvisionedKey ::= {ocp-security-dip-kda 4}`
323329

324330
These OIDs indicate which inputs contribute to the derivation of the identity key for which the CSR is being requested.
325331

332+
Subsequent versions of this specification may be expanded with additional key derivation attribute OIDs.
333+
326334
## Issuing and provisioning an identity certificate {#sec:issuing-and-provisioning-identity-cert}
327335

328336
TODO: fill in

0 commit comments

Comments
 (0)