Skip to content

Commit 8ab1c53

Browse files
authored
Merge pull request #127 from anima-wg/low-hanging-adfruit
Low hanging adfruit
2 parents 31a04be + 9a8916d commit 8ab1c53

3 files changed

Lines changed: 50 additions & 48 deletions

File tree

draft-ietf-anima-rfc8366bis.md

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ docname: draft-ietf-anima-rfc8366bis-latest
33
stand_alone: true
44
ipr: trust200902
55
cat: std
6-
updates: 8366, 8995
6+
updates: 8995
77
obsoletes: 8366
88
consensus: 'yes'
99
pi:
@@ -83,7 +83,7 @@ normative:
8383
seriesinfo:
8484
ITU-T Recommendation X.690,: ISO/IEC 8825-1
8585
ZERO-TOUCH: RFC8572
86-
BRSKI: RFC8995
86+
RFC8995:
8787
PRM: I-D.ietf-anima-brski-prm
8888
CLOUD: I-D.ietf-anima-brski-cloud
8989
IDEVID:
@@ -146,8 +146,8 @@ The Voucher Artifact is normally generated by
146146
the Pledge's manufacturer (i.e., the Manufacturer Authorized Signing
147147
Authority (MASA)).
148148

149-
This document updates RFC8366: it includes a number of desired extensions into the YANG module.
150-
The Voucher Request YANG module defined in RFC8995 is also updated and now included in this document, as well as other YANG extensions needed for variants of BRSKI/RFC8995.
149+
This document obsoletes RFC8366: it includes a number of desired extensions into the YANG module.
150+
The Voucher Request YANG module defined in RFC8995 is also updated and now included in this document, as well as other YANG extensions needed for variants of RFC8995.
151151

152152
--- middle
153153

@@ -177,8 +177,8 @@ The collection of all these actors is collectively known as the Domain.
177177
A Voucher may be useful in several contexts, but the driving motivation herein is to support secure Onboarding mechanisms.
178178
This is accomplished by assigning an Owner to the Pledge, enabling it to authenticate the network that it is connected to.
179179

180-
{{RFC8366}} originally defined the Voucher as the only Voucher Artifact, leaving the Voucher Request that is used in BRSKI to be defined in {{BRSKI}}.
181-
This document includes both Voucher and Voucher Request, and therefore updates {{BRSKI}}.
180+
{{RFC8366}} originally defined the Voucher as the only Voucher Artifact, leaving the Voucher Request that is used in BRSKI to be defined in {{RFC8995}}.
181+
This document includes both Voucher and Voucher Request obsoleting {{RFC8366}}, and updating {{RFC8995}}.
182182

183183
YANG is not easily extended except by updating the YANG module definition.
184184
Since {{RFC8366}} was written, the common pattern is to publish YANG modules as two documents: one with only the YANG module, and the other one with usage, motivation and further explanation.
@@ -194,7 +194,7 @@ indicated lifetime.
194194
In order to support long lifetimes, this document recommends using short lifetimes with programmatic renewal, see {{renewal-over-revocation}}.
195195

196196
Some Onboarding protocols using the Voucher Artifact defined in
197-
this document include: {{ZERO-TOUCH}}, {{SECUREJOIN}}, {{BRSKI}} and {{cBRSKI}}.
197+
this document include: {{ZERO-TOUCH}}, {{SECUREJOIN}}, {{RFC8995}} and {{cBRSKI}}.
198198

199199
# Terminology
200200

@@ -211,8 +211,9 @@ Attribute:
211211

212212
Bootstrapping:
213213
: The process where a Pledge obtains cryptographic key material to identify
214-
and trust future interactions within a specific Domain network. Based on imprinted
215-
key material provided during the manufacturing process (see: Imprint).
214+
and trust future interactions within a specific Domain network.
215+
Bootstrapping is based on imprinted key material provided during the
216+
manufacturing process (see: Imprint).
216217
This term was used in {{RFC8366}}, but has been supplanted by the term Onboarding.
217218

218219
Domain:
@@ -412,23 +413,23 @@ This document obsoletes {{RFC8366}}.
412413

413414
## Attempts and motivation to extend RFC8366 {#extendfail}
414415

415-
{{RFC8366}} was published in 2018 during the development of {{BRSKI}},
416+
{{RFC8366}} was published in 2018 during the development of {{RFC8995}},
416417
{{ZERO-TOUCH}} and other work-in-progress efforts.
417418
Since then the industry has matured significantly, and the in-the-field activity which this document supports has become known as _Onboarding_ rather than _Bootstrapping_.
418419

419-
The focus of {{BRSKI}} was Onboarding of ISP and Enterprise owned wired routing and switching equipment, with IoT devices being a less important aspect.
420+
The focus of {{RFC8995}} was Onboarding of ISP and Enterprise owned wired routing and switching equipment, with IoT devices being a less important aspect.
420421
{{ZERO-TOUCH}} has focused upon Onboarding of CPE equipment like cable modems and other larger IoT devices, again with smaller IoT devices being of lesser importance.
421422

422-
Since {{BRSKI}} was published there is now a mature effort to do application-level Onboarding of constrained IoT devices defined by the Thread Group and the Fairhair Alliance (now OCF) {{fairhair}}.
423-
The {{cBRSKI}} document has defined a version of {{BRSKI}} that is usable over constrained IEEE 802.15.4 6LoWPAN networks using CoAP and DTLS, while {{?I-D.ietf-lake-authz}} provides for using CoAP and EDHOC on even more constrained devices with very constrained networks.
423+
Since {{RFC8995}} was published there is now a mature effort to do application-level Onboarding of constrained IoT devices defined by the Thread Group and the Fairhair Alliance (now OCF) {{fairhair}}.
424+
The {{cBRSKI}} document has defined a version of {{RFC8995}} that is usable over constrained IEEE 802.15.4 6LoWPAN networks using CoAP and DTLS, while {{?I-D.ietf-lake-authz}} provides for using CoAP and EDHOC on even more constrained devices with very constrained networks.
424425

425426
{{PRM}} has created a new methodology for Onboarding that does not depend upon a synchronous connection between the Pledge and the Registrar.
426427
This mechanism uses a mobile Registrar agent that works to collect and transfer signed artifacts via physical travel from one network to another.
427428

428429
Both {{cBRSKI}} and {{PRM}} require extensions to the Voucher Request and the resulting Voucher. The new Attributes are required to carry the additional data and describe the extended semantics.
429430
In addition {{cBRSKI}} uses the serialization mechanism described in {{RFC9254}} to produce significantly more compact artifacts.
430431

431-
When the process to define {{cBRSKI}} and {{PRM}} was started, there was a belief that the appropriate process was to use the {{RFC7950}} _augment_ mechanism to further extend both the Voucher Request {{BRSKI}} and Voucher {{RFC8366}} artifacts.
432+
When the process to define {{cBRSKI}} and {{PRM}} was started, there was a belief that the appropriate process was to use the {{RFC7950}} _augment_ mechanism to further extend both the Voucher Request {{RFC8995}} and Voucher {{RFC8366}} artifacts.
432433
However, {{PRM}} needs to extend an enumerated type with additional values and _augment_ can not do this, so that was initially the impetus for this document.
433434

434435
An attempt was then made to determine what would happen if one wanted to have a constrained version of the {{PRM}} Voucher Artifact.
@@ -440,12 +441,12 @@ After significant discussion the decision was made to simply roll all of the nee
440441

441442
# Updates to RFC8995
442443

443-
This document represents a merge of YANG definitions of the Voucher from {{RFC8366}}, the Voucher Request from {{BRSKI}}, and extensions to each of these from {{cBRSKI}}, {{CLOUD}} and {{PRM}}.
444+
This document represents a merge of YANG definitions of the Voucher from {{RFC8366}}, the Voucher Request from {{RFC8995}}, and extensions to each of these from {{cBRSKI}}, {{CLOUD}} and {{PRM}}.
444445
The difficulty with this approach is that the semantics of the definitions needed for the other documents are not included in this document, but rather in the respective other documents.
445446

446447
## Updates to the use of `idevid-issuer` {#updates-idevid-issuer}
447448

448-
The `voucher-request` module definition that was in {{BRSKI}} Sections 3.2 (tree diagram) and 3.4 (YANG module) is now included in this document.
449+
The `voucher-request` module definition that was in {{RFC8995}} Sections 3.2 (tree diagram) and 3.4 (YANG module) is now included in this document.
449450
There is a change to it: the '`idevid-issuer`' Attribute MUST be included in a Registrar Voucher Request (RVR).
450451
Like the '`serial-number`' value in the RVR, the '`idevid-issuer`' value in the RVR is to be taken from the Pledge's (IDevID) client certificate.
451452
In some variations of BRSKI, such as {{PRM}}, there is no direct TLS connection between Pledge and Registrar. Therefore the Pledge's IDevID certificate cannot be extracted from the TLS connection, so those variations define a different channel binding process and may deviate from the above requirement.
@@ -460,11 +461,11 @@ A Registrar MUST apply the following rules for the value of the '`idevid-issuer`
460461

461462
## Clarifications on the use of `idevid-issuer`
462463

463-
{{RFC8366}} and {{BRSKI}} define the '`idevid-issuer`' attribute for the '`voucher`' and '`voucher-request`' modules (respectively), but they summarily explain when to use it, and why it is used.
464+
{{RFC8366}} and {{RFC8995}} define the '`idevid-issuer`' attribute for the '`voucher`' and '`voucher-request`' modules (respectively), but they summarily explain when to use it, and why it is used.
464465

465466
The '`idevid-issuer`' Attribute is provided so that the serial number to which the issued Voucher pertains can be relative to the entity that issued the Pledge's IDevID.
466467
In most cases there is a one to one relationship between the trust anchor that signs Vouchers (and is trusted by the Pledge), and the Certification Authority that signs the IDevID.
467-
In that case, the '`serial-number`' in the Voucher Data must refer to the same device as the serial number that is in the IDevID certificate (in the '`serialNumber`' element of type '`X520SerialNumber`' per {{Section 2.3.1 of BRSKI}}).
468+
In that case, the '`serial-number`' in the Voucher Data must refer to the same device as the serial number that is in the IDevID certificate (in the '`serialNumber`' element of type '`X520SerialNumber`' per {{Section 2.3.1 of RFC8995}}).
468469

469470
However, there are situations where the one to one relationship may be broken.
470471
This occurs whenever a manufacturer has a common MASA, but different products (on different assembly lines) are produced with identical serial numbers.
@@ -490,7 +491,7 @@ If this rule does not apply, the MASA SHOULD NOT include the '`idevid-issuer`' A
490491

491492
## Clarifications on the format of `idevid-issuer` {#idevid-issuer-format}
492493

493-
{{RFC8366}} and {{BRSKI}} were not fully clear on the required binary format of the '`idevid-issuer`' Attribute.
494+
{{RFC8366}} and {{RFC8995}} were not fully clear on the required binary format of the '`idevid-issuer`' Attribute.
494495
This gave rise to incompatible implementations.
495496

496497
This section clarifies the format of the '`idevid-issuer`' Attribute, which contains the full Authority Key Identifier from an IDevID certificate.
@@ -502,7 +503,7 @@ However, because of the above requirement to include the full '`extnValue`' OCTE
502503

503504
## Errata closed
504505

505-
This above updates to {{BRSKI}} addresses errata {{eid7263}}.
506+
The above updates to {{RFC8995}} addresses errata {{eid7263}}.
506507

507508
# Signature mechanisms
508509

@@ -543,7 +544,7 @@ In the Voucher Request, the signer is the Pledge (in the PVR), or the Registrar
543544
Note that Section 5.1 of {{RFC5652}} includes a
544545
discussion about how to validate a CMS object, which is really a
545546
PKCS7 object (cmsVersion=1). Intermediate systems (such as the
546-
Bootstrapping Remote Secure Key Infrastructures {{BRSKI}} Registrar)
547+
Bootstrapping Remote Secure Key Infrastructures {{RFC8995}} Registrar)
547548
that might need to evaluate the Voucher in flight MUST be prepared for
548549
such an older format.
549550
No signaling of the format version is necessary, as the manufacturer knows the capabilities
@@ -789,13 +790,13 @@ Note that {{RFC9254}} does not strictly require use of SIDs: instead of a SID va
789790
be used. But this would significantly increase the size of the Voucher Data.
790791

791792
Instead, a manufacturer MAY use the '`manufacturer-private`' Attribute to put any content they wish.
792-
In CBOR serialization, if a plain CBOR map would be used, it would be subject to delta encoding: so use of this Attribute requires that the contents are bstr-encoded {{CBOR}} {{RFC8949, Section 3.1}} (Major type 2).
793+
In CBOR serialization, if a plain CBOR map would be used, it would be subject to delta encoding: so use of this Attribute requires that the contents are bstr-encoded (Major type 2).
793794
In JSON serialization, delta encoding does not get in the way, and the manufacturer MAY use any encoding that is convenient for them, but base64URL encoding {{?RFC4648, Section 5}} is RECOMMENDED.
794795

795796

796797
# Voucher Request Artifact {#voucher-request}
797798

798-
{{BRSKI, Section 3}} defined a "voucher-request" Artifact as an augmented Artifact from the "voucher" Artifact originally defined in {{RFC8366}}.
799+
{{RFC8995, Section 3}} defined a "voucher-request" Artifact as an augmented Artifact from the "voucher" Artifact originally defined in {{RFC8366}}.
799800
That definition has been moved to this document, and translated from the "yang-data" extension {{RFC8040}} to the "sx:structure" extension {{RFC8791}}.
800801

801802
## Tree Diagram {#voucher-request-tree-diagram}
@@ -959,7 +960,8 @@ of {{RFC5652}}), though details for how to do this are outside
959960
the scope of this document.
960961

961962
The use of YANG to define data structures, via the "sx:structure"
962-
extension {{RFC8791}}, is relatively new and distinct from the traditional use of
963+
extension {{RFC8791}}, is relatively new and distinct from the conventional
964+
use of
963965
YANG to define an API accessed by network management protocols such as
964966
NETCONF {{RFC6241}} and RESTCONF {{RFC8040}}. For this reason, this
965967
security considerations section does not follow the template described
@@ -972,7 +974,7 @@ by Section 3.7 of {{YANG-GUIDE}}.
972974

973975
This document updates two URIs in the "IETF XML Registry" {{RFC3688}}.
974976

975-
IANA has registered the following based on {{RFC8366}} and {{BRSKI}} respectively:
977+
IANA has registered the following based on {{RFC8366}} and {{RFC8995}} respectively:
976978

977979
> {:compact}
978980
> URI:
@@ -1019,7 +1021,7 @@ IANA has registered the following based on {{RFC8366}}:
10191021
This reference should be updated to point to this document and the "File" entry should be updated to point to the
10201022
new module revision in {{voucher-yang-module}}.
10211023

1022-
IANA has registered the following based on {{BRSKI}}:
1024+
IANA has registered the following based on {{RFC8995}}:
10231025

10241026
> {:compact}
10251027
> name:
@@ -1177,6 +1179,11 @@ and also the following YANG module:
11771179
* URI for the ".sid" file: a pointer to the file defined in {{voucher-request-sid-allocations}}
11781180
* Number of SIDs: 24
11791181

1182+
# YANG references
1183+
1184+
RFC-editor, please remove.
1185+
This section just lists references present in YANG modules which otherwise do not get included in the references, like {{!RFC7250}}.
1186+
11801187
--- back
11811188

11821189
# Examples
@@ -1308,3 +1315,5 @@ by last name):
13081315
{{{Thomas Werner}}}.
13091316

13101317
{{{Max Pritikin}}} and {{{Kent Watsen}}} were instrumental in creating the original {{RFC8366}}.
1318+
1319+

ietf-voucher-request.yang

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module ietf-voucher-request {
77

88
import ietf-yang-structure-ext {
99
prefix sx;
10+
reference "RFC 8791: YANG Data Structure Extensions";
1011
}
1112

1213
import ietf-voucher {
@@ -31,8 +32,6 @@ module ietf-voucher-request {
3132
<mailto:kent+ietf@watsen.net>
3233
Author: Michael Richardson
3334
<mailto:mcr+ietf@sandelman.ca>
34-
Author: Max Pritikin
35-
<mailto:pritikin@cisco.com>
3635
Author: Toerless Eckert
3736
<mailto:tte@cs.fau.de>
3837
Author: Qiufang Ma
@@ -47,7 +46,7 @@ module ietf-voucher-request {
4746
during a voucher request procedure and subsequent
4847
Voucher creation.
4948
50-
Copyright (c) 2023 IETF Trust and the persons identified as
49+
Copyright (c) 2023-2026 IETF Trust and the persons identified as
5150
authors of the code. All rights reserved.
5251
5352
Redistribution and use in source and binary forms, with or
@@ -85,11 +84,11 @@ module ietf-voucher-request {
8584
(BRSKI)";
8685
}
8786

88-
grouping voucher-request-grouping {
87+
grouping voucher-request {
8988
description
9089
"Grouping to allow reuse/extensions in future work.";
9190

92-
uses vch:voucher-artifact-grouping {
91+
uses vch:voucher-artifact {
9392
refine "last-renewal-date" {
9493
description "A last-renewal-date field
9594
is not valid in a voucher request, and
@@ -144,7 +143,7 @@ module ietf-voucher-request {
144143
"An X.509 v3 certificate structure as specified by
145144
RFC 5280, Section 4 encoded using the ASN.1
146145
distinguished encoding rules (DER), as specified
147-
in [ITU.X690.1994].
146+
in [ITU.X690.2015].
148147
149148
The first certificate in the Registrar TLS server
150149
certificate_list sequence (the end-entity TLS
@@ -259,7 +258,7 @@ module ietf-voucher-request {
259258

260259
// Top-level statement: called "voucher" to match RFC8995
261260
sx:structure voucher {
262-
uses voucher-request-grouping;
261+
uses voucher-request;
263262
}
264263

265264
}

ietf-voucher.yang

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@ module ietf-voucher {
55

66
import ietf-yang-types {
77
prefix yang;
8-
reference "RFC 6991: Common YANG Data Types";
8+
reference "RFC 9911: Common YANG Data Types";
99
}
1010

1111
import ietf-inet-types {
1212
prefix ietf;
13-
reference "RFC 6991: Common YANG Data Types";
13+
reference "RFC 9911: Common YANG Data Types";
1414
}
1515

1616
import ietf-yang-structure-ext {
1717
prefix sx;
18+
reference "RFC 8791: YANG Data Structure Extensions";
1819
}
1920

2021
organization
@@ -26,8 +27,6 @@ module ietf-voucher {
2627
<mailto:kent+ietf@watsen.net>
2728
Author: Michael Richardson
2829
<mailto:mcr+ietf@sandelman.ca>
29-
Author: Max Pritikin
30-
<mailto:pritikin@cisco.com>
3130
Author: Toerless Eckert
3231
<mailto:tte@cs.fau.de>
3332
Author: Qiufang Ma
@@ -42,7 +41,7 @@ module ietf-voucher {
4241
pledge may establish a secure connection to the owner's
4342
network infrastructure.
4443
45-
Copyright (c) 2023 IETF Trust and the persons identified as
44+
Copyright (c) 2023-2026 IETF Trust and the persons identified as
4645
authors of the code. All rights reserved.
4746
4847
Redistribution and use in source and binary forms, with or
@@ -79,7 +78,7 @@ module ietf-voucher {
7978
"RFC 8366: Voucher Profile for Bootstrapping Protocols";
8079
}
8180

82-
grouping voucher-artifact-grouping {
81+
grouping voucher-artifact {
8382
description
8483
"Grouping to allow reuse/extensions in future work.";
8584

@@ -176,7 +175,7 @@ module ietf-voucher {
176175
certificate. In the voucher, it is optional
177176
as some manufacturers know that all serial-numbers
178177
are unique within the scope of a MASA.
179-
In the voucher request, whether it is mandatory or optional depends
178+
In the voucher request, whether it is mandatory or optional depends
180179
upon the which protocol is used, such as RFC8995 and variations.
181180
When processing a voucher, a pledge MUST ensure that its
182181
IDevID Authority Key Identifier matches this value. If no
@@ -194,7 +193,7 @@ module ietf-voucher {
194193
description
195194
"An X.509 v3 certificate structure, as specified by
196195
RFC 5280, using Distinguished Encoding Rules (DER)
197-
encoding, as defined in ITU-T X.690.
196+
encoding, as defined in [ITU-T.X690.2015].
198197
199198
This certificate is used by a pledge to trust a Public Key
200199
Infrastructure in order to verify a domain certificate
@@ -221,12 +220,7 @@ module ietf-voucher {
221220
the voucher. The pinned-domain-pubk
222221
is the Raw Public Key of the registrar.
223222
This field is encoded as a Subject Public Key Info block
224-
as specified in RFC7250, in section 3.
225-
The ECDSA algorithm MUST be supported.
226-
The EdDSA algorithm as specified in
227-
draft-ietf-tls-rfc4492bis-17 SHOULD be supported.
228-
Support for the DSA algorithm is not recommended.
229-
Support for the RSA algorithm is a MAY.";
223+
as specified in RFC7250, in section 3.";
230224
}
231225

232226
leaf pinned-domain-pubk-sha256 {
@@ -331,7 +325,7 @@ module ietf-voucher {
331325

332326
// Top-level statement
333327
sx:structure voucher {
334-
uses voucher-artifact-grouping;
328+
uses voucher-artifact;
335329
}
336330

337331
}

0 commit comments

Comments
 (0)