-
Notifications
You must be signed in to change notification settings - Fork 5
/
dtbootstrap-anima-keyinfra-09.txt
3864 lines (2732 loc) · 157 KB
/
dtbootstrap-anima-keyinfra-09.txt
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
ANIMA WG M. Pritikin
Internet-Draft Cisco
Intended status: Standards Track M. Richardson
Expires: May 3, 2018 SSW
M. Behringer
Cisco
S. Bjarnason
Arbor Networks
K. Watsen
Juniper Networks
October 30, 2017
Bootstrapping Remote Secure Key Infrastructures (BRSKI)
draft-ietf-anima-bootstrapping-keyinfra-09
Abstract
This document specifies automated bootstrapping of a remote secure
key infrastructure (BRSKI) using vendor installed X.509 certificate,
in combination with a vendor's authorizing service, both online and
offline. 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 lower security
models, including devices with minimal identity, is described for
legacy reasons but not encouraged. Bootstrapping is complete when
the cryptographic identity of the new key infrastructure is
successfully deployed to the device but the established secure
connection can be used to deploy a locally issued certificate to the
device as well.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 3, 2018.
Pritikin, et al. Expires May 3, 2018 [Page 1]
Internet-Draft BRSKI October 2017
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Other Bootstrapping Approaches . . . . . . . . . . . . . 5
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Scope of solution . . . . . . . . . . . . . . . . . . . . 8
1.4. Leveraging the new key infrastructure / next steps . . . 9
2. Architectural Overview . . . . . . . . . . . . . . . . . . . 9
2.1. Behavior of a Pledge . . . . . . . . . . . . . . . . . . 11
2.2. Secure Imprinting using Vouchers . . . . . . . . . . . . 12
2.3. Initial Device Identifier . . . . . . . . . . . . . . . . 13
2.4. Protocol Flow . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1. Architectural component: Pledge . . . . . . . . . . . 16
2.4.2. Architectural component: Circuit Proxy . . . . . . . 16
2.4.3. Architectural component: Domain Registrar . . . . . . 16
2.4.4. Architectural component: Vendor Service . . . . . . . 16
2.5. Lack of realtime clock . . . . . . . . . . . . . . . . . 16
2.6. Cloud Registrar . . . . . . . . . . . . . . . . . . . . . 17
2.7. Determining the MASA to contact . . . . . . . . . . . . . 17
3. Voucher-Request artifact . . . . . . . . . . . . . . . . . . 18
3.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 18
3.2. Examples . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 21
4. Proxy details . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1. Pledge discovery of Proxy . . . . . . . . . . . . . . . . 24
4.1.1. Proxy Grasp announcements . . . . . . . . . . . . . . 25
4.2. CoAP connection to Registrar . . . . . . . . . . . . . . 26
4.3. HTTPS proxy connection to Registrar . . . . . . . . . . . 26
4.4. Proxy discovery of Registrar . . . . . . . . . . . . . . 26
5. Protocol Details . . . . . . . . . . . . . . . . . . . . . . 28
5.1. BRSKI-EST TLS establishment details . . . . . . . . . . . 30
5.2. Pledge Requests Voucher from the Registrar . . . . . . . 30
5.3. BRSKI-MASA TLS establishment details . . . . . . . . . . 31
Pritikin, et al. Expires May 3, 2018 [Page 2]
Internet-Draft BRSKI October 2017
5.4. Registrar Requests Voucher from MASA . . . . . . . . . . 32
5.5. Voucher Response . . . . . . . . . . . . . . . . . . . . 35
5.5.1. Completing authentication of Provisional TLS
connection . . . . . . . . . . . . . . . . . . . . . 36
5.6. Voucher Status Telemetry . . . . . . . . . . . . . . . . 37
5.7. MASA authorization log Request . . . . . . . . . . . . . 38
5.7.1. MASA authorization log Response . . . . . . . . . . . 39
5.8. EST Integration for PKI bootstrapping . . . . . . . . . . 40
5.8.1. EST Distribution of CA Certificates . . . . . . . . . 40
5.8.2. EST CSR Attributes . . . . . . . . . . . . . . . . . 40
5.8.3. EST Client Certificate Request . . . . . . . . . . . 41
5.8.4. Enrollment Status Telemetry . . . . . . . . . . . . . 41
5.8.5. EST over CoAP . . . . . . . . . . . . . . . . . . . . 43
6. Reduced security operational modes . . . . . . . . . . . . . 43
6.1. Trust Model . . . . . . . . . . . . . . . . . . . . . . . 43
6.2. Pledge security reductions . . . . . . . . . . . . . . . 44
6.3. Registrar security reductions . . . . . . . . . . . . . . 44
6.4. MASA security reductions . . . . . . . . . . . . . . . . 45
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 46
7.1. PKIX Registry . . . . . . . . . . . . . . . . . . . . . . 46
7.2. Voucher Status Telemetry . . . . . . . . . . . . . . . . 46
8. Security Considerations . . . . . . . . . . . . . . . . . . . 47
8.1. Freshness in Voucher-Requests . . . . . . . . . . . . . . 48
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 50
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.1. Normative References . . . . . . . . . . . . . . . . . . 50
10.2. Informative References . . . . . . . . . . . . . . . . . 52
Appendix A. IPv4 operations . . . . . . . . . . . . . . . . . . 54
A.1. IPv4 Link Local addresses . . . . . . . . . . . . . . . . 54
A.2. Use of DHCPv4 . . . . . . . . . . . . . . . . . . . . . . 54
Appendix B. mDNS / DNSSD proxy discovery options . . . . . . . . 54
Appendix C. IPIP Join Proxy mechanism . . . . . . . . . . . . . 55
C.1. Multiple Join networks on the Join Proxy side . . . . . . 55
C.2. Automatic configuration of tunnels on Registrar . . . . . 56
C.3. Proxy Neighbor Discovery by Join Proxy . . . . . . . . . 56
C.4. Use of connected sockets; or IP_PKTINFO for CoAP on
Registrar . . . . . . . . . . . . . . . . . . . . . . . . 57
C.5. Use of socket extension rather than virtual interface . . 57
Appendix D. MUD Extension . . . . . . . . . . . . . . . . . . . 57
Appendix E. Example Vouchers . . . . . . . . . . . . . . . . . . 59
E.1. Keys involved . . . . . . . . . . . . . . . . . . . . . . 59
E.1.1. MASA key pair for voucher signatures . . . . . . . . 59
E.1.2. Manufacturer key pair for IDevID signatures . . . . . 59
E.1.3. Registrar key pair . . . . . . . . . . . . . . . . . 60
E.1.4. Pledge key pair . . . . . . . . . . . . . . . . . . . 62
E.2. Example process . . . . . . . . . . . . . . . . . . . . . 64
E.2.1. Pledge to Registrar . . . . . . . . . . . . . . . . . 64
E.2.2. Registrar to MASA . . . . . . . . . . . . . . . . . . 66
Pritikin, et al. Expires May 3, 2018 [Page 3]
Internet-Draft BRSKI October 2017
E.2.3. MASA to Registrar . . . . . . . . . . . . . . . . . . 67
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69
1. Introduction
BRSKI provides a foundation to securely answer the following
questions between an element of the network domain called the
"Registrar" and an unconfigured and untouched device called a
"Pledge":
o Registrar authenticating the Pledge: "Who is this device? What is
its identity?"
o Registrar authorization the Pledge: "Is it mine? Do I want it?
What are the chances it has been compromised?"
o Pledge authenticating the Registrar/Domain: "What is this domain's
identity?"
o Pledge authorization the Registrar: "Should I join it?"
This document details protocols and messages to the endpoints to
answer the above questions. The Registrar actions derive from Pledge
identity, third party cloud service communications, and local access
control lists. The Pledge actions derive from a cryptographically
protected "voucher" message delivered through the Registrar but
originating at a Manufacturer Authorized Signing Authority.
The syntactic details of vouchers are described in detail in
[I-D.ietf-anima-voucher]. This document details automated protocol
mechanisms to obtain vouchers, including the definition of a
'voucher-request' message that is a minor extension to the voucher
format (see Section 3).
BRSKI results in the Pledge storing an X.509 root certificate
sufficient for verifying the Registrar identity. In the process a
TLS connection is established which can be directly used for
Enrollment over Secure Transport (EST). In effect BRSKI provides an
automated mechanism for the "Bootstrap Distribution of CA
Certificates" described in [RFC7030] Section 4.1.1 wherein the Pledge
"MUST [...]. engage a human user to authorize the CA certificate
using out-of-band" information". With BRSKI the Pledge now can
automate this process using the voucher. Integration with a complete
EST enrollment is optional but trivial.
BRSKI is agile enough to support bootstrapping alternative key
infrastructures, such as a symmetric key solutions, but no such
system is described in this document.
Pritikin, et al. Expires May 3, 2018 [Page 4]
Internet-Draft BRSKI October 2017
1.1. Other Bootstrapping Approaches
To literally "pull yourself up by the bootstraps" is an impossible
action. Similarly the secure establishment of a key infrastructure
without external help is also an impossibility. Today it is commonly
accepted that the initial connections between nodes are insecure,
until key distribution is complete, or that domain-specific keying
material is pre-provisioned on each new device in a costly and non-
scalable manner. Existing mechanisms are known as non-secured 'Trust
on First Use' (TOFU) [RFC7435], 'resurrecting duckling'
[Stajano99theresurrecting] or 'pre-staging'.
Another approach is to try and minimize user actions during
bootstrapping. The enrollment protocol EST [RFC7030] details a set
of non-autonomic bootstrapping methods in this vein:
o using the Implicit Trust Anchor database (not an autonomic
solution because the URL must be securely distributed),
o engaging a human user to authorize the CA certificate using out-
of-band data (not an autonomic solution because the human user is
involved),
o using a configured Explicit TA database (not an autonomic solution
because the distribution of an explicit TA database is not
autonomic),
o and using a Certificate-Less TLS mutual authentication method (not
an autonomic solution because the distribution of symmetric key
material is not autonomic).
These "touch" methods do not meet the requirements for zero-touch.
There are "call home" technologies where the Pledge first establishes
a connection to a well known vendor service using a common client-
server authentication model. After mutual authentication appropriate
credentials to authenticate the target domain are transfered to the
Pledge. This creates serveral problems and limitations:
o the pledge requires realtime connectivity to the vendor service,
o the domain identity is exposed to the vendor service (this is a
privacy concern),
o the vendor is responsible for making the authorization decisions
(this is a liability concern),
Pritikin, et al. Expires May 3, 2018 [Page 5]
Internet-Draft BRSKI October 2017
BRSKI addresses these issues by defining extensions to the EST
protocol for the automated distribution of vouchers.
1.2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC2119].
The following terms are defined for clarity:
domainID: The domain IDentity is the 160-bit SHA-1 hash of the BIT
STRING of the subjectPublicKey of the root certificate for the
registrars in the domain. This is consistent with the subject key
identifier (Section 4.2.1.2 [RFC5280]).
drop ship: The physical distribution of equipment containing the
"factory default" configuration to a final destination. In zero-
touch scenarios there is no staging or pre-configuration during
drop-ship.
imprint: The process where a device obtains the cryptographic key
material to identify and trust future interactions with a network.
This term is taken from Konrad Lorenz's work in biology with new
ducklings: during a critical period, the duckling would assume
that anything that looks like a mother duck is in fact their
mother. An equivalent for a device is to obtain the fingerprint
of the network's root certification authority certificate. A
device that imprints on an attacker suffers a similar fate to a
duckling that imprints on a hungry wolf. Securely imprinting is a
primary focus of this document.[imprinting]. The analogy to
Lorenz's work was first noted in [Stajano99theresurrecting].
enrollment: The process where a device presents key material to a
network and acquires a network specific identity. For example
when a certificate signing request is presented to a certification
authority and a certificate is obtained in response.
Pledge: The prospective device, which has an identity installed by a
third-party (e.g., vendor, manufacturer or integrator).
Voucher A signed statement from the MASA service that indicates to a
Pledge the cryptographic identity of the Registrar it should
trust. There are different types of vouchers depending on how
that trust asserted. Multiple voucher types are defined in
[I-D.ietf-anima-voucher]
Pritikin, et al. Expires May 3, 2018 [Page 6]
Internet-Draft BRSKI October 2017
Domain: The set of entities that trust a common key infrastructure
trust anchor. This includes the Proxy, Registrar, Domain
Certificate Authority, Management components and any existing
entity that is already a member of the domain.
Domain CA: The domain Certification Authority (CA) provides
certification functionalities to the domain. At a minimum it
provides certification functionalities to a Registrar and stores
the trust anchor that defines the domain. Optionally, it
certifies all elements.
Join Registrar (and Coordinator): A representative of the domain
that is configured, perhaps autonomically, to decide whether a new
device is allowed to join the domain. The administrator of the
domain interfaces with a Join Registrar (and Coordinator) to
control this process. Typically a Join Registrar is "inside" its
domain. For simplicity this document often refers to this as just
"Registrar". The term JRC is used in common with other bootstrap
mechanisms.
Join Proxy: A domain entity that helps the pledge join the domain.
A Proxy facilitates communication for devices that find themselves
in an environment where they are not provided connectivity until
after they are validated as members of the domain. The pledge is
unaware that they are communicating with a proxy rather than
directly with a Registrar.
MASA Service: A third-party Manufacturer Authorized Signing
Authority (MASA) service on the global Internet. The MASA signs
vouchers. It also provides a repository for audit log information
of privacy protected bootstrapping events. It does not track
ownership.
Ownership Tracker: An Ownership Tracker service on the global
internet. The Ownership Tracker uses business processes to
accurately track ownership of all devices shipped against domains
that have purchased them. Although optional this component allows
vendors to provide additional value in cases where their sales and
distribution channels allow for accurately tracking of such
ownership. Ownership tracking information is indicated in
vouchers as described in [I-D.ietf-anima-voucher]
IDevID: An Initial Device Identity X.509 certificate installed by
the vendor on new equipment.
TOFU: Trust on First Use. Used similarly to [RFC7435]. This is
where a Pledge device makes no security decisions but rather
Pritikin, et al. Expires May 3, 2018 [Page 7]
Internet-Draft BRSKI October 2017
simply trusts the first Registrar it is contacted by. This is
also known as the "resurrecting duckling" model.
1.3. Scope of solution
Questions have been posed as to whether this solution is suitable in
general for Internet of Things (IoT) networks. This depends on the
capabilities of the devices in question. The terminology of
[RFC7228] is best used to describe the boundaries.
The solution described in this document is aimed in general at non-
constrained (i.e. class 2+) devices operating on a non-Challenged
network. The entire solution as described here is not intended to be
useable as-is by constrained devices operating on challenged networks
(such as 802.15.4 LLNs).
In many target applications, the systems involved are large router
platforms with multi-gigabit inter-connections, mounted in controlled
access data centers. But this solution is not exclusive to the
large, it is intended to scale to thousands of devices located in
hostile environments, such as ISP provided CPE devices which are
drop-shipped to the end user. The situation where an order is
fulfilled from distributed warehouse from a common stock and shipped
directly to the target location at the request of the domain owner is
explicitly supported. That stock ("SKU") could be provided to a
number of potential domain owners, and the eventual domain owner will
not know a-priori which device will go to which location.
The bootstrapping process can take minutes to complete depending on
the network infrastructure and device processing speed. The network
communication itself is not optimized for speed; for privacy reasons,
the discovery process allows for the Pledge to avoid announcing it's
presence through broadcasting.
This protocol is not intended for low latency handoffs. In networks
requiring such things, the pledge SHOULD already have been enrolled.
Specifically, there are protocol aspects described here which might
result in congestion collapse or energy-exhaustion of intermediate
battery powered routers in an LLN. Those types of networks SHOULD
NOT use this solution. These limitations are predominately related
to the large credential and key sizes required for device
authentication. Defining symmetric key techniques that meet the
operational requirements is out-of-scope but the underlying protocol
operations (TLS handshake and signing structures) have sufficient
algorithm agility to support such techniques when defined.
Pritikin, et al. Expires May 3, 2018 [Page 8]
Internet-Draft BRSKI October 2017
The imprint protocol described here could, however, be used by non-
energy constrained devices joining a non-constrained network (for
instance, smart light bulbs are usually mains powered, and speak
802.11). It could also be used by non-constrained devices across a
non-energy constrained, but challenged network (such as 802.15.4).
The certificate contents, and the process by which the four questions
above are resolved do apply to constrained devices. It is simply the
actual on-the-wire imprint protocol which could be inappropriate.
This document presumes that network access control has either already
occurred, is not required, or is integrated by the proxy and
registrar in such a way that the device itself does not need to be
aware of the details. Although the use of an X.509 Initial Device
Identity is consistant with IEEE 802.1AR [IDevID], and allows for
alignment with 802.1X network access control methods, its use here is
for Pledge authentication rather than network access control.
Integrating this protocol with network access control, perhaps as an
Extensible Authentication Protocol (EAP) method (see [RFC3748]), is
out-of-scope.
1.4. Leveraging the new key infrastructure / next steps
As a result of the protocol described herein the bootstrapped devices
have a common trust anchor and a certificate has optionally been
issued from a local PKI. This makes it possible to automatically
deploy services across the domain in a secure manner.
Services which benefit from this:
o Device management.
o Routing authentication.
o Service discovery.
The major beneficiary is that it possible to use the credentials
deployed by this protocol to secure the Autonomic Control Plane (ACP)
([I-D.ietf-anima-autonomic-control-plane]).
2. Architectural Overview
The logical elements of the bootstrapping framework are described in
this section. Figure 1 provides a simplified overview of the
components. Each component is logical and may be combined with other
components as necessary.
Pritikin, et al. Expires May 3, 2018 [Page 9]
Internet-Draft BRSKI October 2017
+------------------------+
+--------------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
Figure 1
We assume a multi-vendor network. In such an environment there could
be a Vendor Service for each vendor that supports devices following
this document's specification, or an integrator could provide a
generic service authorized by multiple vendors. It is unlikely that
an integrator could provide Ownership Tracking services for multiple
vendors due to the required sales channel integrations necessary to
track ownership.
The domain is the managed network infrastructure with a Key
Infrastructure the Pledge is joining. The a domain provides initial
device connectivity sufficient for bootstrapping with a Circuit
Proxy. The Domain Registrar authenticates the Pledge, makes
authorization decisions, and distributes vouchers obtained from the
Vendor Service. Optionally the Registrar also acts as a PKI
Registration Authority.
Pritikin, et al. Expires May 3, 2018 [Page 10]
Internet-Draft BRSKI October 2017
2.1. Behavior of a Pledge
The pledge goes through a series of steps which are outlined here at
a high level.
+--------------+
| Factory |
| default |
+------+-------+
|
+------v-------+
| Discover |
+------------> |
| +------+-------+
| |
| +------v-------+
| | Identity |
^------------+ |
| rejected +------+-------+
| |
| +------v-------+
| | Request |
| | Join |
| +------+-------+
| |
| +------v-------+
| | Imprint | Optional
^------------+ <--+Manual input (Appendix C)
| Bad Vendor +------+-------+
| response | send Voucher Status Telemetry
| +------v-------+
| | Enroll |
^------------+ |
| Enroll +------+-------+
| Failure |
| +------v-------+
| | Enrolled |
^------------+ |
Factory +--------------+
reset
Figure 2
State descriptions for the pledge are as follows:
1. Discover a communication channel to a Registrar.
Pritikin, et al. Expires May 3, 2018 [Page 11]
Internet-Draft BRSKI October 2017
2. Identify itself. This is done by presenting an X.509 IDevID
credential to the discovered Registrar (via the Proxy) in a TLS
handshake. (The Registrar credentials are only provisionally
accepted at this time).
3. Requests to Join the discovered Registrar. A unique nonce can be
included ensuring that any responses can be associated with this
particular bootstrapping attempt.
4. Imprint on the Registrar. This requires verification of the
vendor service provided voucher. A voucher contains sufficient
information for the Pledge to complete authentication of a
Registrar. (It enables the Pledge to finish authentication of
the Registrar TLS server certificate).
5. Enroll. By accepting the domain specific information from a
Registrar, and by obtaining a domain certificate from a Registrar
using a standard enrollment protocol, e.g. Enrollment over
Secure Transport (EST) [RFC7030].
6. The Pledge is now a member of, and can be managed by, the domain
and will only repeat the discovery aspects of bootstrapping if it
is returned to factory default settings.
2.2. Secure Imprinting using Vouchers
A voucher is a cryptographically protected statement to the Pledge
device authorizing a zero-touch imprint on the Registrar domain.
The format and cryptographic mechanism of vouchers is described in
detail in [I-D.ietf-anima-voucher].
Vouchers provide a flexible mechanism to secure imprinting: the
Pledge device only imprints when a voucher can be validated. At the
lowest security levels the MASA server can indiscriminately issue
vouchers. At the highest security levels issuance of vouchers can be
integrated with complex sales channel integrations that are beyond
the scope of this document. This provides the flexibility for a
number of use cases via a single common protocol mechanism on the
Pledge and Registrar devices that are to be widely deployed in the
field. The MASA vendor services have the flexibility to leverage
either the currently defined claim mechanisms or to experiment with
higher or lower security levels.
Vouchers provide a signed but non-encrypted communication channel
between the Pledge, the MASA, and the Registrar. The Registrar
maintains control over the transport and policy decisions allowing
the local security policy of the domain network to be enforced.
Pritikin, et al. Expires May 3, 2018 [Page 12]
Internet-Draft BRSKI October 2017
2.3. Initial Device Identifier
Pledge authentication and Pledge voucher-request signing is via an
X.509 certificate installed during the manufacturing process. This
Initial Device Identifier provides a basis for authenticating the
Pledge during subsequent protocol exchanges and informing the
Registrar of the MASA URI. There is no requirement for a common root
PKI hierarchy. Each device vendor can generate their own root
certificate.
The following previously defined fields are in the X.509 IDevID
certificate:
o The subject field's DN encoding MUST include the "serialNumber"
attribute with the device's unique serial number.
o The subject-alt field's encoding SHOULD include a non-critical
version of the RFC4108 defined HardwareModuleName.
In order to build the voucher "serial-number" field these IDevID
fields need to be converted into a serial-number of "type string".
The following methods is used depending on the first available IDevID
certificate field (attempted in this order):
o An RFC4514 String Representation of the Distinguished Name
"serialNumber" attribute.
o The HardwareModuleName hwSerialNum OCTET STRING base64 encoded.
o The RFC4514 String Representation of the Distinguished Name
"common name" attribute.
The following newly defined field SHOULD be in the X.509 IDevID
certificate: An X.509 non-critical certificate extension that
contains a single Uniform Resource Identifier (URI) that points to an
on-line Manufacturer Authorized Signing Authority. The URI is
represented as described in Section 7.4 of [RFC5280].
Any Internationalized Resource Identifiers (IRIs) MUST be mapped to
URIs as specified in Section 3.1 of [RFC3987] before they are placed
in the certificate extension. The URI provides the authority
information. The BRSKI .well-known tree is described in Section 5
The new extension is identified as follows:
Pritikin, et al. Expires May 3, 2018 [Page 13]
Internet-Draft BRSKI October 2017
<CODE BEGINS>
MASAURLExtnModule-2016 { iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7)
id-mod(0) id-mod-MASAURLExtn2016(TBD) }
DEFINITIONS IMPLICIT TAGS ::= BEGIN
-- EXPORTS ALL --
IMPORTS
EXTENSION
FROM PKIX-CommonTypes-2009
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-pkixCommon-02(57) }
id-pe
FROM PKIX1Explicit-2009
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-pkix1-explicit-02(51) } ;
MASACertExtensions EXTENSION ::= { ext-MASAURL, ... }
ext-MASAURL EXTENSION ::= { SYNTAX MASAURLSyntax
IDENTIFIED BY id-pe-masa-url }
id-pe-masa-url OBJECT IDENTIFIER ::= { id-pe TBD }
MASAURLSyntax ::= IA5String
END
<CODE ENDS>
The choice of id-pe is based on guidance found in Section 4.2.2 of
[RFC5280], "These extensions may be used to direct applications to
on-line information about the issuer or the subject". The MASA URL
is precisely that: online information about the particular subject.
2.4. Protocol Flow
A representative flow is shown in Figure 3:
+--------+ +---------+ +------------+ +------------+
| Pledge | | Circuit | | Domain | | Vendor |
| | | Proxy | | Registrar | | Service |
| | | | | (JRC) | | (MASA) |
+--------+ +---------+ +------------+ +------------+
Pritikin, et al. Expires May 3, 2018 [Page 14]
Internet-Draft BRSKI October 2017
| | | Internet |
|<-RFC4862 IPv6 addr | | |
|<-RFC3927 IPv4 addr | Appendix A | |
| | | |
|-------------------->| | |
| optional: mDNS query| Appendix B | |
| RFC6763/RFC6762 | | |
| | | |
|<--------------------| | |
| GRASP M_FLOOD | | |
| periodic broadcast| | |
| | | |
|<------------------->C<----------------->| |
| TLS via the Circuit Proxy | |
|<--Registrar TLS server authentication---| |
[PROVISIONAL accept of server cert] | |
P---X.509 client authentication---------->| |
P | | |
P---Voucher Request (include nonce)------>| |
P | | |
P | /---> | |
P | | [accept device?] |
P | | [contact Vendor] |
P | | |--Pledge ID-------->|
P | | |--Domain ID-------->|
P | | |--optional:nonce--->|
P | | | [extract DomainID]
P | | | |
P | optional: | [update audit log]
P | |can | |
P | |occur | |
P | |in | |
P | |advance | |
P | |if | |
P | |nonceless | |
P | | |<- voucher ---------|
P | \----> | |
P | | |
P<------voucher---------------------------| |
[verify voucher ] | | |
[verify provisional cert| | |
| | | |
|---------------------------------------->| |
| [voucher status telemetry] |<-device audit log--|
| | [verify audit log and voucher] |
| | | |
|<--------------------------------------->| |
| Continue with RFC7030 enrollment | |
Pritikin, et al. Expires May 3, 2018 [Page 15]
Internet-Draft BRSKI October 2017
| using now bidirectionally authenticated | |
| TLS session. | | |
| | | |
Figure 3
2.4.1. Architectural component: Pledge
The Pledge is the device which is attempting to join. Until the
pledge completes the enrollment process, it does has network
connectivity only to the Proxy.
2.4.2. Architectural component: Circuit Proxy
The (Circuit) Proxy provides HTTPS connectivity between the pledge
and the registrar. The proxy mechanism is described in Section 4,
with an optional stateless mechanism described in Appendix C.
2.4.3. Architectural component: Domain Registrar
The Domain Registrar (having the formal name Join Registrar/
Coordinator (JRC)), operates as a CMC Registrar, terminating the EST
and BRSKI connections. The Registrar is manually configured or
distributed with a list of trust anchors necessary to authenticate
any Pledge device expected on the network. The Registrar
communicates with the Vendor supplied MASA to establish ownership.
2.4.4. Architectural component: Vendor Service
The Vendor Service provides two logically seperate functions: the
Manufacturer Authorized Signing Authority (MASA), and an ownership
tracking/auditing function.
2.5. Lack of realtime clock
Many devices when bootstrapping do not have knowledge of the current
time. Mechanisms like Network Time Protocols can not be secured
until bootstrapping is complete. Therefore bootstrapping is defined
in a method that does not require knowledge of the current time.
Unfortunately there are moments during bootstrapping when
certificates are verified, such as during the TLS handshake, where
validity periods are confirmed. This paradoxical "catch-22" is
resolved by the Pledge maintaining a concept of the current "window"
of presumed time validity that is continually refined throughout the
bootstrapping process as follows:
o Initially the Pledge does not know the current time.
Pritikin, et al. Expires May 3, 2018 [Page 16]
Internet-Draft BRSKI October 2017
o During Pledge authentiation by the Registrar a realtime clock can
be used by the Registrar. This bullet expands on a closely
related issue regarding Pledge lifetimes. RFC5280 indicates that
long lived Pledge certifiates "SHOULD be assigned the
GeneralizedTime value of 99991231235959Z" [RFC7030] so the
Registrar MUST support such lifetimes and SHOULD support ignoring
Pledge lifetimes if they did not follow the RFC5280
recommendations.
o The Pledge authenticates the voucher presented to it. During this
authentication the Pledge ignores certificate lifetimes (by
necessity because it does not have a realtime clock).
o If the voucher contains a nonce then the Pledge MUST confirm the
nonce matches the original Pledge voucher-request. This ensures
the voucher is fresh. See / (Section 5.2).
o Once the voucher is accepted the validity period of the pinned-
domain-cert in the voucher now serves as a valid time window. Any
subsequent certificate validity periods checked during RFC5280
path validation MUST occur within this window.
o When accepting an enrollment certificate the validity period
within the new certificate is assumed to be valid by the Pledge.
The Pledge is now willing to use this credential for client
authentication.
2.6. Cloud Registrar
The Pledge MAY contact a well known URI of a cloud Registrar if a
local Registrar can not be discovered or if the Pledge's target use
cases do not include a local Registrar.
If the Pledge uses a well known URI for contacting a cloud Registrar
an Implicit Trust Anchor database (see [RFC7030]) MUST be used to
authenticate service as described in RFC6125. This is consistent
with the human user configuration of an EST server URI in [RFC7030]
which also depends on RFC6125.
2.7. Determining the MASA to contact
The registrar needs to be able to contact a MASA that is trusted by
the Pledge in order to obtain vouchers. There are three mechanisms
described:
The device's Initial Device Identifier will normally contain the MASA
URL as detailed in Section 2.3. This is the RECOMMENDED mechanism.
Pritikin, et al. Expires May 3, 2018 [Page 17]
Internet-Draft BRSKI October 2017
If the Registrar is integrated with [I-D.ietf-opsawg-mud] and the
Pledge IDevID contains the id-pe-mud-url then the Registrar MAY
attempt to obtain the MASA URL from the MUD file. The MUD file
extension for the MASA URL is defined in Appendix D.
It can be operationally difficult to ensure the necessary X.509
extensions are in the Pledge's' IDevID due to the difficulty of
aligning current Pledge manufacturing with software releases and
development. As a final fallback the Registrar MAY be manually
configured or distributed with a MASA URL for each vendor. Note that
the Registrar can only select the configured MASA URL based on the
trust anchor -- so vendors can only leverage this approach if they
ensure a single MASA URL works for all Pledge's associated with each
trust anchor.
3. Voucher-Request artifact
The Pledge voucher-request is how a Pledge requests a voucher. The
Pledge forms a voucher-request and submits it to the Registrar. The
Registrar in turn submits a voucher-request to the MASA server. To
help differentiate this document refers to "Pledge voucher-request"
and "Registrar voucher-request" when indicating the source is
beneficial. The "proximity-registrar-cert" leaf is used in Pledge
voucher-requests. The "prior-signed-voucher-request" is used in
Registrar voucher-requests that include a Pledge voucher-request.
Unless otherwise signaled (outside the voucher-request artifact), the
signing structure is as defined for vouchers, see
[I-D.ietf-anima-voucher].
3.1. Tree Diagram
The following tree diagram illustrates a high-level view of a
voucher-request document. The notation used in this diagram is
described in [I-D.ietf-anima-voucher]. Each node in the diagram is
fully described by the YANG module in Section 3.3. Please review the
YANG module for a detailed description of the voucher-request format.