|
13 | 13 | <meta content=" |
14 | 14 | This document describes Merkle Tree certificates, a new form of X.509 certificates which integrate public logging of the certificate, in the style of Certificate Transparency. The integrated design reduces logging overhead in the face of both shorter-lived certificates and large post-quantum signature algorithms, while still achieving comparable security properties to existing X.509 constructions and Certificate Transparency. Merkle Tree certificates additionally admit an optional size optimization that avoids signatures altogether, at the cost of only applying to up-to-date relying parties and older certificates. |
15 | 15 | " name="description"> |
16 | | -<meta content="xml2rfc 3.33.0" name="generator"> |
| 16 | +<meta content="xml2rfc 3.34.0" name="generator"> |
17 | 17 | <meta content="draft-ietf-plants-merkle-tree-certs-latest" name="ietf.draft"> |
18 | 18 | <!-- Generator version information: |
19 | | - xml2rfc 3.33.0 |
20 | | - Python 3.12.13 |
21 | | - ConfigArgParse 1.7 |
| 19 | + xml2rfc 3.34.0 |
| 20 | + Python 3.14.5 |
| 21 | + ConfigArgParse 1.7.5 |
22 | 22 | google-i18n-address 3.1.1 |
23 | 23 | intervaltree 3.2.1 |
24 | 24 | Jinja2 3.1.6 |
25 | | - lxml 6.0.2 |
26 | | - platformdirs 4.9.6 |
| 25 | + lxml 6.1.1 |
| 26 | + natsort 8.4.0 |
| 27 | + platformdirs 4.10.0 |
27 | 28 | pycountry 24.6.1 |
28 | 29 | PyYAML 6.0.3 |
29 | 30 | requests 2.33.1 |
30 | | - wcwidth 0.7.0 |
| 31 | + wcwidth 0.8.1 |
31 | 32 | --> |
32 | 33 | <link href="draft-ietf-plants-merkle-tree-certs.xml" rel="alternate" type="application/rfc+xml"> |
33 | 34 | <link href="#copyright" rel="license"> |
|
1046 | 1047 | <thead><tr> |
1047 | 1048 | <td class="left">Internet-Draft</td> |
1048 | 1049 | <td class="center">Merkle Tree Certificates</td> |
1049 | | -<td class="right">June 2026</td> |
| 1050 | +<td class="right">July 2026</td> |
1050 | 1051 | </tr></thead> |
1051 | 1052 | <tfoot><tr> |
1052 | 1053 | <td class="left">Benjamin, et al.</td> |
1053 | | -<td class="center">Expires 18 December 2026</td> |
| 1054 | +<td class="center">Expires 2 January 2027</td> |
1054 | 1055 | <td class="right">[Page]</td> |
1055 | 1056 | </tr></tfoot> |
1056 | 1057 | </table> |
|
1063 | 1064 | <dd class="internet-draft">draft-ietf-plants-merkle-tree-certs-latest</dd> |
1064 | 1065 | <dt class="label-published">Published:</dt> |
1065 | 1066 | <dd class="published"> |
1066 | | -<time datetime="2026-06-16" class="published">16 June 2026</time> |
| 1067 | +<time datetime="2026-07-01" class="published">1 July 2026</time> |
1067 | 1068 | </dd> |
1068 | 1069 | <dt class="label-intended-status">Intended Status:</dt> |
1069 | 1070 | <dd class="intended-status">Standards Track</dd> |
1070 | 1071 | <dt class="label-expires">Expires:</dt> |
1071 | | -<dd class="expires"><time datetime="2026-12-18">18 December 2026</time></dd> |
| 1072 | +<dd class="expires"><time datetime="2027-01-02">2 January 2027</time></dd> |
1072 | 1073 | <dt class="label-authors">Authors:</dt> |
1073 | 1074 | <dd class="authors"> |
1074 | 1075 | <div class="author"> |
@@ -1134,7 +1135,7 @@ <h2 id="name-status-of-this-memo"> |
1134 | 1135 | time. It is inappropriate to use Internet-Drafts as reference |
1135 | 1136 | material or to cite them other than as "work in progress."<a href="#section-boilerplate.1-3" class="pilcrow">¶</a></p> |
1136 | 1137 | <p id="section-boilerplate.1-4"> |
1137 | | - This Internet-Draft will expire on 18 December 2026.<a href="#section-boilerplate.1-4" class="pilcrow">¶</a></p> |
| 1138 | + This Internet-Draft will expire on 2 January 2027.<a href="#section-boilerplate.1-4" class="pilcrow">¶</a></p> |
1138 | 1139 | </section> |
1139 | 1140 | </div> |
1140 | 1141 | <div id="copyright"> |
@@ -4596,7 +4597,7 @@ <h4 id="name-landmark-tree-sizes"> |
4596 | 4597 | </h4> |
4597 | 4598 | <p id="section-6.4.1-1">To issue landmark-relative certificates, a CA must additionally maintain a <em>landmark sequence</em>, which is a sequence of <em>landmarks</em>.<a href="#section-6.4.1-1" class="pilcrow">¶</a></p> |
4598 | 4599 | <p id="section-6.4.1-2">Each landmark consists of a number, used as an identifier for the landmark, and a tree size, used as a common point of reference across the ecosystem for optimizing certificates. Landmarks are numbered consecutively from zero. The first landmark, numbered zero, MUST have a tree size of zero. The sequence of tree sizes MUST be append-only and strictly monotonically increasing.<a href="#section-6.4.1-2" class="pilcrow">¶</a></p> |
4599 | | -<p id="section-6.4.1-3">The landmark sequence determines <em>landmark subtrees</em>: for each landmark <code>L</code>, other than number zero, let <code>tree_size</code> be <code>L</code>'s tree size and <code>prev_tree_size</code> be that of <code>L - 1</code>. As described in <a href="#arbitrary-intervals" class="auto internal xref">Section 4.5</a>, select the one or two subtrees that cover <code>[prev_tree_size, tree_size)</code>. Each of those subtrees is a landmark subtree with landmark number <code>L</code>. Landmark zero has no landmark subtrees.<a href="#section-6.4.1-3" class="pilcrow">¶</a></p> |
| 4600 | +<p id="section-6.4.1-3">The landmark sequence determines <em>landmark subtrees</em> for each landmark: for each landmark <code>L</code>, other than number zero, let <code>tree_size</code> be <code>L</code>'s tree size and <code>prev_tree_size</code> be that of <code>L - 1</code>. The landmark subtrees for <code>L</code> are the one or two subtrees that cover <code>[prev_tree_size, tree_size)</code>, as described in <a href="#arbitrary-intervals" class="auto internal xref">Section 4.5</a>. Landmark zero has no landmark subtrees.<a href="#section-6.4.1-3" class="pilcrow">¶</a></p> |
4600 | 4601 | <p id="section-6.4.1-4">As the issuance log grows, CAs continuously allocate new landmarks. This allocation balances minimizing landmark-relative certificate delay with minimizing the size of the relying party's predistributed state. To bound the latter, each CA sets a positive integer <code>max_active_landmarks</code> parameter, which is the maximum number of landmarks that may contain unexpired certificates at any time.<a href="#section-6.4.1-4" class="pilcrow">¶</a></p> |
4601 | 4602 | <p id="section-6.4.1-5">The most recent <code>max_active_landmarks</code> landmarks are said to be <em>active</em>. Landmarks MUST be allocated such that, at any given time, only active landmarks contain unexpired certificates. The active landmark subtrees are those determined by the active landmarks. There are at most <code>2 * max_active_landmarks</code> active landmark subtrees at any time. Every unexpired entry will be contained in one or more landmark subtree, or between the last landmark subtree and the latest checkpoint. Active landmark subtrees are predistributed to the relying party as trusted subtrees, as described in <a href="#trusted-subtrees" class="auto internal xref">Section 7.4</a>.<a href="#section-6.4.1-5" class="pilcrow">¶</a></p> |
4602 | 4603 | <p id="section-6.4.1-6">It is RECOMMENDED that landmarks be allocated following the procedure described in <a href="#allocating-landmarks" class="auto internal xref">Section 6.4.2</a>. If landmarks are allocated incorrectly (e.g. past landmarks change, or <code>max_active_landmarks</code> is inaccurate), there are no security consequences, but some older certificates may fail to validate.<a href="#section-6.4.1-6" class="pilcrow">¶</a></p> |
|
0 commit comments