-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenrollment-roadmap.xml
More file actions
1243 lines (897 loc) · 57.9 KB
/
Copy pathenrollment-roadmap.xml
File metadata and controls
1243 lines (897 loc) · 57.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.6 -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc ipr="trust200902" docName="draft-richardson-enrollment-roadmap-03" category="info">
<front>
<title abbrev="device enrollment">Device Enrollment in IETF protocols -- A Roadmap</title>
<author initials="M." surname="Richardson" fullname="Michael Richardson">
<organization>Sandelman Software Works</organization>
<address>
<email>mcr+ietf@sandelman.ca</email>
</address>
</author>
<date year="2020" month="October" day="07"/>
<area>Internet</area>
<workgroup>ANIMA Working Group</workgroup>
<keyword>Internet-Draft</keyword>
<abstract>
<t>This document provides an overview of enrollment or imprinting mechanisms
in current IETF protocols.</t>
<t>This document is being worked on in the ANIMA-WG, and on github at:
https://github.com/anima-wg/enrollment-roadmap</t>
</abstract>
</front>
<middle>
<section anchor="introduction" title="Introduction">
<t>There are numerous mechanisms being proposed to solve the problem
of securely introducing a new devices into an existing managed network.</t>
<t>This document provides an overview of the different mechanisms showing what
technologies are common.</t>
<t>The document starts with a diagram showing the various components and how they go together to form five enrollment scenarios.</t>
</section>
<section anchor="components-of-enrollment-solutions" title="Components of enrollment solutions">
<t>This diagram is taken from <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>, which
is where this work started.</t>
<t><figure>
<artwork><![CDATA[
+------------------------+
+--------------Drop Ship--------------->| Vendor Service |
| +------------------------+
| | M anufacturer| |
| | A uthorized |Ownership|
| | S igning |Tracker |
| | A uthority | |
| +--------------+---------+
| ^
| | BRSKI-
V | MASA
+-------+ ............................................|...
| | . | .
| | . +------------+ +-----------+ | .
| | . | | | | | .
|Pledge | . | Circuit | | Domain <-------+ .
| | . | Proxy | | Registrar | .
| <-------->............<-------> (PKI RA) | .
| | | BRSKI-EST | | .
| | . | | +-----+-----+ .
|IDevID | . +------------+ | EST RFC7030 .
| | . +-----------------+----------+ .
| | . | Key Infrastructure | .
| | . | (e.g. PKI Certificate | .
+-------+ . | Authority) | .
. +----------------------------+ .
. .
................................................
"Domain" components
]]></artwork>
</figure></t>
<t>Five major components are described:</t>
<t><list style="numbers">
<t>pledge: The node that is attempting to enroll.</t>
<t>proxy: A node that is within one layer-2 hop of the pledge that is helping.</t>
<t>domain registrar: the Join Registrar/Coordinator (JRC) that will determine
eligibility of the pledge.</t>
<t>MASA: the representative of the manufacturer that has a pre-established
trust relationship with the pledge.</t>
<t>the domain PKI (if any)</t>
</list></t>
</section>
<section anchor="map-of-enrollment-solution" title="Map of Enrollment solution">
<t><figure>
<artwork><![CDATA[
.-------------------.
. generic (YANG) .
.----------------. voucher semantics .
| '-------------------'
| .---
| |
6tisch 6tisch Tran|ition to |
minimal zero Con|trained |
security touch Bo|tstrap BRSKI | Netconf
.----------..-----------..---|-------..------------. |-------------.
| || || v || | v |
| ||..................................................... |
| ||. constrained voucher . JSON format voucher . |
| ||. (anima) . (RFC8366) . |
| ||..................................................... |
| || || || | | |
| |.............| ...................................... |
| |. COSE .| . standard signature (CMS - RFC5652) . |
| |. rfc8152 .| ...................................... |
| |.............| || | | |
| || ............................| | |
| |......... . EST-COAPS .. EST-HTTPS .| | |
| |. EDHOC . . w/DTLS sec. .. TLS sec. .| | |
|..................................................| | |
|. constrained object . || || | | |
|. security (OSCORE) . || || | |.............|
|...................... || ||............| |. call-home .|
| || ||......... ||. circuit .| |. ssh/tls .|
|........................|. DTLS . ||. proxy .| |. .usbkey .|
|. CoAP proxy,stateless .|. proxy . ||. stateful .| |.............|
|..................................................| | |
| ||. IPIP proxy,stateless .| | |
| ||......................................| | |
'----------''-----------''-----------''------------' '-------------'
^ ^ ^ ^
| \ | |
| '. .--------------'
| | |
| | |
| | .--------------.
| | . manufacturer .
| | . authorized .
'---------------|--. signing .
. authority .
. (MASA) .
'--------------'
]]></artwork>
</figure></t>
</section>
<section anchor="components" title="Components">
<section anchor="generic-voucher-semantics" title="generic voucher semantics">
<t>The abstract semantics of the voucher, described in YANG, are in <xref target="RFC8366"/>.</t>
</section>
<section anchor="constrained-voucher" title="constrained voucher">
<t>The semantics of the constrained voucher, represented in CBOR,
are described in <xref target="I-D.ietf-anima-constrained-voucher"/>.</t>
</section>
<section anchor="json-format-voucher" title="JSON format voucher">
<t>The semantics of the basic voucher, represented in JSON, are described in <xref target="RFC8366"/>.</t>
</section>
<section anchor="cose-8152" title="COSE-8152">
<t>In constrained systems the voucher is signed using the COSE mechanism described in <xref target="RFC8152"/>.
This is to be replaced with <xref target="I-D.ietf-cose-rfc8152bis-algs"/> (now in RFC-EDITOR Q) and
<xref target="I-D.ietf-cose-rfc8152bis-struct"/> (in WGLC, being revised to remove countersignatures).</t>
</section>
<section anchor="standard-signature-cms" title="standard signature (CMS)">
<t>In un-constrained systems the voucher is signed using the Cryptographic
Message Syntax (CMS) described in <xref target="RFC5652"/>.</t>
</section>
<section anchor="edhoc" title="EDHOC">
<t>On constrained and challenged networks, the session key management can be
formed by <xref target="I-D.ietf-lake-edhoc"/>.</t>
<t>This document has a WG called LAKE.</t>
<t>The CoAP-EST layer on top is described by <xref target="I-D.ietf-ace-coap-est"/></t>
</section>
<section anchor="est-coaps-2dtls-security" title="EST-COAPS 2/DTLS sec(urity)">
<t>On unconstrained networks, the session key management is provided by <xref target="RFC6347"/>.
The CoAP-EST layer on top is described by <xref target="I-D.ietf-ace-coap-est"/>, which is in the RFC-EDITOR Q, waiting for DTLS 1.3.</t>
<t>The ACE WG adopted this document, and published it.</t>
</section>
<section anchor="est-https-tls-security" title="EST-HTTPS TLS sec(urity)">
<t>On unconstrained networks with unconstrained nodes, the EST layer and
session key management is described by <xref target="RFC7030"/> as modified by
<xref target="I-D.ietf-anima-bootstrapping-keyinfra"/> (BRSKI).</t>
<t>BRSKI is in the RFC-EDITOR Q, waiting for <xref target="I-D.ietf-anima-autonomic-control-plane"/>, which is awaiting IESG go-ahead.</t>
</section>
<section anchor="constrained-object-security-oscore" title="constrained object security (OSCORE)">
<t>On constained networks with constrained nodes, the CoAP transactions
are secured by <xref target="I-D.ietf-core-object-security"/> using symmetric keys.
The symmetric key may be pre-shared (for 6tisch minimal security), or
MAY be derived using EDHOC.</t>
</section>
<section anchor="ultra-constrained-enrollment" title="ultra-constrained enrollment">
<t>The document <xref target="I-D.selander-ace-ake-authz"/>. Version -01 expired in September 2020, but is expected to be reposted for discussion in the ACE WG.</t>
</section>
<section anchor="pledge-traffic-proxy-mechanisms" title="Pledge traffic proxy mechanisms">
<t>Traffic between the Pledge and the JRC does not flow directly as the pledge
does not typically have a globally reachable address, nor does it have any
network access keys (whether WEP, WPA, 802.1x, or 802.15.4 keys).</t>
<t>Communication between the pledge and JRC is mediated by a proxy.
This is primarily to protect the network against attacks.
The proxy mechanism is provided by as many nodes as can afford to as a benefit to the network, and therefore MUST be as light weight as possible.</t>
<t>There are therefore stateless mechanisms and stateful mechanisms.
The costs of the various methods is analysized in <xref target="I-D.richardson-anima-state-for-joinrouter"/>.</t>
<section anchor="coap-proxystateless" title="COAP proxy,stateless">
<t>The CoAP proxy mechanism uses the OSCORE Context Hint to statelessly store
the address of the proxy within the CoAP structure.
It is described in <xref target="I-D.ietf-6tisch-minimal-security"/>.</t>
</section>
</section>
<section anchor="dtls-proxy" title="DTLS proxy">
<t>A DTLS specific mechanism for COAPS, is described in <xref target="I-D.vanderstok-anima-constrained-join-proxy"/>.</t>
</section>
<section anchor="ipip-proxystateless" title="IPIP proxy,stateless">
<t>An IPIP proxy mechanism uses a layer of IP-in-IP header (protocol 98) to
encapsulate the traffic between Join Proxy and JRC.
It has some complexities to implement on typical POSIX platforms.</t>
<t>At one point, it was described in <xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"/>, in an Appendix.
Another home for the text is desired.</t>
</section>
<section anchor="circuit-proxy-stateful" title="circuit proxy stateful">
<t>The circuit proxy method utilitizes either an application layer gateway
(which in canonical 1990-era implementation requires a process per
connection), or the use of NAT66.
It maintains some state for each connection whether TCP or UDP.</t>
<t>It is this most expensive and most easily abused, but also the most widely available, code-wise.</t>
</section>
</section>
<section anchor="call-home-sshtlsusbkey" title="call-home ssh/tls/usbkey">
<t>The NETCONF call-home mechanism assumes that the device can get basic
connectivity, enough for an out “outgoing” TCP connection to the
manufacturer.</t>
</section>
<section anchor="manufacturer-authorized-signing-authority-masa" title="manufacturer authorized signing authority (MASA)">
<t>The MASA is the manufacturers anchor of the manufacturer/pledge trust
relationship that is established at the factory where the pledge is built.</t>
</section>
<section anchor="enrollment-mechanisms" title="Enrollment Mechanisms">
<section anchor="netconf" title="NETCONF">
<t>The NETCONF WG is describing this in <xref target="I-D.ietf-netconf-zerotouch"/> document.</t>
<t>The NETCONF Zerotouch mechanism provides configuration and ownership
information by having the pledge “call home” to a location determined by
a mix of local hints (DHCPv4, DHCPv6, and mDNS), as well as built-in
anchors. Additionally, ownership vouchers can be alternatively distributed
by portable storage such as USB key.</t>
<t>Upon reaching a validated call-home server, Zerotouch typically “reverses”
the connection providing either an SSH or TLS connection <spanx style="emph">to</spanx> the pledge
device such that it can be configured automatically.</t>
<t>Zerotouch relies upon either open or very easy access to network
connectivity, along with the ability to make an outgoing TCP connection to
the Internet, or to the provided local configuration agent.</t>
<t>Zerotouch is seen as an updated version of TR-69 by some, appropriate for
configuration of residential appliances which are drop-shiped by ISPs or
other service providers to homes. That is not the only targetted use.</t>
</section>
<section anchor="brski" title="BRSKI">
<t>The ANIMA WG is describing BRSKI in <xref target="I-D.ietf-anima-bootstrapping-keyinfra"/>
document.</t>
<t>The ANIMA WG does enrollment with the aim of creating a secure channel with
a public-key infrastructure (PKI) Registrar.
The secured channel is used to perform Enrollment over Secure Transport (EST, RFC7030).
The real goal is the enrollment a new device which was probably been drop-shipped into ANIMA’s Autonomic Control Plane.</t>
<t>That is, after the pledge has been assigned a certificate within the (autonomic) domain, the device (no longer a pledge) will then form secure channels (typically using IKEv2 to key an IPsec channel).
On top of that channel a routing protocol (RPL) is run to form the Autonomic Control Plane (ACP).
The ACP is then used as a management network with which to configure the new device.</t>
<t>BRSKI is therefore step one of a number of steps, the ultimate goal of which is to bring the pledge into the ACP as a new device.</t>
<t>BRSKI itself does not provide for any direct keying of the network (802.11 WEP/WPA, or 802.15.4 security).
The provision of a domain certificate at each node can, however, be used to do that kind of keying: for
instance 802.15.9 provides for use of HIP and IKEv2 to key 802.15.4 networks.</t>
</section>
<section anchor="transition-to-constrained-bootstrap" title="Transition to Constrained Bootstrap">
<t>It is distinguished from BRSKI in that it uses DTLS (rather than TLS) and constrained (CBOR) vouchers.
It is distinguished from 6tisch Zero Touch in that uses CMS to sign rather than COSE.</t>
<t>The ACE WG has adopted <xref target="I-D.ietf-ace-coap-est"/>, but this is not a sufficient.</t>
<t>The constrained version of BRSKI is current described as part of <xref target="I-D.ietf-anima-constrained-voucher"/>.</t>
<t>The use of this technology slice is attractive to IoT deployments where the devices are not battery powered (lighting for instance, AMI for electric meters).
In such situations, the processors in each device have significantly more resources, and in particular far more code space available.
The use of DTLS to secure application traffic (as described in the ACE documents) is already common, and so reuse of DTLS is desireable from a code point of view.</t>
<t>However, the network capacity is still limited so TCP and CBOR are still important.
The network may also contain extremely constrained devices (kinetically powered light switches for n instance).</t>
</section>
<section anchor="cloud-based-registrars" title="Cloud-based Registrars">
<t>BRSKI depends upon a local join proxy to direct the pledge device to the location of the Registrar.
Not only does this require that a join proxy be widely available, but it also assumes that the owner is able to operate a Registrar.</t>
<t><xref target="I-D.friel-anima-brski-cloud"/> deals with two use cases:</t>
<t><list style="numbers">
<t>where there is a Registrar, but no join proxy. A redirection through a manufacturer or VAR operated register points the device to a Registrar located on the Internet.</t>
<t>where there is no Registrar (yet), but the network operator does have an RFC7030 EST server. The cloud registrar provides a voucher connecting the pledge to the appropriate EST server.</t>
</list></t>
</section>
<section anchor="brsky-asynchronous-enrollment" title="BRSKY Asynchronous Enrollment">
<t>BRSKI depends the join proxy being available in the location where the devices are installed, and for that proxy to also be able to communicate to the Registrar (possibly over the Internet).</t>
<t>In a number of environments, such as new construction, a number of devices need to go through an onboarding process, but there is no connectivity available. (Possibly not even LTE/3G due to metal walls, lack of towers, etc.).</t>
<t>The <xref target="I-D.ietf-anima-brski-async-enroll"/> proposes two amendments to BRSKI:</t>
<t><list style="numbers">
<t>the use of CMP rather than EST for enrollment, which eliminates the need to keep a live TLS connection between pledge and Registrar.</t>
<t>a discovery, store-and-forward mechanism for moving voucher requests and vouchers between the Registrar and Pledge, including a batch mechanism that aims to reduce the amount of walking that an installer might have to do.</t>
</list></t>
</section>
<section anchor="tisch-zero-touch" title="6tisch Zero Touch">
<t>The 6tisch WG is describing this in
<xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"/> document.</t>
<t>The 6tisch use case consists of very constrained devices with very
constrained networks. Code space in the devices is larger than typical class
2, but the devices are typically battery powered and wish to sleep
significantly.</t>
<t>The use of CBOR for vouchers, COSE to sign the vouchers saves significant
network bandwidth and code space. Both CBOR, COSE and OSCORE are typically
already in use for the application support. The addition of EDHOC to provide
asymmetric bootstrap of OSCORE completes the suite of constrained security
protocols.</t>
</section>
<section anchor="tisch-minimal-security" title="6tisch minimal security">
<t>The 6tisch WG is describing this in <xref target="I-D.ietf-6tisch-minimal-security"/> document.
This mechanism does enrollment in a single request/response message, but requires at least one “touch” to pre-share symmetric keys.</t>
<t>The 6tisch WG felt that the number of round trips required to do EDHOC, and the size of the vouchers required an even simpler protocol.
As existing 6tisch-type technology is typically deployed with network keys built-in at manufacturer time (no “drop-ship”), the switch from a static network key to a PSK for authenticaiton is considered an incremental improvement.</t>
<t>All other methods are considered zero “touch”.</t>
<t><xref target="I-D.ietf-6tisch-minimal-security"/> is in the RFC-EDITOR Q, waiting for core-stateless on which is depends to leave the WG.</t>
</section>
</section>
<section anchor="discussion" title="Discussion">
<t>A goal of this document is to provide some guidance in selecting which
enrollment profile to use for a given scenario.
This section tries to provide some constrasting comments between the various mechanisms.</t>
<t>(BUT, it does not yet do that..)</t>
</section>
<section anchor="open-issue" title="OPEN ISSUE">
<t><list style="numbers">
<t>insufficient guidance if there is no internet connection.</t>
<t>classes of devices where the manufacturer will never have an HSM/PKI. so, it will only be a self-signed key.</t>
<t>how does a supply-chain manage BRSKI?</t>
</list></t>
</section>
<section anchor="security-considerations" title="Security Considerations">
<t>This document includes a tradeoff of the security attributes of the different
protocols, and so the entire document contains security advice.</t>
</section>
<section anchor="iana-considerations" title="IANA Considerations">
<t>This document does not define any new protocols, and therefore does not
have any IANA Considerations.</t>
</section>
<section anchor="acknowledgements" title="Acknowledgements">
<t>TBD</t>
</section>
</middle>
<back>
<references title='Normative References'>
<reference anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>
<reference anchor="RFC7049" target='https://www.rfc-editor.org/info/rfc7049'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2013' month='October' />
<abstract><t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t></abstract>
</front>
<seriesInfo name='RFC' value='7049'/>
<seriesInfo name='DOI' value='10.17487/RFC7049'/>
</reference>
<reference anchor="RFC7250" target='https://www.rfc-editor.org/info/rfc7250'>
<front>
<title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
<author initials='P.' surname='Wouters' fullname='P. Wouters' role='editor'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig' role='editor'><organization /></author>
<author initials='J.' surname='Gilmore' fullname='J. Gilmore'><organization /></author>
<author initials='S.' surname='Weiler' fullname='S. Weiler'><organization /></author>
<author initials='T.' surname='Kivinen' fullname='T. Kivinen'><organization /></author>
<date year='2014' month='June' />
<abstract><t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS). The new certificate type allows raw public keys to be used for authentication.</t></abstract>
</front>
<seriesInfo name='RFC' value='7250'/>
<seriesInfo name='DOI' value='10.17487/RFC7250'/>
</reference>
<reference anchor="RFC5652" target='https://www.rfc-editor.org/info/rfc5652'>
<front>
<title>Cryptographic Message Syntax (CMS)</title>
<author initials='R.' surname='Housley' fullname='R. Housley'><organization /></author>
<date year='2009' month='September' />
<abstract><t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='70'/>
<seriesInfo name='RFC' value='5652'/>
<seriesInfo name='DOI' value='10.17487/RFC5652'/>
</reference>
<reference anchor="RFC8366" target='https://www.rfc-editor.org/info/rfc8366'>
<front>
<title>A Voucher Artifact for Bootstrapping Protocols</title>
<author initials='K.' surname='Watsen' fullname='K. Watsen'><organization /></author>
<author initials='M.' surname='Richardson' fullname='M. Richardson'><organization /></author>
<author initials='M.' surname='Pritikin' fullname='M. Pritikin'><organization /></author>
<author initials='T.' surname='Eckert' fullname='T. Eckert'><organization /></author>
<date year='2018' month='May' />
<abstract><t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t><t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t><t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t></abstract>
</front>
<seriesInfo name='RFC' value='8366'/>
<seriesInfo name='DOI' value='10.17487/RFC8366'/>
</reference>
<reference anchor="I-D.ietf-anima-bootstrapping-keyinfra">
<front>
<title>Bootstrapping Remote Secure Key Infrastructures (BRSKI)</title>
<author initials='M' surname='Pritikin' fullname='Max Pritikin'>
<organization />
</author>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<author initials='T' surname='Eckert' fullname='Toerless Eckert'>
<organization />
</author>
<author initials='M' surname='Behringer' fullname='Michael Behringer'>
<organization />
</author>
<author initials='K' surname='Watsen' fullname='Kent Watsen'>
<organization />
</author>
<date month='September' day='21' year='2020' />
<abstract><t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur using a routable address and a cloud service, or using only link-local connectivity, or on limited/ disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-anima-bootstrapping-keyinfra-44' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-anima-bootstrapping-keyinfra-44.txt' />
</reference>
<reference anchor="I-D.ietf-anima-constrained-voucher">
<front>
<title>Constrained Voucher Artifacts for Bootstrapping Protocols</title>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<author initials='P' surname='Stok' fullname='Peter van der Stok'>
<organization />
</author>
<author initials='P' surname='Kampanakis' fullname='Panos Kampanakis'>
<organization />
</author>
<date month='July' day='13' year='2020' />
<abstract><t>This document defines a strategy to securely assign a pledge to an owner, using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher". This document builds upon the work in [RFC8366], encoding the resulting artifact in CBOR. Use with two signature technologies are described. Additionally, this document explains how constrained vouchers may be transported as an extension to the [I-D.ietf-ace-coap-est] protocol.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-anima-constrained-voucher-08' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-anima-constrained-voucher-08.txt' />
</reference>
<reference anchor="RFC8152" target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<date year='2017' month='July' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>
<reference anchor="RFC6347" target='https://www.rfc-editor.org/info/rfc6347'>
<front>
<title>Datagram Transport Layer Security Version 1.2</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<author initials='N.' surname='Modadugu' fullname='N. Modadugu'><organization /></author>
<date year='2012' month='January' />
<abstract><t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6347'/>
<seriesInfo name='DOI' value='10.17487/RFC6347'/>
</reference>
<reference anchor="RFC7030" target='https://www.rfc-editor.org/info/rfc7030'>
<front>
<title>Enrollment over Secure Transport</title>
<author initials='M.' surname='Pritikin' fullname='M. Pritikin' role='editor'><organization /></author>
<author initials='P.' surname='Yee' fullname='P. Yee' role='editor'><organization /></author>
<author initials='D.' surname='Harkins' fullname='D. Harkins' role='editor'><organization /></author>
<date year='2013' month='October' />
<abstract><t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t></abstract>
</front>
<seriesInfo name='RFC' value='7030'/>
<seriesInfo name='DOI' value='10.17487/RFC7030'/>
</reference>
<reference anchor="I-D.ietf-core-object-security">
<front>
<title>Object Security for Constrained RESTful Environments (OSCORE)</title>
<author initials='G' surname='Selander' fullname='Goeran Selander'>
<organization />
</author>
<author initials='J' surname='Mattsson' fullname='John Mattsson'>
<organization />
</author>
<author initials='F' surname='Palombini' fullname='Francesca Palombini'>
<organization />
</author>
<author initials='L' surname='Seitz' fullname='Ludwig Seitz'>
<organization />
</author>
<date month='March' day='6' year='2019' />
<abstract><t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols. Although being an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates [RFC7252].</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-core-object-security-16' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-core-object-security-16.txt' />
</reference>
<reference anchor="I-D.selander-ace-cose-ecdhe">
<front>
<title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
<author initials='G' surname='Selander' fullname='Goeran Selander'>
<organization />
</author>
<author initials='J' surname='Mattsson' fullname='John Mattsson'>
<organization />
</author>
<author initials='F' surname='Palombini' fullname='Francesca Palombini'>
<organization />
</author>
<date month='September' day='11' year='2019' />
<abstract><t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact, and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, perfect forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios and a main use case is to establish an OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code footprint can be kept very low.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-selander-ace-cose-ecdhe-14' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-selander-ace-cose-ecdhe-14.txt' />
</reference>
<reference anchor="I-D.ietf-ace-coap-est">
<front>
<title>EST over secure CoAP (EST-coaps)</title>
<author initials='P' surname='Stok' fullname='Peter van der Stok'>
<organization />
</author>
<author initials='P' surname='Kampanakis' fullname='Panos Kampanakis'>
<organization />
</author>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<author initials='S' surname='Raza' fullname='Shahid Raza'>
<organization />
</author>
<date month='January' day='6' year='2020' />
<abstract><t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-ace-coap-est-18' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-ace-coap-est-18.txt' />
</reference>
<reference anchor="I-D.ietf-netconf-zerotouch">
<front>
<title>Secure Zero Touch Provisioning (SZTP)</title>
<author initials='K' surname='Watsen' fullname='Kent Watsen'>
<organization />
</author>
<author initials='M' surname='Abrahamsson' fullname='Mikael Abrahamsson'>
<organization />
</author>
<author initials='I' surname='Farrer' fullname='Ian Farrer'>
<organization />
</author>
<date month='January' day='15' year='2019' />
<abstract><t>This draft presents a technique to securely provision a networking device when it is booting in a factory-default state. Variations in the solution enables it to be used on both public and private networks. The provisioning steps are able to update the boot image, commit an initial configuration, and execute arbitrary scripts to address auxiliary needs. The updated device is subsequently able to establish secure connections with other systems. For instance, a device may establish NETCONF (RFC 6241) and/or RESTCONF (RFC 8040) connections with deployment-specific network management systems.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-netconf-zerotouch-29' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-netconf-zerotouch-29.txt' />
</reference>
<reference anchor="I-D.ietf-6tisch-minimal-security">
<front>
<title>Constrained Join Protocol (CoJP) for 6TiSCH</title>
<author initials='M' surname='Vucinic' fullname='Malisa Vucinic'>
<organization />
</author>
<author initials='J' surname='Simon' fullname='Jonathan Simon'>
<organization />
</author>
<author initials='K' surname='Pister' fullname='Kris Pister'>
<organization />
</author>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<date month='December' day='10' year='2019' />
<abstract><t>This document describes the minimal framework required for a new device, called "pledge", to securely join a 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4e) network. The framework requires that the pledge and the JRC (join registrar/coordinator, a central entity), share a symmetric key. How this key is provisioned is out of scope of this document. Through a single CoAP (Constrained Application Protocol) request-response exchange secured by OSCORE (Object Security for Constrained RESTful Environments), the pledge requests admission into the network and the JRC configures it with link-layer keying material and other parameters. The JRC may at any time update the parameters through another request-response exchange secured by OSCORE. This specification defines the Constrained Join Protocol and its CBOR (Concise Binary Object Representation) data structures, and describes how to configure the rest of the 6TiSCH communication stack for this join process to occur in a secure manner. Additional security mechanisms may be added on top of this minimal framework.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-6tisch-minimal-security-15' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-6tisch-minimal-security-15.txt' />
</reference>
<reference anchor="I-D.ietf-6tisch-dtsecurity-zerotouch-join">
<front>
<title>6tisch Zero-Touch Secure Join protocol</title>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<date month='July' day='8' year='2019' />
<abstract><t>This document describes a Zero-touch Secure Join (ZSJ) mechanism to enroll a new device (the "pledge") into a IEEE802.15.4 TSCH network using the 6tisch signaling mechanisms. The resulting device will obtain a domain specific credential that can be used with either 802.15.9 per-host pair keying protocols, or to obtain the network- wide key from a coordinator. The mechanism describe here is an augmentation to the one-touch mechanism described in [I-D.ietf-6tisch-minimal-security], and is a profile of the constrained voucher mechanism [I-D.ietf-anima-constrained-voucher].</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-6tisch-dtsecurity-zerotouch-join-04' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-6tisch-dtsecurity-zerotouch-join-04.txt' />
</reference>
<reference anchor="ieee802-1AR" target="http://standards.ieee.org/findstds/standard/802.1AR-2009.html">
<front>
<title>IEEE 802.1AR Secure Device Identifier</title>
<author initials="." surname="IEEE Standard">
<organization></organization>
</author>
<date year="2009"/>
</front>
</reference>
</references>
<references title='Informative References'>
<reference anchor="I-D.richardson-anima-state-for-joinrouter">
<front>
<title>Considerations for stateful vs stateless join router in ANIMA bootstrap</title>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>
<date month='September' day='22' year='2020' />
<abstract><t>This document explores a number of issues affecting the decision to use a stateful or stateless forwarding mechanism by the join router (aka join assistant) during the bootstrap process for ANIMA.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-richardson-anima-state-for-joinrouter-03' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-richardson-anima-state-for-joinrouter-03.txt' />
</reference>
<reference anchor="pledge" target="http://dictionary.reference.com/browse/pledge">
<front>
<title>Dictionary.com Unabridged</title>
<author initials="." surname="Dictionary.com" fullname="Dictionary.com">
<organization></organization>
</author>
<date year="2015"/>
</front>
</reference>
<reference anchor="I-D.ietf-cose-rfc8152bis-algs">
<front>
<title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
<author initials='J' surname='Schaad' fullname='Jim Schaad'>
<organization />
</author>
<date month='September' day='24' year='2020' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. THis document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol RFC XXXX.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-cose-rfc8152bis-algs-12' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-cose-rfc8152bis-algs-12.txt' />
</reference>
<reference anchor="I-D.ietf-cose-rfc8152bis-struct">
<front>
<title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
<author initials='J' surname='Schaad' fullname='Jim Schaad'>
<organization />
</author>
<date month='September' day='24' year='2020' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR. This document along with [I-D.ietf-cose-rfc8152bis-algs] obsoletes RFC8152.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-cose-rfc8152bis-struct-14' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-cose-rfc8152bis-struct-14.txt' />
</reference>
<reference anchor="I-D.ietf-lake-edhoc">
<front>
<title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
<author initials='G' surname='Selander' fullname='Goeran Selander'>
<organization />
</author>
<author initials='J' surname='Mattsson' fullname='John Mattsson'>
<organization />
</author>
<author initials='F' surname='Palombini' fullname='Francesca Palombini'>
<organization />
</author>
<date month='August' day='2' year='2020' />
<abstract><t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact, and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, perfect forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios and a main use case is to establish an OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code footprint can be kept very low.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-lake-edhoc-01' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-lake-edhoc-01.txt' />
</reference>
<reference anchor="I-D.ietf-anima-autonomic-control-plane">
<front>
<title>An Autonomic Control Plane (ACP)</title>
<author initials='T' surname='Eckert' fullname='Toerless Eckert'>
<organization />
</author>
<author initials='M' surname='Behringer' fullname='Michael Behringer'>
<organization />
</author>
<author initials='S' surname='Bjarnason' fullname='Steinthor Bjarnason'>
<organization />
</author>
<date month='September' day='11' year='2020' />
<abstract><t>Autonomic functions need a control plane to communicate, which depends on some addressing and routing. This Autonomic Control Plane should ideally be self-managing, and as independent as possible of configuration. This document defines such a plane and calls it the "Autonomic Control Plane", with the primary use as a control plane for autonomic functions. It also serves as a "virtual out-of-band channel" for Operations, Administration and Management (OAM) communications over a network that provides automatically configured hop-by-hop authenticated and encrypted communications via automatically configured IPv6 even when the network is not configured, or misconfigured.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-anima-autonomic-control-plane-29' />
<format type='TXT'
target='http://www.ietf.org/internet-drafts/draft-ietf-anima-autonomic-control-plane-29.txt' />
</reference>
<reference anchor="I-D.selander-ace-ake-authz">
<front>
<title>Lightweight Authorization for Authenticated Key Exchange.</title>
<author initials='G' surname='Selander' fullname='Goeran Selander'>
<organization />
</author>
<author initials='J' surname='Mattsson' fullname='John Mattsson'>
<organization />
</author>
<author initials='M' surname='Vucinic' fullname='Malisa Vucinic'>
<organization />
</author>
<author initials='M' surname='Richardson' fullname='Michael Richardson'>
<organization />
</author>