Skip to content

Commit 1d4e250

Browse files
committed
Addressing DISCUSS from Paul Wouters by extending text of Sections 3.1.1.2, 4.4, 5.2.5, 6, and D.3.
1 parent 8d310a4 commit 1d4e250

File tree

1 file changed

+43
-16
lines changed

1 file changed

+43
-16
lines changed

draft-ietf-lamps-rfc4210bis.md

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ informative:
112112
- name: J. Alex Halderman
113113
org: University of Michigan
114114
date: 2012-08
115+
X509.2019:
116+
target: https://handle.itu.int/11.1002/1000/14033
117+
title: 'Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks'
118+
author:
119+
- org: International Telecommunications Union (ITU)
120+
date: 2019-10-14
121+
seriesinfo:
122+
ITU: Recommendation X.509 (10/2019)
115123
ISO.20543-2019:
116124
title: Information technology -- Security techniques -- Test and analysis methods for random bit generators within ISO/IEC 19790 and ISO/IEC 15408
117125
author:
@@ -479,7 +487,17 @@ We use the term "root CA" to indicate a CA that is directly trusted
479487
by an end entity; that is, securely acquiring the value of a root CA
480488
public key requires some out-of-band step(s). This term is not meant
481489
to imply that a root CA is necessarily at the top of any hierarchy,
482-
simply that the CA in question is trusted directly.
490+
simply that the CA in question is trusted directly. The "root CA"
491+
may provide its trust anchor information with or without using a
492+
certificate. In some circumstances such a certificate may be
493+
self-signed, but in other circumstances it may be cross signed,
494+
signed by a peer, signed by a superior CA, or unsigned.
495+
496+
Note that other documents like {{X509.2019}} and {{RFC5280}} use the
497+
term "trusted CA" or "trust anchor" instead of "root CA". This
498+
documents continues using "root CA" based on the above definition
499+
because it is also present in the ASN.1 syntax that cannot be changed
500+
easily.
483501

484502
A "subordinate CA" is one that is not a root CA for the end entity in
485503
question. Often, a subordinate CA will not be a root CA for any
@@ -1191,10 +1209,10 @@ the new CA public key, it must load the new trust anchor information
11911209
into its trusted store.
11921210

11931211
The data structure used to protect the new and old CA public keys is
1194-
typically a standard X.509 v3 self-signed certificate (which may also
1212+
typically a standard X.509 v3 certificate (which may also
11951213
contain extensions). There are no new data structures required.
11961214

1197-
Note: Sometimes root CA certificates do not make use of
1215+
Note: Sometimes self-signed root CA certificates do not make use of
11981216
X.509 v3 extensions and may be X.509 v1 certificates. Therefore, a
11991217
root CA key update must be able to work for version 1 certificates.
12001218
The use of the X.509 v3 KeyIdentifier extension is recommended for
@@ -1230,7 +1248,8 @@ To change the key of the CA, the CA operator does the following:
12301248
1. Generate a new key pair.
12311249

12321250
1. Create a certificate containing the new CA public key signed with
1233-
the new private key (the "new with new" certificate).
1251+
the new private key or by the private key of some other CA (the
1252+
"new with new" certificate).
12341253

12351254
1. Optionally: Create a link certificate containing the new CA public
12361255
key signed with the old private key (the "new with old"
@@ -2232,7 +2251,7 @@ See {{RFC4211}} for CertId syntax.
22322251
### Out-of-band root CA Public Key
22332252
{: id="sect-5.2.5"}
22342253

2235-
Each root CA must be able to publish its current public key via some
2254+
Each root CA that provides a self-signed certificate must be able to publish its current public key via some
22362255
"out-of-band" means or together with the respective link certificate using an online mechanism. While such mechanisms are beyond the scope of
22372256
this document, we define data structures that can support such
22382257
mechanisms.
@@ -3483,11 +3502,11 @@ that MUST be supported for specific use cases.
34833502
{: id="sect-6.1"}
34843503
\[See {{sect-3.1.1.2}} for this document's definition of "root CA".\]
34853504

3486-
A newly created root CA must produce a "self-certificate", which is a
3487-
Certificate structure with the profile defined for the "newWithNew"
3505+
If the newly created root CA is the top of a PKI hierarchy, it must produce a "self-certificate", which is a
3506+
certificate structure with the profile defined for the "newWithNew"
34883507
certificate issued following a root CA key update.
34893508

3490-
In order to make the CA's self certificate useful to end entities
3509+
In order to make the CA's self-certificate useful to end entities
34913510
that do not acquire the self certificate via "out-of-band" means, the
34923511
CA must also produce a fingerprint for its certificate. End entities
34933512
that acquire this fingerprint securely via some "out-of-band" means
@@ -3503,8 +3522,8 @@ The data structure used to carry the fingerprint may be the OOBCertHash, see {{s
35033522
CA keys (as all other keys) have a finite lifetime and will have to
35043523
be updated on a periodic basis. The certificates NewWithNew,
35053524
NewWithOld, and OldWithNew (see {{sect-4.4.1}}) MAY be issued by the
3506-
CA to aid existing end entities who hold the current self-signed CA
3507-
certificate (OldWithOld) to transition securely to the new self-signed
3525+
CA to aid existing end entities who hold the current root CA
3526+
certificate (OldWithOld) to transition securely to the new root
35083527
CA certificate (NewWithNew), and to aid new end entities who
35093528
will hold NewWithNew to acquire OldWithOld securely for verification
35103529
of existing data.
@@ -3684,7 +3703,7 @@ but the CA doesn't allow that).
36843703
The required information MAY be acquired as described in {{sect-6.5}}.
36853704

36863705

3687-
### Out-of-Band Verification of Root-CA Key
3706+
### Out-of-Band Verification of Root CA Key
36883707
{: id="sect-6.7.2"}
36893708

36903709
An end entity must securely possess the public key of its root CA.
@@ -3910,7 +3929,7 @@ different key pairs, the security of the shared secret information should
39103929
exceed the security strength of each individual key pair.
39113930

39123931
For the case of a PKI management operation that delivers a new trust anchor
3913-
(e.g., a root CA certificate) using caPubs or genp that is (a) not concluded
3932+
(i.e., a root CA certificate) using caPubs or genp that is (a) not concluded
39143933
in a timely manner or (b) where the shared secret information is reused
39153934
for several key management operations, the entropy of the shared secret information,
39163935
if known, should not be less than the security strength of the trust anchor
@@ -4672,22 +4691,25 @@ Identical to {{sect-c.2}}.
46724691
## Self-Signed Certificates
46734692
{: id="sect-d.3"}
46744693

4675-
Profile of how a Certificate structure may be "self-signed". These
4676-
structures are used for distribution of CA public keys. This can
4694+
Profile of how a certificate structure may be "self-signed". These
4695+
structures are used for distribution of new root CA public keys in a self-signed certificate. This can
46774696
occur in one of three ways (see {{sect-4.4}} above for a description
46784697
of the use of these structures):
46794698

46804699
|Type | Function |
46814700
|:----|:---------|
4682-
| newWithNew |a true "self-signed" certificate; the contained public key MUST be usable to verify the signature (though this provides only integrity and no authentication whatsoever) |
4701+
| newWithNew | a "self-signed" certificate; the contained public key MUST be usable to verify the signature (though this provides only integrity and no authentication whatsoever) |
46834702
| oldWithNew | previous root CA public key signed with new private key |
46844703
| newWithOld | new root CA public key signed with previous private key |
46854704

4686-
Such certificates (including relevant extensions) must contain
4705+
A newWithNew certificate (including relevant extensions) must contain
46874706
"sensible" values for all fields. For example, when present,
46884707
subjectAltName MUST be identical to issuerAltName, and, when present,
46894708
keyIdentifiers must contain appropriate values, et cetera.
46904709

4710+
Note that in general newWithNew and oldWithOld certificates not necessarily
4711+
refer to self-signed certificate, but to root CA certificates as defined in
4712+
{{sect-3.1.1.2}}.
46914713

46924714
## Root CA Key Update
46934715
{: id="sect-d.4"}
@@ -5876,6 +5898,11 @@ END
58765898

58775899
Note: This appendix will be deleted in the final version of the document.
58785900

5901+
From version 16 -> 17:
5902+
5903+
* Addressing DISCUSS from Paul Wouters by extending text of Sections 3.1.1.2, 4.4, 5.2.5, 6, and D.3.
5904+
5905+
58795906
From version 15 -> 16:
58805907

58815908
* Addressed IESG review comments from Erik Kline, Gunter Van de Velde, Orie Steele, Zaheduzzaman Sarker, Éric Vyncke, and Paul Wouters, except the DISCUSS issue Paul raised

0 commit comments

Comments
 (0)