Skip to content

Commit e005376

Browse files
committed
Add COSE/JOSE Algorithms Support - Address issue #64
Signed-off-by: Fabrizio Damato <[email protected]>
1 parent d4adfb1 commit e005376

File tree

2 files changed

+103
-2
lines changed

2 files changed

+103
-2
lines changed

specifications/ietf-eat-profile/bibliography.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,10 @@ references:
5555
year: 2020
5656
month: 12
5757
url: "https://datatracker.ietf.org/doc/html/rfc8949"
58+
- id: "ietf-cose-dilithium"
59+
title: "ML-DSA for JOSE and COSE"
60+
publisher: "IETF"
61+
issued:
62+
year: 2025
63+
month: 9
64+
url: "https://datatracker.ietf.org/doc/draft-ietf-cose-dilithium/"

specifications/ietf-eat-profile/spec.ocp

Lines changed: 96 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ and provide the minimum necessary information for verifier appraisal policies:
185185
* This claim is used by the attester to identify the profile. It **MUST** be present and **SHALL** contain the OID assigned to the OCP Profile. **TODO: OCP to assign OID Value**
186186

187187
6. **Measurements** (claim key: 273, encoded as 0x190111)
188-
* This claim is used by the attester to present the target environment claims that verifier will consume for the appraisal policy. It **MUST** be present and **SHALL** encapsulate a "concise-evidence" as a serialized CBOR byte string using the appropriate IANA media type. The serialized concise-evidence **SHALL NOT** exceed 128kB in size.
188+
* This claim is used by the attester to present the target environment claims that verifier will consume for the appraisal policy. It **MUST** be present and **SHALL** encapsulate a "concise-evidence" as a serialized CBOR byte string using the appropriate IANA media type.
189189

190190
**Optional Claims (7-14)**: These claims are **OPTIONAL** and provide additional
191191
platform information that may be useful for audit purposes but are not strictly
@@ -267,7 +267,101 @@ Additionally, an Attester has the option to include a complete certificate path
267267
within the x5-chain, extending from a recognized Trusted Anchor (such as a
268268
Vendor Root CA) or up to the Initial Device Identity (IDEVID).
269269

270-
The signed-cwt CDDL is defined in the following manner:
270+
## COSE Algorithm Requirements
271+
272+
This profile defines specific cryptographic algorithms that **MUST** be
273+
supported for CWT signing to ensure interoperability and appropriate security
274+
levels for data center environments.
275+
276+
### Supported Algorithms
277+
278+
Implementations of this profile **SHALL** support **one** of the
279+
following COSE algorithms for the COSE_Sign1 signature:
280+
281+
1. **ECDSA with P-384 and SHA-384** (COSE Algorithm ID: -51)
282+
* **Algorithm**: ES384 as defined in [@{ietf-rfc9052}]
283+
* **Curve**: NIST P-384
284+
* **Hash**: SHA-384
285+
* **Key Size**: 384 bits
286+
* **Security Level**: 192-bit classical security
287+
* **Signature Size**: ~96 bytes
288+
* **Public Key Size**: 97 bytes (uncompressed point)
289+
* **Private Key Size**: 48 bytes
290+
* **Status**: **REQUIRED** - Implementations MUST support either this
291+
algorithm or ML-DSA-87
292+
293+
2. **ML-DSA-87** (COSE Algorithm ID: -50)
294+
* **Algorithm**: ML-DSA-87 (FIPS 204) as defined in
295+
[@{ietf-cose-dilithium}]
296+
* **Security Level**: Category 5 (256-bit classical, 128-bit quantum)
297+
* **Signature Size**: ~4,627 bytes
298+
* **Public Key Size**: 2,592 bytes
299+
* **Private Key Size**: 4,896 bytes
300+
* **Hash**: SHAKE256
301+
* **Status**: **REQUIRED** - Implementations MUST support either this
302+
algorithm or ECDSA-P384
303+
304+
305+
### Algorithm Selection Guidelines
306+
307+
**Default Algorithm**: Implementations **SHOULD** use ECDSA-P384 as the
308+
default signing algorithm unless specifically configured otherwise or when
309+
post-quantum security is explicitly required.
310+
311+
**Algorithm Negotiation**: When both algorithms are supported, the choice
312+
of algorithm **SHALL** be determined by:
313+
314+
1. Verifier policy requirements
315+
2. Attester capabilities
316+
3. Deployment security requirements (classical vs. post-quantum)
317+
4. Size constraints and bandwidth considerations
318+
319+
**Certificate Chain Consistency**: The algorithm used for CWT signing
320+
**SHOULD** be consistent with the algorithm used in the Attestation Key
321+
certificate chain, though this is not strictly required.
322+
323+
### Size Implications
324+
325+
Implementations **MUST** account for the following signature size
326+
implications when calculating total CWT size against the 64kB limit:
327+
328+
* **ECDSA-P384**: ~96 bytes signature size
329+
* **ML-DSA-87**: ~4,627 bytes signature size
330+
331+
**Note**: When using ML-DSA-87, implementors should carefully consider the
332+
available space for claims and certificate chains within the 64kB total
333+
size limit. The large signature size may necessitate more compact
334+
certificate chains or reduced optional claims.
335+
336+
### COSE Header Requirements
337+
338+
The COSE_Sign1 protected header **MUST** include:
339+
340+
* **alg** (label 1): The COSE algorithm identifier (-35 for ES384 or -50
341+
for ML-DSA-87)
342+
* Additional algorithm-specific parameters as required by the chosen
343+
algorithm
344+
345+
The COSE_Sign1 unprotected header **MUST** include:
346+
347+
* **x5chain** (label 33): Certificate chain as specified in the main
348+
specification
349+
350+
### Implementation Notes
351+
352+
**Interoperability**: Attesters **MAY** choose which algorithm to use
353+
based on their capabilities and deployment requirements.
354+
355+
**Migration Path**: The dual algorithm support provides a clear migration
356+
path from classical to post-quantum cryptography while maintaining current
357+
security levels during the transition period.
358+
359+
### Future Algorithm Support
360+
361+
This profile may be updated to include additional COSE algorithms as they
362+
become standardized and relevant for data center attestation use cases.
363+
Any future algorithm additions will maintain backward compatibility with
364+
existing implementations.
271365

272366
## Concise Evidence
273367

0 commit comments

Comments
 (0)