|
1 | 1 | { |
2 | 2 | "magic": "E!vIA5L86J2I", |
3 | | - "timestamp": "2026-07-28T03:23:55.441260+00:00", |
| 3 | + "timestamp": "2026-07-30T03:13:36.277008+00:00", |
4 | 4 | "repo": "ietf-plants-wg/merkle-tree-certs", |
5 | 5 | "labels": [ |
6 | 6 | { |
|
3861 | 3861 | "updatedAt": "2026-07-21T14:45:58Z", |
3862 | 3862 | "closedAt": null, |
3863 | 3863 | "comments": [] |
| 3864 | + }, |
| 3865 | + { |
| 3866 | + "number": 290, |
| 3867 | + "id": "I_kwDOJIBkVc8AAAABKjPurw", |
| 3868 | + "title": "How 8.2.1 works via Trust Anchor ID's isn't super clear", |
| 3869 | + "url": "https://github.com/ietf-plants-wg/merkle-tree-certs/issues/290", |
| 3870 | + "state": "OPEN", |
| 3871 | + "author": "bob-beck", |
| 3872 | + "authorAssociation": "NONE", |
| 3873 | + "assignees": [], |
| 3874 | + "labels": [], |
| 3875 | + "body": "\nBasing this only on what I did, and testing against BoringSSL. \n\n```Landmark-relative certificates SHOULD be configured with this information, as in [Section 3.2](https://datatracker.ietf.org/doc/html/draft-ietf-tls-trust-anchor-ids-04#section-3.2) of [[I-D.ietf-tls-trust-anchor-ids](https://www.ietf.org/archive/id/draft-ietf-plants-merkle-tree-certs-05.html#I-D.ietf-tls-trust-anchor-ids)]. A relying party whose latest trusted subtree ([Section 7.4](https://www.ietf.org/archive/id/draft-ietf-plants-merkle-tree-certs-05.html#trusted-subtrees)) in log N is landmark L SHOULD configure the trust_anchors extension to advertise the above landmark group. This signals support for both standalone certificates and supported landmarks.```\n\nSo this implies that the trust anchors extension advertising the landmark group *implies* support for the standalone certificate for the CA,\nso this is what I have implemented. In my case, let's say we have landmarks and TAI groups defined for logs on a CA 32473.1 - I consider that\nthe CA cert (32473.1) also matches any of those groups. In the end the landmark if it matches ends up served by preference (because it's smaller) but the CA cert is also a match. \n\nConfigring boringssl with a landmark cert preferential to the CA cert, It doesn't seem to do that. and falls back to the RSA ubiquitous cert I configured it with. If I send boring a landmark corresponding to what it does have it works fine, and sends me the signatureless cert. looking at the TAI response, it does indicate that it has both a landmark cert and the CA cert. So what's really supposed to happen here when the client sends support for a group.? \n\nNew, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384\nProtocol: TLSv1.3\nServer public key is 10496 bit\nThis TLS version forbids renegotiation.\nCompression: NONE\nExpansion: NONE\nNo ALPN negotiated\nEarly data was not sent\nVerify return code: 110 (Merkle Tree Certificate subtree is not trusted)\nAvailable trust anchor IDs:\n 32473.1.1.1.1\n 32473.1\n---\n\nIn the above case I sent a request for a landmark the server did not have The CA cert is 32473.1, but I did not get it back, I got the RSA fallback. \n\n", |
| 3876 | + "createdAt": "2026-07-28T21:10:20Z", |
| 3877 | + "updatedAt": "2026-07-29T02:14:34Z", |
| 3878 | + "closedAt": null, |
| 3879 | + "comments": [ |
| 3880 | + { |
| 3881 | + "author": "bob-beck", |
| 3882 | + "authorAssociation": "NONE", |
| 3883 | + "body": "Or to be compltely clear on that case : The bssl server is configured with two TAI credentials plus an ordinary fallback: \n- a landmark-relative certificate for landmark 1 of log 1 \u2014 trust_anchor_id 32473.1.1.1.1, and a trust_anchor_group_inclusions range with base 32473.1.2.1, min 1, max 2\n- a standalone cosigned certificate \u2014 trust_anchor_id 32473.1, no inclusions\n- an RSA certificate via -cert/-key, as the ubiquitous fallback\n\nThe OpenSSL client trusts CA 32473.1 and is up to date as of landmark 9 of log 1 with a window of 2, so per 8.2.1 it advertises a single ID, the landmark group 32473.1.2.1.9.\n\nThe server has no landmark in that group, but it does have the CA's standalone certificate, but It sends the RSA fallback instead:\n \nSo what's supposed to happen here? 8.2.1 seems to hint that the client does not need to also send the standalone cert's TAI, just the group. ", |
| 3884 | + "createdAt": "2026-07-29T02:14:34Z", |
| 3885 | + "updatedAt": "2026-07-29T02:14:34Z" |
| 3886 | + } |
| 3887 | + ] |
3864 | 3888 | } |
3865 | 3889 | ], |
3866 | 3890 | "pulls": [ |
@@ -20104,24 +20128,26 @@ |
20104 | 20128 | "id": "PR_kwDOJIBkVc73DzPu", |
20105 | 20129 | "title": "Prune the discussion on log pruning", |
20106 | 20130 | "url": "https://github.com/ietf-plants-wg/merkle-tree-certs/pull/288", |
20107 | | - "state": "OPEN", |
| 20131 | + "state": "MERGED", |
20108 | 20132 | "author": "davidben", |
20109 | 20133 | "authorAssociation": "COLLABORATOR", |
20110 | 20134 | "assignees": [], |
20111 | 20135 | "labels": [], |
20112 | 20136 | "body": "This section was a bit confusing and didn't say much, because this draft doesn't define the log serving protocols in the first place. It's scoped to specifically the certificate format.\r\n\r\nAt the time this text was written, log pruning had not yet been upstreamed into tlog-tiles. Now that it has, we can prune most of this and instead anchor on discussion of how to set minSerial. tlog-tiles and mtc-tlog has more precise discussion on how and when to prune.\r\n\r\nIssue #279", |
20113 | 20137 | "createdAt": "2026-07-27T18:16:00Z", |
20114 | | - "updatedAt": "2026-07-27T19:28:33Z", |
| 20138 | + "updatedAt": "2026-07-28T13:45:21Z", |
20115 | 20139 | "baseRepository": "ietf-plants-wg/merkle-tree-certs", |
20116 | 20140 | "baseRefName": "main", |
20117 | | - "baseRefOid": "2e87ea1cdd7ab01d7d08c12dd42714b559943834", |
| 20141 | + "baseRefOid": "a96a066d583c2968b00243b0fc55ec52da1a607c", |
20118 | 20142 | "headRepository": "ietf-plants-wg/merkle-tree-certs", |
20119 | 20143 | "headRefName": "prune-prune", |
20120 | | - "headRefOid": "ca491380c00f05cf460799e814dcefc5a438754e", |
20121 | | - "closedAt": null, |
20122 | | - "mergedAt": null, |
20123 | | - "mergedBy": null, |
20124 | | - "mergeCommit": null, |
| 20144 | + "headRefOid": "5af7aced860c05ce74e1435e94d41c8961d35cb0", |
| 20145 | + "closedAt": "2026-07-28T13:45:15Z", |
| 20146 | + "mergedAt": "2026-07-28T13:45:15Z", |
| 20147 | + "mergedBy": "davidben", |
| 20148 | + "mergeCommit": { |
| 20149 | + "oid": "dde56cb97fdd7ad074929c1629734eb6d2b38d5c" |
| 20150 | + }, |
20125 | 20151 | "comments": [], |
20126 | 20152 | "reviews": [ |
20127 | 20153 | { |
|
20151 | 20177 | "labels": [], |
20152 | 20178 | "body": "This better represents what data the signature is computed over, aligns with the body text (\"`signatures` contains the chosen subtree signatures\"), and reduces confusion given that this field is contained within the object which ends up acting as the signature on an MTC.", |
20153 | 20179 | "createdAt": "2026-07-28T00:33:24Z", |
20154 | | - "updatedAt": "2026-07-28T00:37:05Z", |
| 20180 | + "updatedAt": "2026-07-28T14:38:32Z", |
20155 | 20181 | "baseRepository": "ietf-plants-wg/merkle-tree-certs", |
20156 | 20182 | "baseRefName": "main", |
20157 | 20183 | "baseRefOid": "13d267ab4f1f25e5c3259def578c2a5b01b5d612", |
|
0 commit comments