Hi Ilari,

On 10/07/2023 20:19, Ilari Liusvaara wrote:
What does "Note that the connection will fail regardless even if this
step is not taken as neither certificate validation nor transcript
validation can succeed." mean? TLS certificate compression does not
do anything special with transcript, so transcript validation should
always succeed.

TLS Certificate Compression influences the transcript for the decompressing party, as the output is the Certificate message which is used in the transcript. So if the Certificate message is incorrectly formatted, then the the decompressing party will likely bail when passing it to the TLS library. Even if they succeed and try to use it in a transcript calculation, the compressing party's transcript includes the uncompressed certificate directly and so will differ.

And are there zstd decoders that can reuse output buffer in oneshot
decompression for lookback? The zstd command line tool manual page
mentions default 128MB memory limit for decompression. I presume
mostly for lookback. Such limit is way too large.
Zstd is already supported without a dictionary for TLS Certificate Compression so others with deployment experience may be able to give an authoritative answer. That said, Facebook's Zstd implementation is permissively licensed, used in the Linux Kernel and their discussion here <https://github.com/facebook/zstd/issues/2093> suggests much smaller limits are fine.
And an alternative idea:

[...]

1) Where if next certificate in chain is also not found, zstd uses
    empty dictionary. Otherwise it uses dictionary associated with the
    next certificate in chain.

[...]

This allows dictionaries to be specific to CA, avoiding tradeoffs
between CAs.

Interesting idea! Can you share more about the motivation for using many small dictionaries rather than a single combined one? Is it purely for supporting memory constrained devices? We can already ensure that each CA contributes an equal number of bytes to the pass 2 dictionary.

One drawback is that some of the data isn't unique to a particular issuer (e.g. the CT log ids) and so would either have to be handled in its own pass or be included as redundant data in each individual dictionary.

Best,
Dennis
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to