[Plants] Re: MTCLogEntry extensibility

Valery Smyslov <smyslov.ietf@gmail.com> Fri, 02 October 2026 14:03 UTC

Received: from mail-lf2-x10.google.com (mail-lf2-x10.google.com [IPv6:2a00:1450:4864:36::10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 8D70D42 for <plants@ietf.org>; Fri, 02 Oct 2026 14:03:31 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=gmail.com header.s=20251104 header.b=e3GWTVT1; spf=pass (mx.ietf.org: domain of smyslov.ietf@gmail.com designates 2a00:1450:4864:36::10 as permitted sender) smtp.mailfrom=smyslov.ietf@gmail.com; dmarc=pass (policy=none) header.from=gmail.com
Received: by mail-lf2-x10.google.com with SMTP id 2adb3069b0e04-5ba31af701aso3455021e87.2 for <plants@ietf.org>; Fri, 02 Oct 2026 07:03:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790949804; x=1791554604; darn=ietf.org; h=content-language:thread-index:content-type:mime-version:message-id :date:subject:in-reply-to:references:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=02Rq1u4mp7ZxEqLcH7WQtgTXRYHy2TiepznCAfx57WE=; b=e3GWTVT133mx2K9sLf7S6MEkOvSF6DtxRLEHgZtvOMGEco7pqlViIKnyrU424742l8 eV5dcwb/K5eXBnwFL9p4sFryvk8F4p7XWDftCqrm9i04C5YVcEL6Gme/1cjwM1FgRAI+ aK3Qoe5PAv1tvuGEDCc3P7GO8dUgXILoJkaqq0JdNqvX8uGpacIXGRuTeG1JLuz0qDuI bg+R2tx5nzsOgCJcfSd4N9atk5xA90jR8wbzgMkss7YSw/n/56m6wIWNrsfU5QdYBqJH Zm5524c0xDfmTUX5AQdC1KGMmQXZPo9PlUivU7TYxsD1f9FM7W04Zfb8zTLY3LWSCp1f f1wQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790949804; x=1791554604; h=content-language:thread-index:content-type:mime-version:message-id :date:subject:in-reply-to:references:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=02Rq1u4mp7ZxEqLcH7WQtgTXRYHy2TiepznCAfx57WE=; b=1aLICWMA9Vr702nUg4HU/nvvGoCpiUMDcj7YKz00bxn6X6JDMJjPH97lKGctfRzwVn 5sVTVtctAy/sHrfHLWZ//aJebtsuaU6C/CL6iShJS4FrjFlYOXNI8jg0qgiQNFNQw5ku SmubNpGE0CQIws4vBPoMvDICqQZKTuibSQbCOlJ6+Br5Xjav6LYxOj5DaE/9ghaYbk0d DrdNyvOd5TPYrT+3IYQcXoxgxaLNfpe4q+Rjoq9VBtYG0UCFwldw5l9RUUVEFarSUU8e HQW9XD9KaRw9DTxN4ApdvAr+o28rqvAX2X46RmALdBaYDCreRAndyBy53mvpl8PWyN9+ 9fyw==
X-Forwarded-Encrypted: i=1; AKwUvByt+x+bocubSpH9m79wWV+SPobGGjGDpAHH+dGnUqahtHLv9+aXNbniewNUV/4fryZifnx3jOE=@ietf.org
X-Gm-Message-State: AFq9FYIXiY5gbVrpws6V2GUBqSDOYG639E4sMmahvLqVkaQiWezyuotG a3mPCITvVQdUOsY4gmXcNR4KjFk4Cj4nWCJQGZ/O0zpNV/6YuKHf9F6b
X-Gm-Gg: AYBFou2ibIKcVOF43fe0O9lOXlCuWdO7RZOJnd6Augfr/Psq6tae/3N9yQ5BaGhNgQJ 1twVJZ3fVxcAvCvU7PXohpzcU0Dhe5XS4wZiSsnpl4thPRo0rLSsQBRjVa4Q/YhH7SevuFGvvm4 bkNPUWqs3rAkkEs8cmpErBogxuqCXYXNs9zmTzaBY/pi2tphp26ZcUPJ1iH5CsbMWLwuqOrn2ja Mc0v+6yID+zYlv63AawyUX4RdxhkuaBccyWqZWwechEak56nE4YvAg91UztHG27k4k59IPoHqeq nHMdjee6g9scm6NOP7FPHDNttbZniXpqUz+8oasq+YkkTGA4DAssP5Tzjst1fTX23SU/oH9E2Yr Tr4SQQz10XQiU6qgg4W/NkMJSFLG6MawBP8FaUHs7bZH3iqIWy/Kp6gtZJV8PuDFPBgXp0COCbh xp9Y/SN51oHQecWi/4Ib+jpnEg9SYY4earRCc7c+vcAEJaUXr6EUvhsucnnogbowsY7VZ4ucioh FjunQ==
X-Received: by 2002:a05:6512:3416:b0:5bb:7beb:20c2 with SMTP id 2adb3069b0e04-5bb9bc4d17fmr896409e87.67.1790949803702; Fri, 02 Oct 2026 07:03:23 -0700 (PDT)
Received: from BuildPC ([93.188.44.204]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5bb7c7b2335sm741997e87.75.2026.10.02.07.03.21 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Oct 2026 07:03:22 -0700 (PDT)
From: Valery Smyslov <smyslov.ietf@gmail.com>
To: 'David Benjamin' <davidben@chromium.org>, 'Angel' <angeltoranzoportela@gmail.com>
References: <1db301dd51ab$db1cfb30$9156f190$@gmail.com> <CAF8qwaCuHX0y=Ck0q1W1J3jhquc8ZHpSNGi22QDqnVZevOWFYw@mail.gmail.com> <1dc801dd51b1$c4391740$4cab45c0$@gmail.com> <CACsn0ckGyFu8zjzUXvNRrKxYHyhne60gvxV3iAutkq40zdY+3w@mail.gmail.com> <CANetTs=H8z3m5w85Ephbyr78EVcTn_h+z-YzpFre5pp6JcFpGQ@mail.gmail.com> <1e2601dd524b$24267d70$6c737850$@gmail.com> <CANetTskh6B3VL0MXFerD00EzCyjzuG_5=AV2AsqhYKY3sX0AAA@mail.gmail.com> <CAF8qwaDewEP6uWi3+ZqTcvxZKO+tcPfLka2mZdDQ4UtR4fBkPw@mail.gmail.com>
In-Reply-To: <CAF8qwaDewEP6uWi3+ZqTcvxZKO+tcPfLka2mZdDQ4UtR4fBkPw@mail.gmail.com>
Date: Fri, 02 Oct 2026 17:03:20 +0300
Message-ID: <1e3e01dd5276$c91c5a40$5b550ec0$@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_1E3F_01DD528F.EE6D89E0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHKtyqKhLfm5ocyzffEcxBfrkj3GAI7ANOFAdwnhSkCOdz+YQHTd80FAeH9sAUCWxltCQGkunwTtp9DoZA=
Content-Language: ru
X-Spamd-Bar: -
Message-ID-Hash: MV4ZUKE2OCDSLPDG2VYSR6GR4SK7XQD2
X-Message-ID-Hash: MV4ZUKE2OCDSLPDG2VYSR6GR4SK7XQD2
X-MailFrom: smyslov.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: 'Watson Ladd' <watsonbladd@gmail.com>, 'Ilari Liusvaara' <ilariliusvaara@welho.com>, 'Plants' <plants@ietf.org>
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Plants] Re: MTCLogEntry extensibility
List-Id: "PKI, Logs, And Tree Signatures" <plants.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/plants/E1sbCON58C0sdxTZtrjoHdq0GpI>
List-Archive: <https://mailarchive.ietf.org/arch/browse/plants>
List-Help: <mailto:plants-request@ietf.org?subject=help>
List-Owner: <mailto:plants-owner@ietf.org>
List-Post: <mailto:plants@ietf.org>
List-Subscribe: <mailto:plants-join@ietf.org>
List-Unsubscribe: <mailto:plants-leave@ietf.org>

Hi David.
 
Right, and a type field like this would be risky, redundant, and quite possibly defeat the purpose of extensibility.
 
It is risky because it tempts implementations to copy-paste the type while keeping the entry calculation the same.
 
         Well, I believe this would not be possible if the format of MTCLogEntry changes – it will not validate.
 
It's redundant because you can just define id-alg-mtcProof-v2. We *don't need a type field in there*.
 
         Ah, right, we can define a new AlgorithmIdentifier for a new MTCLogEntry format. 
         This will have the same effect as the type field in MTCProof – the RP will know how to
         re-construct MTCLogEntry. This is an alternative solution, seems that equally functional.
 
And it's likely self-defeating because maybe your fancy new entry format would need a slightly different set of fields in the proof structure.
 
         Maybe. But why it is self-defeating? Proof structure also can be made extensible, depending on the type.
 
         Regards,
         Valery.
 
David
 
On Fri, Oct 2, 2026, 04:58 Angel <angeltoranzoportela@gmail.com <mailto:angeltoranzoportela@gmail.com> > wrote:
Hi Valery,

You're right, and I overstated it. The type is part of the hashed
MTCLogEntry, so a type carried in MTCProof could only match a leaf the CA
logged with that same type, and an RP that only builds entries for the
certificate types it knows would ignore anything else. Carrying it would be
safe.

What remains is whether it is worth a field: the RP has to know a type's
construction rules before the value means anything to it. That is a design
choice for the editors rather than a security question.

Thanks for the correction,
Ángel

El vie, 2 oct 2026 a las 10:51, Valery Smyslov
(<smyslov.ietf@gmail.com <mailto:smyslov.ietf@gmail.com> >) escribió:
>
> Hi Ángel,
>
> > Hi Valery,
> >
> > I think the reason is the one in the draft's Extensibility section: the RP
> > builds the MTCLogEntry it expects, so an entry of any other type can never
> > match the proof.
> >
> > If the type came in MTCProof, whoever presents the certificate would choose
> > it. Then a leaf the CA logged under some future type, validated with that
> > type's rules, could be passed off as a certificate, as long as its bytes
> > can be made to line up with a TBSCertificate. The RP would hash exactly what
> > the CA logged and accept it.
>
> The type in MTCProof must be meaningful to the RP, since it defines the rules
> of how MTCLogEntry is constructed from the certificate. Thus, it cannot be
> an arbitrary type, it must be a type associated with a certificate log entry,
> other types will be ignored by RP as meaningless.
>
> Regards,
> Valery.
>
>
> > That's how I implemented it in mtc-core: the RP never reads the type
> > from the wire.
> >
> > Ángel
> >
> > El jue, 1 oct 2026 a las 21:35, Watson Ladd (<watsonbladd@gmail.com <mailto:watsonbladd@gmail.com> >) escribió:
> > >
> > >
> > >
> > > On Thu, Oct 1, 2026 at 7:33 AM Valery Smyslov <smyslov.ietf@gmail.com <mailto:smyslov.ietf@gmail.com> > wrote:
> > >>
> > >> HI David,
> > >>
> > >>
> > >>
> > >> On Thu, Oct 1, 2026 at 9:51 AM Valery Smyslov <smyslov.ietf@gmail.com <mailto:smyslov.ietf@gmail.com> > wrote:
> > >>
> > >> H Ilari,
> > >>
> > >> > > My concern is that the type of the MTCLogEntry is not known to the relying party.
> > >> > > The relying party needs to reconstruct the MTCLogEntry to validate the inclusion proof
> > >> > > and the algorithm in the Section 7.2 blindly assumes that the entry
> > >> > > always has the tbs_cert_entry format. In case this format is extended in the future,
> > >> > > how the relying party would know that a particular MTCProof structure
> > >> > > corresponds to a new format (I assume the relying party supports both formats)?
> > >> >
> > >> > If the thing RP is processing is a certificate, it is tbs_cert_entry.
> > >> > If it is something else (defined later), then it is something else.
> > >>
> > >> So, the data format for log entries for certificates is fixed forever?
> > >> I think that this can become a limitation in future...
> > >>
> > >>
> > >>
> > >> Well, log entry is basically a TBSCertificate. In plain X.509, the data format for a TBSCertificate is fixed forever,
> > and we seem to have managed OK. :-)
> > >>
> > >>
> > >>
> > >>          Log entry is not exactly TBSCertificate. It is constructed from TBSCertificate using some fancy rules J
> > >>
> > >>
> > >>
> > >> But it actually isn't fixed. If we wanted to make tbs_cert_v2 (maybe we want to tweak the hashing construction
> > for the SPKI), we'd make something like id-alg-mtcProof-v2 and have that kick in a different verification process. I
> > don't particularly anticipate needing to do this, but it is a lever we can pull if we need it.
> > >>
> > >>
> > >>
> > >>          Yes, it is definitely possible. I was thinking more about the situation, when tbs_cert_entry and
> > tbs_cert_entry_v2 need to co-exist in a single log
> > >>
> > >>          (don’t ask me why, just a thought).
> > >>
> > >>
> > >>
> > >> Of course, if we were to do that and weren't cycling CAs at the same time, we'd have to ponder the negotiation
> > path on the transition side. It might be easiest to transition it by cycling CAs. And then it really isn't fixed because
> > we can always just define MTCv2 and say "this CA is MTCv1 and that CA is MTCv2", using the same X.509
> > extension points we did this time around.
> > >>
> > >>
> > >>
> > >>          It is always possible to add another layer of indirection J
> > >
> > >
> > > I don't think this is an extra layer of indirection beyond what exists.
> > >
> > > A MTC CA is always going to have entries that have to have specified meaning to a relying party.  Adjusting the
> > format of those entries for a validator means adjusting the semantics of what the certificates issued by the CA
> > means, which mens relying parties also need to change. The best single way to do this all is to change the CA.
> > Having each tree have one type of entry simplifies the design of all sorts of tools as the cross-entry relations don't
> > need to be thought about.
> > >
> > >>
> > >>
> > >>          Regards,
> > >>
> > >>          Valery.
> > >>
> > >>
> > >>
> > >> > E.g., in-tree revocation list could have type of intree_crl_entry.
> > >> >
> > >> >
> > >> > > In my opinion, the MTCProof should include MTCLogEntryType, so that
> > >> > > the relying party would know how to reconstruct MTCLogEntry.
> > >> > > Something along the lines:
> > >> >
> > >> > No, this would be insecure.
> > >>
> > >> Why?
> > >>
> > >> Regards,
> > >> Valery.
> > >>
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > -Ilari
> > >> > _______________________________________________
> > >> > Plants mailing list -- plants@ietf.org <mailto:plants@ietf.org> 
> > >> > To unsubscribe send an email to plants-leave@ietf.org <mailto:plants-leave@ietf.org> 
> > >>
> > >> _______________________________________________
> > >> Plants mailing list -- plants@ietf.org <mailto:plants@ietf.org> 
> > >> To unsubscribe send an email to plants-leave@ietf.org <mailto:plants-leave@ietf.org> 
> > >>
> > >> _______________________________________________
> > >> Plants mailing list -- plants@ietf.org <mailto:plants@ietf.org> 
> > >> To unsubscribe send an email to plants-leave@ietf.org <mailto:plants-leave@ietf.org> 
> > >
> > >
> > >
> > > --
> > > Astra mortemque praestare gradatim
> > > _______________________________________________
> > > Plants mailing list -- plants@ietf.org <mailto:plants@ietf.org> 
> > > To unsubscribe send an email to plants-leave@ietf.org <mailto:plants-leave@ietf.org> 
>