I'm trying to recall why that text exists. I think the idea wasn't that you
actually couldn't start processing it but that you had to keep it rather
than discard it.

Without thinking it through completely, I think it would probably be safe
to add something about gradual processing, but your text seems to allow
throwing it away, which seems undesirable.

-Ekr


On Sat, Nov 6, 2021 at 12:36 PM Hanno Becker <hanno.bec...@arm.com> wrote:

> > There are a number of postquantum algorithms (e.g. NTRU, Falcon,
> Dilithium) that require considerably smaller key shares/signatures - we're
> talking about the 1k-2k range.  It would sounds reasonable that an MCU
> implementation might want to consider those algorithms, if they are more
> suitable for their deployment model.
>
> I agree that this seems most likely, but it's hard to foresee all contexts
> in which [D]TLS 1.3 might be deployed.
> I'm uncomfortable wording the standard in a way that renders potential
> use cases requiring the use of larger
> schemes and gradual processing non-compliant.
> ------------------------------
> *From:* Scott Fluhrer (sfluhrer) <sfluh...@cisco.com>
> *Sent:* Saturday, November 6, 2021 1:56 PM
> *To:* Achim Kraus <achimkr...@gmx.net>; Hanno Becker <hanno.bec...@arm.com
> >
> *Cc:* tls@ietf.org <tls@ietf.org>
> *Subject:* RE: [TLS] DTLS 1.2 and 1.3: HS message reassembly prior to
> processing
>
> There are a number of postquantum algorithms (e.g. NTRU, Falcon,
> Dilithium) that require considerably smaller key shares/signatures - we're
> talking about the 1k-2k range.  It would sounds reasonable that an MCU
> implementation might want to consider those algorithms, if they are more
> suitable for their deployment model.
>
> -----Original Message-----
> From: TLS <tls-boun...@ietf.org> On Behalf Of Achim Kraus
> Sent: Saturday, November 6, 2021 6:22 AM
> To: Hanno Becker <hanno.bec...@arm.com>
> Cc: tls@ietf.org
> Subject: Re: [TLS] DTLS 1.2 and 1.3: HS message reassembly prior to
> processing
>
> Hi Hanno,
>
>  > Note also that in the context of Post-Quantum Crypto, we're sometimes
> > talking about key material >100Kb - this is an issue for MCUs.
>
> I didn't say, this is impossible, it's more that in my opinion for DTLS
> 1.2 it doesn't pay off. Considering 100k, I guess, that will require a
> more general update of the RFCs, not just that MUST. For IoT it may be also
> valid, to assume that such large public keys will be shared ahead by other
> means.
>
> best regards
> Achim
>
> Am 06.11.21 um 09:18 schrieb Hanno Becker:
> > Hey Achim,
> >
> > Thanks for the quick reply!
> >
> > Actually, for TLS, you can do the same: Process handshake messages
> > piece by piece (ordered, this time), without full reassembly. I'm not
> > aware that the TLS spec forbids that, or does it?
> >
> > For Post-Quantum Crypto, streaming implementations of schemes with
> > very large key materials are a thing, see e.g. SPHINCS or McEliece [1].
> > However, those are only of value for (D)TLS if the (D)TLS stack
> > forwards data to the handshake layer prior to full reassembly --
> > again, both in TLS and DTLS.
> >
> > You're right that in DTLS the situation is even harder, because
> > fragments might be received out of order. But that doesn't mean
> > there's no way of potentially processing them out of order -- it very
> > much depends on the data. E.g. if you receive a huge matrix which
> > you'd like to perform a matrix-vector multiplication with, you can do
> > that entry by entry -- so long as you know the offset of the data you
> > received, which you do of course.
> >
> > Note also that in the context of Post-Quantum Crypto, we're sometimes
> > talking about key material >100Kb - this is an issue for MCUs.
> >
> > I think a MUST like this should have a justification. If there's none,
> > then IMO it should be left out for the benefit of implementation
> flexibility.
> >
> > Cheers,
> > Hanno
> >
> > [1]:
> >
> > Johannes Roth and Evangelos Karatsiolis and Juliane Krämer
> >
> > "Classic McEliece Implementation with Low Memory Footprint",
> > https://eprint.iacr.org/2021/138 <https://eprint.iacr.org/2021/138>,
> > Cryptology ePrint Archive: Report 2021/138 - Classic McEliece
> > Implementation with Low Memory Footprint - IACR
> > <https://eprint.iacr.org/2021/138>
> > Cryptology ePrint Archive: Report 2021/138. Classic McEliece
> > Implementation with Low Memory Footprint. Johannes Roth and Evangelos
> > Karatsiolis and Juliane Krämer eprint.iacr.org
> >
> > //
> >
> > ----------------------------------------------------------------------
> > --
> > *From:* Achim Kraus <achimkr...@gmx.net>
> > *Sent:* Saturday, November 6, 2021 7:36 AM
> > *To:* Hanno Becker <hanno.bec...@arm.com>
> > *Cc:* tls@ietf.org <tls@ietf.org>
> > *Subject:* Re: [TLS] DTLS 1.2 and 1.3: HS message reassembly prior to
> > processing Hi Hanno,
> >
> >   > Can someone explain the underlying rationale?
> >
> > I can only guess, that this makes the processing of the handshake
> > messages equal to TLS. So it's separating the layers (record layer -
> > handshake layer).
> >
> >   > It seems that in the context of very large key material or
> > certificate
> >   > chains (think e.g. PQC), gradual processing of handshake messages
> >   > (where possible) is useful to reduce RAM usage.
> >   > Is there a security risk in doing this?
> >
> > I'm not sure, if such an approach really pays off. Consider, that
> > sometimes the fragments may be reordered or single fragments are
> > missing. Under such conditions, collecting the fragments is a
> > solution, which makes receiving the complete message more probable.
> > For me, if someone decides to go with x509, then please provide the RAM.
> > That RAM may only be used temporary, later it may be used for
> > application payload processing. So, I don't think this should be
> > really an issue.
> >
> >   > It would also be useful for stateless handling of fragmented
> >   > ClientHello messages. I'm sure this was discussed before but
> >   > I don't remember where and who said it, but a server
> > implementation
> >   > could peek into the initial fragment of a ClientHello, check if it
> >   > contains a valid cookie, and if so, allocate state for subsequent
> > full
> >   > reassembly. That wouldn't be compliant with the above MUST,
> > though,
> >   > as far as I understand it.
> >
> > How do you want to calculate the cookie. According:
> >
> > https://datatracker.ietf.org/doc/html/rfc6347#section-4.2.1
> > <https://datatracker.ietf.org/doc/html/rfc6347#section-4.2.1>
> >
> > Cookie = HMAC(Secret, Client-IP, Client-Parameters)
> >
> > So, which Client-Parameters are included?
> > For me, stateless processing would require to challenge the first
> > fragment (0) only, though otherwise, I can't see, how that could work
> > stateless.
> > If the cookie is build only for the first fragment, you must ensure,
> > that the Client-Parameters, which may be shifted by the cookie to the
> > next fragment, are excluded from the cookie's Client-Parameters,
> > otherwise you will not be able to do a stateless check of first
> > fragment with cookie.
> >
> > But that all seems for me to be not mentioned nor intended by RFC6347.
> > Therefore I would recommend, to use less Client-Parameters to make the
> > ClientHello small. That's one good reason for RFC7252 to define a
> > mandatory set, clients can rely on.
> >
> > best regards
> > Achim Kraus
> >
> > Am 05.11.21 um 20:14 schrieb Hanno Becker:
> >> Hi all,
> >>
> >> Both DTLS 1.2 and DTLS 1.3 mandate:
> >>
> >>  > When a DTLS implementation receives a handshake message fragment
> >>corresponding to the next expected handshake message sequence number,
> >>it  MUST buffer it until it has the entire handshake message.
> >>
> >> Can someone explain the underlying rationale?
> >>
> >> It seems that in the context of very large key material or
> >> certificate chains (think e.g. PQC), gradual processing of handshake
> >> messages (where possible) is useful to reduce RAM usage.
> >> Is there a security risk in doing this?
> >>
> >> It would also be useful for stateless handling of fragmented
> >> ClientHello messages. I'm sure this was discussed before but I don't
> >> remember where and who said it, but a server implementation could
> >> peek into the initial fragment of a ClientHello, check if it contains
> >> a valid cookie, and if so, allocate state for subsequent full
> >> reassembly. That wouldn't be compliant with the above MUST, though,
> >> as far as I understand it.
> >>
> >> Thanks!
> >> Hanno
> >> IMPORTANT NOTICE: The contents of this email and any attachments are
> >> confidential and may also be privileged. If you are not the intended
> >> recipient, please notify the sender immediately and do not disclose
> >> the contents to any other person, use it for any purpose, or store or
> >> copy the information in any medium. Thank you.
> >>
> >> _______________________________________________
> >> TLS mailing list
> >> TLS@ietf.org
> >> https://www.ietf.org/mailman/listinfo/tls
> > <https://www.ietf.org/mailman/listinfo/tls>
> >>
> >
> > IMPORTANT NOTICE: The contents of this email and any attachments are
> > confidential and may also be privileged. If you are not the intended
> > recipient, please notify the sender immediately and do not disclose
> > the contents to any other person, use it for any purpose, or store or
> > copy the information in any medium. Thank you.
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to