<Please use this thread for discussion>
Hi,

The TLS Certificate Compression standard was described in RFC 8879, and has 
been enabled in browser Chrome and Safari. What’s TLS Certificate Compression 
and what’s the benefits of this feature?

For TLS connections, a client must authenticate the identity of the server. 
This typically involves verification that the identity of the server is 
included in a certificate and that the certificate is issued by a trusted 
entity.

Where servers provide certificates for authentication, the size of the 
certificate chain can consume a large number of bytes. Controlling the size of 
certificate chains is critical to performance and security in QUIC. TLS 
certificate compression has the potential to ameliorate the attacks/problems by 
reducing the size of the handshakes to a size compatible with the security 
restriction.  The TLS Certificate Compression feature is an essential part for 
QUIC-TLS protocols.

For more details, please refer to section 4.4 in RFC 9001 (Using TLS to Secure 
QUIC):
---------
Note: Where servers provide certificates for authentication, the size of the 
certificate chain can consume a large number of bytes. Controlling the size of 
certificate chains is critical to performance in QUIC as servers are limited to 
sending 3 bytes for every byte received prior to validating the client address; 
see Section 8.1 of [QUIC-TRANSPORT]. The size of a certificate chain can be 
managed by limiting the number of names or extensions; using keys with small 
public key representations, like ECDSA; or by using certificate compression 
[COMPRESS].
————

and a more detailed description in the blog “Does the QUIC handshake require 
compression to be 
fast?”(https://www.fastly.com/blog/quic-handshake-tls-compression-certificates-extension-study
 
<https://www.fastly.com/blog/quic-handshake-tls-compression-certificates-extension-study>).
   I just copy part of the conclusion section of the bog here for your quick 
reference.
---------
First, the TLS certificate compression extension has a very large impact on 
QUIC performance. Even though the extension is new and being introduced fairly 
late in the process when compared to overall QUIC deployment schedules, it 
seems quite important for both clients and servers to implement the new 
extension so that the QUIC handshake can live up to its billing. Without some 
help, 40% of QUIC full handshakes would be no better than TCP, but compression 
can repair most of that issue. I have heard of other non-standardized 
approaches to reducing the size of the certificate chain, and they seem 
reasonable, but this is a problem worth addressing immediately with the 
existing compression extension.
...
Lastly, data from the real world again proves to be more insightful than 
intuition and is invaluable in making protocol design and implementation 
decisions. When I started this work I expected the impact of compression to be 
positive but marginally focused on a few edge cases. The data shows this optimi
zation lands right on the sweet spot that ties configurations and the QUIC 
specification together and impacts a large portion of QUIC handshakes. My 
thanks to the authors of the compression extension.
---------


Besides, reducing the amount of information exchanged during a TLS handshake to 
a minimum helps to improve performance in environments, for example Internet of 
Things, where devices are connected to a network with a low bandwidth and lossy 
radio technology.

This feature is a part to improve the performance of TLS connections, and it is 
also a part of the path towards QUIC standards.

Chrome support TLS certificate compression with Brotil compression algorithm, 
and Safari support TLS certificate compression with Zlib compression algorithm.

In a summary, JDK could benefits from support RFC 8879 in the following areas:

    Performance - Reduce latency and improve performance of TLS and QUIC 
connections by support the TLS certificate compression standard in JDK.
    Security - Mitigate the impact of amplification attacks threat by reducing 
the size of the TLS handshakes with compressed certificates.

What do you think?  Do you want it to be a part of OpenJDK?  Please feel free 
to share you comments.

Thanks,
Xuelei

Reply via email to