Thank you for the suggestion, Sean.

Hi all, please discuss the proposal in the new thread: 
   https://mail.openjdk.java.net/pipermail/security-dev/2022-March/029242.html

Xuelei

> On Mar 7, 2022, at 10:16 AM, Sean Mullan <sean.mul...@oracle.com> wrote:
> 
> Hi Xuelei,
> 
> Please start this discussion in a new thread with a new subject (ex: Proposal 
> for potential new feature: TLS Certificate Compression) as it should be 
> evaluated on its own prior to reaching consensus and deciding if a JEP should 
> be drafted.
> 
> Also, keep in mind that it may take a few days or longer for members of the 
> Security Group and other interested participants to find time to review new 
> proposals for significant features.
> 
> Thanks,
> Sean
> 
> On 2/28/22 3:33 PM, xueleifan(XueleiFan) wrote:
>> Hi,
>> It may be better to have more detail here, rather than refer you to the 
>> draft JEP.  The first question maybe, if TLS Certificate Compression is 
>> something we want it in OpenJDK?
>> The TLS Certificate Compression standard was described in RFC 8879, and has 
>> been enabled in browser Chrome and Safari. But, 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 
>> optimization 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.
>> Please feel free to share you comments, if it is something we want in 
>> OpenJDK?
>> Thanks,
>> Xuelei
>>> On Feb 28, 2022, at 10:57 AM, xueleifan(XueleiFan) <xuelei...@tencent.com 
>>> <mailto:xuelei...@tencent.com>> wrote:
>>> 
>>> Hi,
>>> 
>>> Could I have this JEP reviewed?  One or more qualified Committers review is 
>>> required to move it forward.
>>> 
>>> Here is the PR if you want to have a further look at the implementation and 
>>> test:
>>> https://github.com/openjdk/jdk/pull/7599 
>>> <https://github.com/openjdk/jdk/pull/7599>
>>> 
>>> Thanks,
>>> Xuelei
>>> 
>>>> On Feb 15, 2022, at 9:30 PM, xueleifan(XueleiFan) <xuelei...@tencent.com 
>>>> <mailto:xuelei...@tencent.com>> wrote:
>>>> 
>>>> Hi all,
>>>> 
>>>> The JDK Enhancement Proposal, TLS Certificate Compression, has been opened 
>>>> for community review.  Detailed, please refer to the draft:
>>>> 
>>>> https://bugs.openjdk.java.net/browse/JDK-8281710 
>>>> <https://bugs.openjdk.java.net/browse/JDK-8281710>
>>>> 
>>>> Feel free to make comment and send your feedback to the alias.  I may 
>>>> submit this JEP in the beginning of next week if I hear no objections by 
>>>> the end of this week.
>>>> 
>>>> Thanks,
>>>> Xuelei
>>>> 
>>> 
> 

Reply via email to