Skip to content

Commit 50a3128

Browse files
author
nedmsmith
committed
Update spec to reflect cddl changes
Added option map to attest-key and identity triples to include conditions for mkey and authorized-by
1 parent bfa4cfd commit 50a3128

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

draft-ietf-rats-corim.md

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ The first `series` entry that successfully matches the `selection` criteria term
12121212

12131213
A Device Identity triple (`identity-triples` in {{sec-comid-triples}}) relates one or more cryptographic keys to a device identity.
12141214
The identity keys are bound to or associated with a Target Environment (as identified by `environment` and `mkey`—see below) within the device.
1215-
The identity keys may be asserted via Evidence or Reference Values.
1215+
The identity keys may be asserted via Evidence, Reference Values, or Endorsements.
12161216

12171217
The device identity keys may have been used to authenticate the Attester device or may be held in reserve for use at a later time.
12181218

@@ -1224,9 +1224,9 @@ Additional details about how a key was provisioned or is protected may be assert
12241224

12251225
Depending on key formatting, as defined by `$crypto-key-type-choice`, the Verifier may take different steps to locate and verify the key.
12261226

1227-
If a key has usage restrictions that limit its use to device identity challenges, Verifiers SHOULD check for key use that violates key use restrictions.
1227+
If a key has usage restrictions that limit its use to device identity challenges, Verifiers SHOULD enforce key use restrictions.
12281228

1229-
Each successful verification of a key in `key-list` SHALL produce Endorsement Claims that are added to the ACS.
1229+
Each successful verification of a key in `key-list` SHALL produce Endorsement Claims that are added to the Attester's Claim set.
12301230
Claims are asserted with the joint authority of the Endorser (CoRIM signer) and the Verifier.
12311231
Additionally, Verifiers MAY report key verification results as part of an error reporting function.
12321232

@@ -1237,19 +1237,19 @@ Additionally, Verifiers MAY report key verification results as part of an error
12371237
* `environment`: An `environment-map` condition used to identify the target Evidence or Reference Value.
12381238
See {{sec-environments}}.
12391239

1240-
* `mkey`: An optional `$measured-element-type-choice` condition used to identify the element within the target Evidence or Reference Value.
1241-
See {{sec-comid-mkey}}.
1242-
12431240
* `key-list`: A list of `$crypto-key-type-choice` keys that identifies which keys are to be verified.
12441241
See {{sec-crypto-keys}}.
12451242

1246-
* `authority-list`: An optional list of `$crypto-key-type-choice` keys that identifies the authorities that asserted the `key-list` in the target Evidence or Reference Values.
1243+
* `mkey`: An optional `$measured-element-type-choice` condition used to identify the element within the target Evidence or Reference Value.
1244+
See {{sec-comid-mkey}}.
1245+
1246+
* `authorized-by`: An optional list of `$crypto-key-type-choice` keys that identifies the authorities that asserted the `key-list` in the target Evidence or Reference Values.
12471247

12481248
#### Attest Key Triple {#sec-comid-triple-attest-key}
12491249

12501250
An Attest Key triple (`attest-key-triples` in {{sec-comid-triples}}) relates one or more cryptographic keys to an Attesting Environment (as identified by `environment` and `mkey`).
12511251
The cryptographic attestation keys are wielded by an Attesting Environment.
1252-
Attestation keys may be asserted via Evidence or Reference Values.
1252+
Attestation keys may be asserted via Evidence, Reference Values, or Endorsements.
12531253

12541254
The attestation keys may have been used to sign Evidence or may be held in reserve for use at a later time.
12551255

@@ -1263,7 +1263,7 @@ Depending on key formatting, as defined by `$crypto-key-type-choice`, the Verifi
12631263
If a key has usage restrictions that limits its use to Evidence signing (e.g., see Section 5.1.5.3 in [DICE.cert]).
12641264
Verifiers SHOULD enforce key use restrictions.
12651265

1266-
Each successful verification of a key in `key-list` SHALL produce Endorsement Claims that are added to the ACS.
1266+
Each successful verification of a key in `key-list` SHALL produce Endorsement Claims that are added to the Attester's Claim set.
12671267
Claims are asserted with the joint authority of the Endorser (CoRIM signer) and the Verifier.
12681268
Additionally, Verifiers MAY report key verification results as part of an error reporting function.
12691269

@@ -2023,8 +2023,6 @@ The selected tags are mapped to an internal representation, making them suitable
20232023

20242024
##### Key Verification Triples Transformation {#sec-end-trans-kvt}
20252025

2026-
[^issue] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/330
2027-
20282026
The following transformation steps are applied for both the `identity-triples` and `attest-key-triples`:
20292027

20302028
{:kvt-enum: counter="ckvt" style="format Step %d."}
@@ -2041,11 +2039,11 @@ The following transformation steps are applied for both the `identity-triples` a
20412039
{: kvt2-enum}
20422040
* **copy**(`environment-map`, `ev`.`condition`.`environment`.`environment-map`).
20432041

2044-
* If populated, **copy**(`mkey`, `ev`.`condition`.`element-list`.`element-map`.`element-id`).
2045-
20462042
* **copy**(`key-list`, `ev`.`condition`.`element-list`.`element-map`.`element-claims`.`measurement-values-map`.`cryptokeys`).
20472043

2048-
* If populated, **copy**(`authority-list`, `ev`.`condition`.`authority`).
2044+
* If populated, **copy**(`mkey`, `ev`.`condition`.`element-list`.`element-map`.`element-id`).
2045+
2046+
* If populated, **copy**(`authorized-by`, `ev`.`condition`.`authority`).
20492047

20502048
{: kvt-enum}
20512049
* The signer of the Identity or Attest Key Endorsement conceptual message is copied to the `ev`.`addition`.`authority` field.
@@ -2229,19 +2227,17 @@ Series processing terminates when the first series entry matches.
22292227
#### Processing Key Verification Endorsements {#sec-process-keys}
22302228

22312229
For each `ev` entry, the `condition` ECT is compared with an ACS ECT, where the ACS ECT `cmtype` contains either `evidence`, `reference-values`, or `endorsements`.
2232-
If the ECTs match ({{sec-match-condition-ect}}), for each key in `ev`.`condition`.`element-claims`.`measurement-values-map`.`crypto-keys`:
2230+
If the ECTs match ({{sec-match-condition-ect}}), for each _key_ in `ev`.`condition`.`element-claims`.`measurement-values-map`.`crypto-keys`:
22332231

22342232
* Verify the certificate signatures for the certification path.
22352233

22362234
* Verify certificate revocation status for the certification path.
22372235

22382236
* Verify key usage restrictions appropriate for the type of key.
22392237

2240-
[^issue] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/330
2241-
2242-
* If key verification succeeds, **extend**(`ev`.`addition`.`element-list`.`element-map`.`element-claims`.`measurement-values-map`.`cryptokeys`, key).
2238+
* If key verification succeeds, **append**(_key_, `ev`.`addition`.`element-list`.`element-map`.`element-claims`.`measurement-values-map`.`cryptokeys`).
22432239

2244-
If key verification succeeds for any key:
2240+
If key verification succeeds for any _key_:
22452241

22462242
* **copy**(`ev`.`condition`.`environment`, `ev`.`addition`.`environment`).
22472243

@@ -2251,7 +2247,9 @@ If key verification succeeds for any key:
22512247

22522248
* Add the Verifier authority `$crypto-key-type-choice` to the `ev`.`addition`.`authority` field.
22532249

2254-
Add the `addition` ECT to the ACS.
2250+
* Add the `addition` ECT to the ACS.
2251+
2252+
Otherwise, do not add the `addition` ECT to the ACS.
22552253

22562254
### Examples for optional phases 5, 6, and 7 {#sec-phases567}
22572255

@@ -2263,16 +2261,16 @@ Additionally, the creation of Attestation Results is out-of-scope for this docum
22632261
Phase 5: Verifier Augmentation
22642262

22652263
Claims related to Verifier-applied consistency checks are asserted under the authority of the Verifier.
2266-
For example, the `attest-key-triple-record` may contain a cryptographic key to which the Verifier applies certificate path construction and validation.
2267-
Validation may reveal an expired certificate.
2268-
The Verifier implementation might generate a certificate path validation exception that is handled externally, or it could generate a Claim that the certificate path is invalid.
2264+
For example, the Verifier may supply evidence freshness nonces to the Attester to be included in Evidence.
2265+
If a Verifier nonce is used, the Verifier may augment the ACS with a nonce Claim using Verifier authority.
2266+
If the Attester returns the nonce, it may also augment the ACS using Attester authority.
22692267

22702268
Phase 6: Policy Augmentation
22712269

22722270
Appraisal policy inputs could result in Claims that augment the ACS.
22732271
For example, an Appraisal Policy for Evidence may specify that if all of a collection of subcomponents satisfy a particular quality metric, the top-level component also satisfies the quality metric.
22742272
The Verifier might generate an Endorsement ECT for the top-level component that asserts a quality metric.
2275-
Details about the policy applied may also augment the ACS.
2273+
Details about the applied policy may augment the ACS.
22762274
An internal representation of policy details, based on the policy ECT, as described in {{sec-ir-policy}}, contains the environments affected by the policy with policy identifiers as Claims.
22772275

22782276
Phase 7: Attestation Results Production and Transformation

0 commit comments

Comments
 (0)