[Last-Call] Re: Secdir telechat review of draft-ietf-cose-tsa-tst-header-parameter-04

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stefan, me again.

Sorry for the top posting.

Could you please review this PR [1]?

[1] https://github.com/ietf-scitt/draft-birkholz-cose-tsa-tst-header-parameter/pull/48

cheers, t

On Mon, 17 Mar 2025 at 17:38, Thomas Fossati <thomas.fossati@xxxxxxxxxx> wrote:
>
> Hi Stefan,
>
> On Sun, 16 Mar 2025 at 02:22, Stefan Santesson <stefan@xxxxxxxxxxx> wrote:
> > I get worried when timestamps gets included in a non-traditional
> > fashion. And my experience tells me that there is a real threat here
> > that other implementers that comes from a traditional interpretation
> > of timestamps included in signatures will miss the fact that this
> > timestamp has very different security properties.
>
> Initially, the document defined only one claim and wasn't clear about
> the different semantics.  With -01 we moved to two claims precisely to
> expose the semantic separation at the syntactic level.  IOW we ensured
> that the input fed into the processing logic is strongly typed.  I don't
> want to be dismissive, but an implementation that opts to remove the
> typing information does so at its own peril, no?
>
> > At least I think it should be highlighted and discussed in the
> > security considerations section.
>
> OK, I'll try to add some text to the security considerations.
>
> > I also struggle to see the value in the intended workflow of TCC.
> >
> > If the payload contains data to be time-stamped, I argue that this is
> > an application specific process that should be handled outside of
> > COSE.
> >
> > If there is a compelling sound reason to integrate this with COSE,
> > then I think that this should be explained better in the document. I'm
> > sure you have reasons that I'm not aware of.
> >
> > My argument is that this is not part of the signing process, and is
> > not used to validate the signature. Therefore it does not belong
> > there. If it is part of the signing process, then CCT does the job in
> > a way that is well understood and is compatible with how this is
> > handled in all other signature formats.
>
> Both headers have been reviewed by the designated experts of the "COSE
> Header Parameters" registry, who didn't raise any exceptions abuot the
> "content-related" semantics of TTC.
> TBH, I would have been surprised if they did, since §3 of STD96 states
> the following: "[COSE headers] are used for holding information about
> content, algorithms, keys, or evaluation hints for the processing of
> the layer.”, which seems to cast a pretty wide net in terms of what
> headres can cover.
>
> > Finally. Something that I noted, but forget to include in my review:
> >
> > If you keep TCC, I would remove the following:
> >
> >     To minimize dependencies, the hash algorithm used for signing the
> >     COSE message SHOULD be the same as the algorithm used in the
> >     RFC3161 MessageImprint.
> >
> > I find this to be an unreasonable burden on implementations of
> > applications using COSE. Many applications implementing signing has
> > its own process to decide what algorithms to use when signing.
> > Changing a preconfigured (or negotiated) hash algorithm just because
> > the Timestamp Authority use another hash algorithm seems like an
> > unreasonable request.  In particular if the Timestamp Authority use a
> > weaker hash than I intended to use for signing.
> >
> > SHOULD seems to strong. A MAY would be more suitable IMO.
>
> The hash algorithm is chosen by the timestamp requestor, not by the TSA.
> And, in most cases, the timestamp requestor and the COSE signer are
> expected to be the same entity, i.e., the document holder. Therefore,
> I think it makes sense to try and minimise the algorithmic recipe.
> The situation where the timestamp requestor and the COSE signer are
> different seems like a good exception to the SHOULD rule.
> I'll add that to the rationale.
>
> > These are just my opinions, in case they are helpful.
>
> Of course, they are very helpful; thanks very much for spending your
> time and sharing your experience with us!
>
> On Sun, 16 Mar 2025 at 02:37, Stefan Santesson <stefan@xxxxxxxxxxx> wrote:
> > Just to illustrate what I prercieve as a threat with TCC. Here is a
> > pseudo code example of what I fear an implementer may produce if they
> > are not careful:
> >
> >
> > function (validateSignature(CoseSignature signature) {
> >
> >    signatureValid = CoseSignatureValidator.validate(signature)
> >
> >    if (signatureValid) {
> >      signingTime = TimeStampValidator.validate(signature.tccTimestamp, signature.payload)
> >
> >      certificateValid = CertificateValidator.validateCertificateChain(signature.chain, signingTime)
> >
> >      return signatureValid & certificateValid
> >    }
> >
> >    return false
> >
> > }
>
> This is a compelling illustration of the perils associated with casting
> away semantics that I mentioned above.
> As an implementer, I need to deliberately remove the typing information
> carried by the header label and consciously decide to force the input
> through some other logic.
>
> cheers!

-- 
last-call mailing list -- last-call@xxxxxxxx
To unsubscribe send an email to last-call-leave@xxxxxxxx




[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux