idnits 2.17.00 (12 Aug 2021)
/tmp/idnits33016/draft-turner-sodp-01.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
-- The document date (September 1, 2011) is 3914 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Unused Reference: 'XMLNS' is defined on line 1819, but no explicit
reference was found in the text
** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200)
** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231,
RFC 7232, RFC 7233, RFC 7234, RFC 7235)
** Downref: Normative reference to an Informational RFC: RFC 2818
** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126)
** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446)
** Obsolete normative reference: RFC 5751 (Obsoleted by RFC 8551)
** Downref: Normative reference to an Informational RFC: RFC 5911
** Downref: Normative reference to an Informational RFC: RFC 5912
== Outdated reference: draft-ietf-tls-ssl2-must-not has been published as
RFC 6176
== Outdated reference: draft-turner-cms-symmetrickeypackage-algs has been
published as RFC 6160
-- Possible downref: Non-RFC (?) normative reference: ref. 'XMLSCHEMA'
-- Possible downref: Non-RFC (?) normative reference: ref. 'TO DO'
-- Obsolete informational reference (is this intentional?): RFC 5996
(Obsoleted by RFC 7296)
Summary: 8 errors (**), 0 flaws (~~), 4 warnings (==), 4 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group S. Turner
3 Internet-Draft IECA
4 Intended status: Standards Track September 1, 2011
5 Expires: March 4, 2012
7 Secure Object Delivery Protocol (SODP)
8 draft-turner-sodp-01.txt
10 Abstract
12 This document describes the Secure Object Delivery Protocol (SODP).
13 SODP enables clients to access secure packages produced by a Key
14 Management Systems (KMS). Client access is ideally direct and web-
15 based, but access via agents acting on behalf of clients is
16 supported.
18 Status of this Memo
20 This Internet-Draft is submitted in full conformance with the
21 provisions of BCP 78 and BCP 79.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF). Note that other groups may also distribute
25 working documents as Internet-Drafts. The list of current Internet-
26 Drafts is at http://datatracker.ietf.org/drafts/current/.
28 Internet-Drafts are draft documents valid for a maximum of six months
29 and may be updated, replaced, or obsoleted by other documents at any
30 time. It is inappropriate to use Internet-Drafts as reference
31 material or to cite them other than as "work in progress."
33 This Internet-Draft will expire on March 4, 2012.
35 Copyright Notice
37 Copyright (c) 2011 IETF Trust and the persons identified as the
38 document authors. All rights reserved.
40 This document is subject to BCP 78 and the IETF Trust's Legal
41 Provisions Relating to IETF Documents
42 (http://trustee.ietf.org/license-info) in effect on the date of
43 publication of this document. Please review these documents
44 carefully, as they describe your rights and restrictions with respect
45 to this document. Code Components extracted from this document must
46 include Simplified BSD License text as described in Section 4.e of
47 the Trust Legal Provisions and are provided without warranty as
48 described in the Simplified BSD License.
50 Table of Contents
52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
53 1.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . 3
54 1.2 Key Words . . . . . . . . . . . . . . . . . . . . . . . . . 5
55 2. SODP Model . . . . . . . . . . . . . . . . . . . . . . . . . . 5
56 3. Key Management System . . . . . . . . . . . . . . . . . . . . . 8
57 3.1. KMS Services . . . . . . . . . . . . . . . . . . . . . . . 8
58 3.1.2. Distribution Service . . . . . . . . . . . . . . . 10
59 3.1.3. Publication Service . . . . . . . . . . . . . . . . 11
60 3.1.4. Certificate Management Service . . . . . . . . . . 12
61 3.2. KMS Packages . . . . . . . . . . . . . . . . . . . . . . 13
62 4. Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
63 4.1. Registration . . . . . . . . . . . . . . . . . . . . . . 14
64 4.2. Activation and Operation . . . . . . . . . . . . . . . . 16
65 4.3. Packages . . . . . . . . . . . . . . . . . . . . . . . . 17
66 5. Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
67 6. Electronic Serial Number . . . . . . . . . . . . . . . . . . 18
68 7. Product Availability List . . . . . . . . . . . . . . . . . . 18
69 7.1. PAL Format . . . . . . . . . . . . . . . . . . . . . . . 21
70 7.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 22
71 7.2.1. URI Scheme . . . . . . . . . . . . . . . . . . . . . 23
72 7.2.2. URI Authority . . . . . . . . . . . . . . . . . . . 24
73 7.2.3. URI Path . . . . . . . . . . . . . . . . . . . . . . 24
74 7.2.4. URI Query and Fragments . . . . . . . . . . . . . . 25
75 8. SODP Transport Requirements . . . . . . . . . . . . . . . . . 26
76 8.1. KMS Requirements . . . . . . . . . . . . . . . . . . . . 26
77 8.2. Client Requirements . . . . . . . . . . . . . . . . . . . 27
78 8.3. Agent Requirements . . . . . . . . . . . . . . . . . . . 27
79 9. Message Sequences . . . . . . . . . . . . . . . . . . . . . . 28
80 9.1. Distribution . . . . . . . . . . . . . . . . . . . . . . 28
81 9.2. Publication . . . . . . . . . . . . . . . . . . . . . . . 29
82 9.3. Certificate Management . . . . . . . . . . . . . . . . . 30
83 10. Cryptographic Algorithm Requirements . . . . . . . . . . . . 32
84 10.1. Package Protection . . . . . . . . . . . . . . . . . . . 32
85 10.2. TLS Cipher Suites . . . . . . . . . . . . . . . . . . . 33
86 10.3. Certificates . . . . . . . . . . . . . . . . . . . . . . 33
87 11. Security Considerations . . . . . . . . . . . . . . . . . . . 33
88 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34
89 12.1. SODP Name Space . . . . . . . . . . . . . . . . . . . . 34
90 12.2. SODP Schema . . . . . . . . . . . . . . . . . . . . . . 35
91 12.3. SODP Message Types . . . . . . . . . . . . . . . . . . . 36
92 12.4. SODP Path 1 String Values . . . . . . . . . . . . . . . 38
93 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . 38
94 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 38
95 14.1. Normative References . . . . . . . . . . . . . . . . . . 38
96 14.2. Informative References . . . . . . . . . . . . . . . . . 40
97 Appendix A. Example Encodings . . . . . . . . . . . . . . . . . . 42
98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42
100 1. Introduction
102 The Secure Object Delivery Protocol (SODP) enables clients to obtain
103 secured packages from a supporting Key Management System (KMS).
104 Client access is via the HyperText Transfer Protocol (HTTP) over
105 Transport Security Layer (TLS). Clients can directly access the KMS
106 or an agent can act on the client's behalf. Clients access the KMS
107 to retrieve a Product Availability List (PAL), which provides the
108 location of their packages with a User Resource Identifier (URI), or
109 can directly retrieve the package if the client obtains the URI via
110 another method. Packages are secured using the Cryptographic Message
111 Syntax (CMS).
113 The remainder of this document will explain the SODP model, provide
114 requirements for the KMS, client, and agent, as well specify the PAL
115 format.
117 1.1 Definitions
119 Agent: An entity that performs functions on behalf of a client.
120 Asymmetric Key Package: A package that includes an asymmetric key
121 content type [RFC5959].
123 Certificate Management Packages: A package that contains a PKI Data
124 or PKI Response content types [RFC5272][RFC5912].
126 Clients: An entity that contains one or more End Cryptographic Unit
127 (ECU). Clients consume products generated by the Key Management
128 System (KMS).
130 Encrypted Key Package: A package that includes an encrypted key
131 content type [RFC6032].
133 Firmware Package: A package that contains a firmware content type
134 [RFC4108][RFC5911].
136 NOTE: [RFC4108] defines the semantics for the firmware content
137 type's fields. [RFC5911] provides the 2002 ASN.1 definitions.
139 Identity and Authentication (IA) Key/Certificate: Key/Certificate
140 used to support IA of the client, when the client communicates with
141 the KMS as well as with other end-entities. It provides the KMS or
142 other end-entities with an appropriate degree of confidence in the
143 client's identity before delivering products, services or sensitive
144 information to the client.
146 Key Exchange (KE) Key/Certificate: Key/Certificate used when the
147 client and the KMS or other end-entity must cooperatively create a
148 wrapping key to protect the delivery of products or sensitive
149 information for use by the client. It is also used to establish
150 secure sessions (e.g., TLS) from a client to the KMS. Other examples
151 include traffic encryption keys and transmission security keys.
153 Key Management System (KMS): A set of one or more components that is
154 designed to protect, manage, and distribute cryptographic products.
155 In this document, cryptographic products are referred to as packages.
157 Operator: A person who "runs" the device (e.g., network
158 administrator).
160 Package: An object that contains one or more CMS content types. At a
161 minimum, all packages are protected using the CMS [RFC5652]
162 SignedData structure. There are numerous types of packages:
163 Asymmetric, Certificate Management, Encrypted Key, Firmware,
164 Publication, and Symmetric Packages.
166 NOTE: This document does not define any packages they are all
167 defined elsewhere. Product Availability List (PAL): A PAL is an
168 XML file that furnishes information for KMS service messages that
169 are currently available and authorized for retrieval by a client
170 or agent.
172 Publication Package: A package that contains certificates and
173 Certificate Revocation Lists (CRLs). These are typically additional
174 CA certificates or CRLs not provided as part of other packages. The
175 package is a degenerate CMS SignedData, which is sometimes referred
176 to as a "certs-only" message.
178 Service Messages: KMS-produced packages are the instantiation of the
179 KMS services. This document defines three services that manifest in
180 three types of service messages: publication, distribution, and
181 certificate management. One, registration, does not manifest itself
182 in a service message.
184 Source Authority: A source authority is trusted by clients to
185 generate particular package types. Clients determine this by
186 validating the digital signature on the package back to a Trust
187 Anchor (TA).
189 Sponsor: A person that is accountable for use of the client's
190 identity. This may or may not be the entity that operates the client
191 (i.e., the operator).
193 Symmetric Key Package: A package that contains a symmetric key
194 content type [RFC6031].
196 Trust Anchor (TA): From [RFC5934], a TA contains a public key that is
197 used to validate digital signatures. In this document, a TA
198 represents an authoritative entity via a public key and associated
199 data. The public key is used to verify digital signatures and the
200 associated data is used to constrain the types of information for
201 which the TA is authoritative. A relying party uses TAs to determine
202 if a digitally signed object is valid by verifying a digital
203 signature using the TA's public key, and by enforcing the constraints
204 expressed in the associated data for the TA.
206 1.2 Key Words
208 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
209 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
210 "OPTIONAL" in this document are to be interpreted as described in
211 [RFC2119].
213 2. SODP Model
215 Figure 1 depicts the SODP model. It is comprised of three entities:
216 the key management system, one or more clients, and agents acting on
217 behalf of clients. KMS-to-client and KMS-to-agent protocol
218 interactions are in-scope; agent-to-client protocol interactions are
219 out-of-scope. KMS-to-client and KMS-to-agent interactions support
220 mutual authentication, provide integrity, and optionally provide
221 confidentiality through the use of HTTPS. Confidentiality for KMS-
222 to-client and KMS-to-agent interactions is OPTIONAL because when
223 confidentiality is needed the packages are encrypted for the client.
224 See Section 10 for requirements on cryptographic suites.
226 <===> IP-Based Protocol Profile (in scope)
227 <- -> ECU-Specified Access Protocol (out of scope)
228 ///// CMS-Protected Packages (in scope; full support)
229 \\\\\ CMS-Protected Packages (in scope; partial support;
230 requires validation of outer signature only)
231 +----------------+
232 | | +------------+
233 | Key | | Client A |
234 | Management | | +---+ |
235 | System |<=====>| /// |ECU| |
236 | | | /A/ | | |
237 | +-------+ /// | | /// | A | |
238 | |A's PAL| /A/ | | +---+ |
239 | +-------+ /// | +------------+
240 | |
241 | +-------+ /// | +-------+ +------------+
242 | |B's PAL| /B/ | | | | Client B |
243 | +-------+ /// | | | | +---+ |
244 | | | Agent |<- - ->| /// |ECU| |
245 | +-------+ /// | | | | /B/ | | |
246 | |C's PAL| /C/ | | | | /// | B | |
247 | +-------+ /// | | \\\ | | +---+ |
248 | |<=====>| \B\ | +------------+
249 | . . | | \\\ |
250 | . . | | | +------------+
251 | . . | | | | Client C |
252 | | | \\\ | | +---+ |
253 | +-------+ /// | | \C\ |<- - ->| /// |ECU| |
254 | |Z's PAL| /Z/ | | \\\ | | /C/ | | |
255 | +-------+ /// | | | | /// | C | |
256 | | | | | +---+ |
257 +----------------+ +-------+ +------------+
259 Figure 1 - SODP Model
261 Clients or agents access the KMS via HTTPS to retrieve and inspect
262 their PAL. The PAL is an XML file that contains Uniform Resource
263 Identifiers (URIs) for client packages. Retrieval of packages
264 referenced in the PAL delivers KMS services to the client.
265 Alternatively, clients can retrieve packages directly from the KMS if
266 they obtain URIs from another source. KMS services are discussed in
267 Section 2.1; the PAL and URI format are discussed in Section 5.
269 While the KMS is viewed as being a single entity, operationally the
270 issuance of different packages can be assigned to different
271 authorities within the KMS. These authorities are referred to as
272 source authorities. A source authority is trusted by clients to
273 generate particular package types. Entities validate their source
274 authorities when validating the digital signature(s) in/on packages.
275 That is, when a client retrieves a package referred to in their PAL
276 the client ensures that the signatures in/on the package validate to
277 an installed trust anchor (TA). See Section 4.1 for more information
278 on clients' TAs.
280 Packages may be encrypted for the client. Packages that contain
281 cleartext (i.e., unencrypted) symmetric keys or asymmetric private
282 keys MUST be encrypted for the client to ensure that the keys are not
283 disclosed to another party. Relying on encrypted packages instead of
284 relying on HTTPS-encrypted links allows agents to further distribute
285 the packages to clients without disclosing the cleartext to the
286 agent. Encrypted packages also enable alternate distribution paths
287 such as store-and-forward, which is beyond the scope of this
288 document. Package requirements are discussed in Section 4.
290 Prior to clients accessing the KMS, clients need be registered with
291 the KMS. The process for this will vary. One possible process
292 involves sponsorship by an individual. This individual collects
293 information about the client and enters the information into the
294 KMS's database. Also during this time, the client is assigned an
295 initial identity. Once registered, the client is issued a
296 certificate, which is later used to access the KMS. Clients and
297 agents use what is referred to as IA certificates when communicating
298 with the KMS. An IA certificate provides the client's/agent's
299 identity and allows the KMS to authenticate that the entity accessing
300 the KMS is in fact the client/agent. The registration and client IA
301 certificate issuance process is described in more detail in Section
302 3.1. The format and protocol for communicating the registration data
303 and sending the initial IA certificate directly to client is out-of-
304 scope. The client authenticates itself to the KMS with this
305 certificate using HTTPS. After the IA certificate is installed, the
306 client requests a KE certificate. KE certificates allow clients to
307 perform key establishment with the KMS to decrypt/encrypt packages.
309 Some implementations may require further separation for some clients
310 who are issued another set of certificates that support client-to-
311 client interactions, which is the client's joie de vivre or the
312 client's mission. The initial certificate set is only used to
313 communicate with the KMS and the second set is only ever used to
314 communicate with other clients. In this case the first set is
315 referred to as IA(I)/KE(I) certificates for (I)nfrastructure
316 certificates and the second set is referred to as IA(M)/KE(M)
317 certificates for (M)ission certificates. Not all clients need the
318 second set of certificate, if clients only need symmetric key, then
319 only one set of certificates is issued. *(I) certificates are issued
320 to it and instead of IA(M)/KE(M) certificates issued later only
321 symmetric key packages are provided.
323 3. Key Management System
325 The SODP is the interface to the KMS that clients use to access KMS-
326 services and associated KMS-generated packages. The internal
327 components of the KMS and their interactions are out-of-scope.
328 However, if a KMS provides all of the KMS packages (see Section 3.2),
329 it will need the capability to package trust anchors (TAs), generate
330 and package symmetric keys, package firmware, generate and package
331 asymmetric keys, issue and package public key certificates, and issue
332 and package Certificate Revocation Lists (CRLs). It will also need
333 to generate and receive packages, which includes generating and
334 verifying digital signatures on packages as well as encrypting and
335 decrypting of packages. Additionally, it will need a repository to
336 store information about clients and their packages.
338 The remainder of this section is split in to two parts. The first
339 part, Section 3.1, describes the KMS services and the second part,
340 Section 3.2, describes the KMS package requirements.
342 3.1. KMS Services
344 This section addresses the four services provided by the KMS:
345 Registration, Distribution, Publication, and Certificate Management.
346 The latter three services are instantiated in packages.
348 3.1.1. Registration Service
350 The KMS only provides services to clients that are KMS-registered.
351 Registration information collected is KMS-specific. However, the
352 information collected MUST include a permanent identifier that is
353 used to identify the client throughout its lifecycle. This permanent
354 identifier is referred to as an Electronic Serial Number (ESN). See
355 Section 6 for more information on ESNs.
357 Other OPTIONAL information to collect includes:
359 o Client Manufacturer
360 o Client Name
361 o Client Type
363 The KMS could also assign a KMS user number for an internal index,
364 label, or abbreviated name for associating data elements pertaining
365 to that user. This number is not sent to the client and is only used
366 by the KMS.
368 During this step the client is also assigned an identity, which the
369 KMS stores in its database. At a minimum the identity is an
370 identifier but it can also include additional information such as a
371 client's sponsor (e.g., Alexa Morris), the client's operator (e.g.,
372 Alexa Morris), and the sponsor's organizational affiliation (e.g.,
373 AMS). That is, the KMS MUST assign and record an identifier to the
374 client, but recording other client-related identity data is OPTIONAL.
375 Additionally:
377 o For cases where the sponsor isn't the entity that operates the
378 client, the identity can also include an indication of the entity
379 operating the client. This allows the network group to sponsor
380 the client, but the security group to operate the client (i.e.,
381 network groups say it's okay to add client to the network but
382 doesn't want to manage the clients keys).
384 o For cases where the client can be transferred from one operator
385 to another, the identity MUST include identity of the previous
386 operator. This provides a "chain-of-control" over the device for
387 its lifetime. A KMS can support a wide variety of environments:
389 o For a KMS that support non-X.509 certificate and non-X.509 CRL
390 types, the identity SHOULD include an indication of certificate
391 type.
393 NOTE: This supports cases where the client uses alternate
394 certificate formats such as Pretty Good Privacy (PGP) [RFC4880].
395 Alternative certificate formats are supported by many security
396 protocols including Internet Key Exchange v2 (IKEv2) [RFC5996],
397 TLS [RFC5246], and CMS [RFC5652].
399 o For a KMS that supports humans as well as clients, the identity
400 SHOULD include an indication of the type of user (e.g.,
401 client/device, human, administrator).
403 The KMS MUST ensure that the client identity is KMS-unique. That is,
404 the collection of data that comprises the client identity MUST NOT
405 match another client served by the KMS. After this check passes, the
406 final step in the registration process occurs: client IA certificate
407 issuance. The KMS MUST issue a certificate [RFC5280] to the client
408 that contains the client's permanent identifier (see Section 6).
409 NOTE: 1) The process for delivering the IA certificate directly to
410 the client is out-of-scope; 2) the format and protocol for
411 communicating the registration data is out-of-scope; and 3) the
412 client need not contribute to or respond to the supplied identity
413 information.
415 3.1.2. Distribution Service
417 The KMS employs the distribution service to provide clients' access
418 to their packages. The KMS provides access to packages through the
419 use of URIs, which uniquely refers to specifically CMS-wrapped
420 packages for delivery to the target client. The KMS generates a PAL
421 that clients can use to retrieve packages. Alternatively, the client
422 can directly access the package, but this assumes the client obtained
423 the URI(s) via another mechanism, which is out-of-scope. Packages
424 include symmetric key packages as well as centrally-generated
425 asymmetric key packages.
427 NOTE: Certificates associated with client generated asymmetric
428 keys (i.e., locally-generated public-private keys) are delivered
429 via the Certificate Management Service (See Section 3.1.3).
431 Figure 2 depicts an example ladder diagram for a protocol flow. The
432 first step is to establish a mutually authenticated HTTPS connection
433 between the client/agent and KMS. The client then requests their PAL
434 from the KMS (via HTTP GET). The KMS replies with the client's PAL
435 (via HTTP GET Response). Once a client has successfully downloaded
436 their PAL, it will process it to obtain the included packages(s). The
437 processing provided will depend on the PAL entry. Section 3.2
438 details the KMS-package requirements, Section 4 details clients-
439 package requirements, and Section 5 details agent-package
440 requirements.
442 | |
443 KMS | Establish HTTPS | Client or Agent
444 | Connection |
445 |<-------------------->|
446 | |
447 | Request PAL |
448 | (HTTP GET) |
449 |<---------------------|
450 |--------------------->|
451 | Deliver PAL with URI |
452 | (HTTP GET Response) |
453 | |
454 | Request packages by |
455 | specified URI |
456 | (HTTP GET) |
457 |<---------------------|
458 |--------------------->|
459 | Deliver requested |
460 | CMS package product |
461 | (HTTP GET Response) |
462 | |
464 Figure 2 - SODP Distribution Service Message Sequence
466 A device can request (via HTTP GET) and download (via HTTP GET
467 Response) any, or all, packages and new PALs by repeating the
468 necessary sequence of steps. When the client is finished, it SHOULD
469 terminate the connection. See Section 8 for more information on
470 SODP's HTTP requirements.
472 The KMS MUST support generation of a PAL. The KMS MUST support
473 access to client packages directly and through a PAL.
475 3.1.3. Publication Service
477 The KMS Publication Service provides clients that are PKI subscribers
478 and relying parties with a means to obtain publicly-available,
479 ancillary services related to PKIs namely: Certificates, CRLs,
480 Certificate Policies (CPs), and Certificate Practice Statements
481 (CPSs) packages. The KMS MUST support distribution of CRLs but MAY
482 support distribution of CPs and CPSs.
484 NOTE: CPs and CPSs are the one exception to the Package
485 definition found in section 1.1. CPs and CPSs are not
486 encapsulated in CMS, they are URIs to the location on the KMS for
487 the CP and CPS.
489 Certificates delivered can include additional CA certificates or peer
490 client certificate(s).
492 Clients may elect to obtain the CRLs that they rely on from sources
493 other than the (e.g., a local directory).
495 CRLs are offered in the form, or forms, produced by the responsible
496 Certification Authority (CA). The form of the CRL is transparent to
497 the KMS Publication Service. CAs may choose to publish compact
498 versions of CRLs (e.g., partitioned CRLs) that are compatible with a
499 disadvantaged client within the overall subscriber population. The
500 PAL provided to a client will always contain a URI for the most
501 current version of each CRL needed to verify the packages in the form
502 used by the particular client. The KMS Publication Service will not
503 list CRLs that a client does not need or cannot use. Based on its
504 capabilities, the freshness of currently held CRLs, and the
505 circumstances, the client will determine whether it needs to download
506 each offered CRL. KMS Publication Services packages will be signed,
507 but need not be encrypted. The information in the package is already
508 signed; CAs sign the certificates and CRLs so there is no need to
509 sign a package containing them.
511 NOTE: The KMS Publication Service is not meant to be a general
512 repository for all relying parties. Access is only provided to
513 registered clients.
515 3.1.4. Certificate Management Service
517 The KMS Certificate Management Service allows a client to develop an
518 asymmetric key pair and obtain the public key certificate associated
519 with the key pair. It additionally provides certificates and CRLs
520 necessary to validate the asymmetric key pair to an installed TA.
522 The KMS Certificate Management Service supports two kinds of
523 certificate management processes:
525 o Issuance: Where a new public/private key pair is established for
526 a KE certificate.
528 o Rekey: Where an existing IA certificate is provided with new
529 keying material.
531 CA MUST generate public key certificates in accordance with
532 [RFC5280]. A Registration Authority (RA) may be used to register
533 subscribers as well as assist the CA when issuing and rekeying
534 certificates for clients.
536 3.2. KMS Packages
538 The KMS Distribution, Publication, and Certificate Management
539 services translate into KMS packages. The primary packages are key
540 packages, but they also include firmware packages necessary to use
541 the key packages, TAMP packages to validate the package's source of
542 authority, publication packages that contain additional certificates
543 and CRLs, and collections of key packages. This section lists the
544 package requirements for the KMS.
546 There are many different key packages, but at their core there are
547 three types:
549 o Symmetric key packages are defined in [RFC6031]. A symmetric key
550 package can contain one or more symmetric keys. It also can
551 contain attributes that apply to one or more keys. The KMS MUST
552 support the ct-symmetric-key-package content type encapsulated in
553 a ct-signed-data content type [RFC5652][RFC5911].
555 o Asymmetric key packages are defined in [RFC5958]. An asymmetric
556 key package can contains one or more private asymmetric keys and
557 associated algorithm parameters. It can also contain the public
558 key and other attributes. This key package is used in
559 conjunction with the certificate management packages when the KMS
560 generates the client's key pair. The KMS MUST support the ct-
561 asymmetric-key-package content type encapsulated in a ct-signed-
562 data content type.
564 o Certificate management packages are defined in
565 [RFC5272][RFC5912]. PKI Data and PKI Response content types are
566 used to manage public key certificates [RFC5280]. The KMS MUST
567 support the ct-PKIData and ct-PKIResponse content types. The KMS
568 MUST also support encapsulating ct-PKIData in the ct-signed-data
569 content type.
571 Distribution of the symmetric and asymmetric key packages require
572 that these keys be disclosed only to the client and to not to anyone
573 else. The key packages needs to be enveloped. The encrypted key
574 package [RFC6032] supports encrypting key packages in one of three
575 ways: with key exchange algorithms (i.e., using EnvelopedData), with
576 previously distributed symmetric algorithms (i.e., using
577 EncryptedData), and with authenticated-encryption algorithms (i.e.,
578 using AuthEnvelopedData). The KMS MUST support the ct-encrypted-key-
579 package content type and the EnvelopedData choice (i.e., support ct-
580 enveloped-data). The KMS MUST support encapsulating ct-encrypted-
581 key-package in a ct-signed-data content type.
583 The KMS distributes object code for implementing one or more
584 cryptographic algorithms in a cryptographic module and software to
585 implement a communications protocol with the Firmware package
586 [RFC4108][RFC5911]. The KMS MUST support the ct-firmwarePacakge
587 content type. It MUST support receipt of the ct-firmwareLoadReceipt
588 and ct-firmwareLoadError content types. The KMS MUST support
589 encapsulating the ct-firmwarePackage content type in a ct-signed-data
590 content type.
592 To support sending multiple package types to a client, the KMS can
593 use the Content Collection [RFC4073] CMS content type. To allow the
594 KMS to apply additional attributes to the package the can use the
595 Content With Attributes [RFC4073] CMS content type. The KMS SHOULD
596 support the ct-contentCollection any MAY support the ct-
597 contentWithAttributes content type. The KMS MUST support
598 encapsulating these in a ct-signed-data content type.
600 The publication package is supported by the KMS with the "certs-only"
601 package [RFC5751], which is a CMS SignedData with no content just
602 CRLs and certificates. The KMS MUST support the "certs-only" package
603 with ct-data content type with no eContent. The KMS manages TAs to
604 support validating packages with the Trust Anchor Management Protocol
605 (TAMP) [RFC5934]. TAMP supports multiple formats for the TA. The
606 KMS MUST support the Certificate choice. The KMS MUST support the
607 tamp-update content type [RFC5934]. As specified in [RFC5934], tamp-
608 update MUST be encapsulated in a ct-signed-data content type.
610 TO DO: Add TAMP to Service Identifiers.
612 The KMS MUST support validating package signatures back to a TA
613 [RFC5652][RFC5280].
615 4. Client
617 Clients use SODP to access the KMS-services and associated KMS-
618 generated packages. This section addresses client registration, use,
619 and package requirements.
621 4.1. Registration
623 Section 3.1.1 addresses client registration. As noted there, the
624 client need not contribute to or respond to the supplied identity
625 information. After registration is completed, the client is supplied
626 with an IA certificate. Prior to using this certificate, the client
627 MUST verify that the certificate back to an installed trust anchor.
628 The number of TAs is implementation KMS-specific, but in general:
630 o If the client supports locally-generated asymmetric keys, then it
631 MUST support at least one TA.
633 o If the client support centrally-generated asymmetric keys, then
634 it MUST also support at least one TA.
636 o If the client supports symmetric keys, then it MUST support two
637 TAs: one for symmetric keys and one for the asymmetric keys
638 (i.e., the PKI Root).
640 o If the client support firmware, the it MUST support two TAs: one
641 for the firmware and one for the asymmetric keys (i.e., the PKI
642 Root).
644 More complicated scenarios are possible. For example in Figure 3, a
645 KMS and client support centrally-generated asymmetric keys. The KMS
646 supports two TAs: one for the certificate and one for the asymmetric
647 keys (a Key TA (KTA)). The KTA delegates source authority to a Key
648 Source Authority (KSA) and distribution authority to a Key
649 Distribution Authority (KDA). The KSA creates the asymmetric key
650 places it in the symmetric key content type, signs it (signed data
651 content type), includes the corresponding certificate, and encrypts
652 it (encrypted key content type). The KDA applies an additional
653 signature layer around the encrypted data. Upon receipt the client
654 validates KDA's certificate and signature to the KTA, decrypt the
655 message, the KSA's signature and certificates to the KTA, the client
656 validates their certificate to the PKI TA, and the client checks that
657 the private key corresponds to the public key.
659 +-----+ +--------+
660 | KTA | | PKI TA |
661 +-----+ +--------+
662 | |
663 | Signs | Signs
664 | |
665 +-------------+ V
666 | | +----+
667 V V | CA |
668 +-----+ +-----+ +----+
669 | KSA | | KDA | |
670 +-----+ +-----+ | Signs
671 | | |
672 | Signs & | Optionally V
673 | Encrypts | Signs +-----+
674 | | | PKC |
675 | | +-----+
676 | V |
677 +---|-------------+ Included In |
678 | V SignedData | Key Package |
679 | +-------------+ | |
680 | | Key Package |<--------------------+
681 | +-------------+ |
682 +-----------------+
683 Figure 3 - Example Authority Architecture
685 4.2. Activation and Operation
687 The activation/operation phase of the client lifecycle is where the
688 client performs its prime mission (e.g., secure Voice Over IP (VoIP),
689 cable box).
691 Activation can occur immediately following registration, when the
692 client receives an IA certificate. Activation can also occur when
693 the client resides at and is associated with its intended operator
694 (i.e., the client is registered and sponsored in the Canada but not
695 activated by the operator until it arrives where they are located in
696 Greenland). In other words, the client can be immediately actived or
697 it can occur at a later time.
699 NOTE: A client only needs to be loaded with an IA key to perform
700 KMS Services.
702 If the client needs additional certificates (e.g., for
703 confidentiality or separate mission certificates), the client or
704 agent can retrieve them via the PAL. Client retrieval of packages
705 via the PAL is OPTIONAL. Clients may elect to obtain product package
706 URI information using a different mechanism (e.g., inputs from a
707 human or agent).
709 4.3. Packages
711 Client support for packages varies depending on the type of service
712 they desire. All clients MUST support the ct-signed-data content
713 type to ensure the packages source of authority can be determined.
714 They MUST also support validating package signatures back to a TA
715 [RFC5652][RFC5280].
717 For clients that support symmetric key packages [RFC6031], they MUST
718 support the ct-symmetric-key-package content type. Additionally,
719 clients MUST support the ct-encrypted-key-package content type and
720 the EnvelopedData choice (i.e., support ct-enveloped-data) to support
721 encrypting the cleartext symmetric key.
723 For clients that support certificate management packages with
724 locally-generated keys, they MUST support certs-only
725 [RFC5751][RFC5911], ct-PKIData [RFC5272][RFC5912], and ct-PKIResponse
726 [RFC5272][RFC5912].
728 Retrieval of CRLs and additional certificates via the certs-only
729 package, is OPTIONAL. Clients can retrieve CRLs and additional
730 certificate via other mechanisms. Client support for the ct-
731 contentCollection and the ct-contentWithAttributes content types is
732 OPTIONAL.
734 For clients that support firmware packages [RFC4108][RFC5911], they
735 MUST support the ct-firmwarePacakge content type. Client support for
736 the ct-firmwareLoadReceipt and ct-firmwareLoadError content types is
737 OPTIONAL, as per [RFC4108].
739 For clients that support the Trust Anchor Management Protocol (TAMP)
740 [RFC5934], they MUST support the Certificate choice of the TA format
741 and MUST support the tamp-update content type [RFC5934].
743 TO DO: Complete the following:
745 For clients that support certificate management packages with
746 centrally-generated keys, they MUST support ct-asymmetric-key-package
747 [RFC5958], ct-PKIData [RFC5272][RFC5912], and ct-PKIResponse
748 [RFC5272][RFC5912].
750 5. Agents
752 Agents act on behalf of the client. Agents MUST support PAL
753 processing.
755 TO DO: Fill this out.
757 6. Electronic Serial Number
759 The Electronic Serial Number (ESN) is a permanent identifier that is
760 used to identify the client throughout its lifecycle. Certificates
761 include the ESN with the Hardware Module Name from [RFC4108] in the
762 Subject Alternative Name extension [RFC5280]. The hardware module
763 name form is an hwType (an object identifier) and hwSerialNumber
764 (octet string). The combination of the object identifier and octet
765 string guarantees global uniqueness. For example, a company uses
766 their private enterprise number they received from IANA and includes
767 their serial number the octet string. The KMS, clients, and agents
768 SHOULD support ESNs at least 8 octets in length.
770 7. Product Availability List
772 The PAL provides clients with:
774 o Advertisements for available packages and transactions that can
775 be retrieved from the KMS;
777 o Advertisement for another PAL.
779 TO DO: Add definition of Notification in Section 1.1. Need to
780 explain it's an exception the PAL including packages.
782 An example PAL is provided in Figure 4. The explanation of the
783 fields is explained in the subsequent text and sections.
785
786
See TBD
1561 1562 1563 END 1565 12.2. SODP Schema 1567 This section registers an XML schema as per the guidelines in 1568 [RFC3688]. 1570 TO DO: Fill in TBDs. 1572 URI: urn:ietf:params:xml:ns:TBD 1573 Registrant Contact: Sean Turner turners@ieca.com 1574 XML: 1575 1576