Don't know about neutral dictionary, but simply compressing Cloudflare cert 
using Google cert, gives an additional 6% using brotli -15.

I would rather have a biased dictionary than none at all :)

Cheers,
Vlad

> On Mar 6, 2017, at 4:38 PM, Martin Thomson <martin.thom...@gmail.com> wrote:
> 
> Seems like you might get some traction with adding www. .com, some DN
> fields (CN=, O=, C=), common OIDs, with some OIDs attached to values
> (like key usage and signature algorithm).  Most of that is relatively
> short though.
> 
>> On 7 March 2017 at 11:15, Victor Vasiliev <vasi...@google.com> wrote:
>> Hi Vlad,
>> 
>> This is still an open issue:
>> https://github.com/ghedo/tls-certificate-compression/issues/2
>> 
>> The problem here is creating a dictionary that is both neutral with respect
>> to
>> the certificate's issuing authority, and actually has a noticeable effect.
>> So
>> far my personal attempts at making such a dictionary have not been very
>> successful, but this might change.  Even if we get a dictionary, I do not
>> expect the effect to be large compared to the effect of just compressing the
>> chain in the first place.
>> 
>>  -- Victor.
>> 
>>> On Mon, Mar 6, 2017 at 6:32 PM, Vlad Krasnov <v...@cloudflare.com> wrote:
>>> 
>>> Hi Victor,
>>> 
>>> Have you considered creating a common dictionary, similarly to what SPDY
>>> did for header compression?
>>> 
>>> Cheers,
>>> Vlad
>>> 
>>> 
>>> On Mar 6, 2017, at 3:23 PM, Victor Vasiliev <vasi...@google.com> wrote:
>>> 
>>> Hi Martin,
>>> 
>>> I've measured the effect of compression on a corpus of popular website
>>> certificate chains I had lying around (Alexa Top 100k from a few years
>>> ago),
>>> and the effect seems to be about -30% of size at the median and -48% at
>>> 95th
>>> percentile (with Brotli, subtract 3-5% for zlib).
>>> 
>>> I think the most dramatic effect from the compression is observed for the
>>> certificates with a lot of SNI values, which is not uncommon.
>>> 
>>>  -- Victor.
>>> 
>>> On Mon, Mar 6, 2017 at 6:06 PM, Martin Thomson <martin.thom...@gmail.com>
>>> wrote:
>>>> 
>>>> Hi Victor,
>>>> 
>>>> Do you have any evidence to suggest that this reduces size in any
>>>> meaningful way?  Certificates tend to include both repetitious values
>>>> (OIDs), and non-repetitious values (keys).
>>>> 
>>>>> On 7 March 2017 at 09:58, Victor Vasiliev <vasi...@google.com> wrote:
>>>>> Certificate compression has been discussed on this list briefly before,
>>>>> and
>>>>> there was some interest in at least considering a draft for it.  The
>>>>> draft
>>>>> now
>>>>> exists (co-authored by Alessandro and myself), and it can be found at:
>>>>> 
>>>>> 
>>>>> https://datatracker.ietf.org/doc/draft-ghedini-tls-certificate-compression/
>>>>>  [ GitHub repo: https://github.com/ghedo/tls-certificate-compression ]
>>>>> 
>>>>> The proposed scheme allows a client and a server to negotiate a
>>>>> compression
>>>>> algorithm for the server certificate message.  The scheme is purely
>>>>> opt-in
>>>>> on
>>>>> both sides.  The current version of the draft defines zlib and Brotli
>>>>> compression, both of which are well-specified formats with an existing
>>>>> deployment experience.
>>>>> 
>>>>> There are multiple motivations to compress certificates.  The first one
>>>>> is
>>>>> that
>>>>> the smaller they are, the faster they arrive (both due to the transfer
>>>>> time
>>>>> and
>>>>> a decreased chance of packet loss).
>>>>> 
>>>>> The second, and more interesting one, is that having small certificates
>>>>> is
>>>>> important for QUIC in order to achieve 1-RTT handshakes while limiting
>>>>> the
>>>>> opportunities for amplification attacks.  Currently, TLS 1.3 over TCP
>>>>> without
>>>>> client auth looks like this:
>>>>> 
>>>>>  Round trip 1: client sends SYN, server sends SYN ACK
>>>>>    Here, the server provides its own random value which client will
>>>>>    have to echo in the future.
>>>>>  Round trip 2: client sends ACK, ClientHello, server sends
>>>>> ServerHello...Finished
>>>>>    Here, ACK confirms to server that the client can receive packets
>>>>> and is
>>>>> not
>>>>>    just spoofing its source address.  Server can send the entire
>>>>> ServerHello to
>>>>>    Finished flight.
>>>>> 
>>>>> In QUIC, we are trying to merge those two rounds into one.  The
>>>>> problem,
>>>>> however, is that the ClientHello is one packet, and
>>>>> ServerHello...Finished
>>>>> can
>>>>> span multiple packets, meaning that this could be used as an
>>>>> amplification
>>>>> attack vector since the client's address is not yet authenticated at
>>>>> this
>>>>> point.
>>>>> In order to address this, the server has to limit the number of packets
>>>>> it
>>>>> sends
>>>>> during the first flight (i.e. ServerHello...Finished flight).  Since
>>>>> certificates make up the majority of data in that flight, making them
>>>>> smaller
>>>>> can push them under the limit and save a round-trip.
>>>>> 
>>>>> Cheers,
>>>>>  Victor.
>>>>> 
>>>>> _______________________________________________
>>>>> 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
>>> 
>>> 
>> 

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

Reply via email to