Re: [TLS] Certificate compression draft

Victor Vasiliev <vasilvv@google.com> Tue, 07 March 2017 00:15 UTC

Return-Path: <vasilvv@google.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46BB6129556 for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 16:15:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zFhveog49lfF for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 16:15:39 -0800 (PST)
Received: from mail-qk0-x235.google.com (mail-qk0-x235.google.com [IPv6:2607:f8b0:400d:c09::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 800D412941C for <TLS@ietf.org>; Mon, 6 Mar 2017 16:15:39 -0800 (PST)
Received: by mail-qk0-x235.google.com with SMTP id y76so51575373qkb.0 for <TLS@ietf.org>; Mon, 06 Mar 2017 16:15:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=6WEsx1z4hYaUmwBF9UfuHDQphh8/HuJK8XD+KOm6dvE=; b=XxJuXAza/x3cxA1Z1XY0Tm9r2/r+gX8P5cWX4/+RAErxQuRC5cJWAmx3lY3W1y06tJ 4OfvaqOWOzAdV3SytQ3fQnyi3AxN02CGNISWwxGgFGRHWd83rOAxD/CNSDYXG44kKwrW gDN5x328xsKaICYx/m8yV2nmPi/Vr71WVBaKyp3w06AqVmQC+6E450NVdRAvhCsLD9IV PF//yVQs7hM4Vgl9Zd4iby4aQk+DHFiAr9wHnkkY7pLy/xirXzsRdnQqLxGjJ/ZVRDrS 1GCOti72HN6Ch88s22y00yDbqaw3ViFunvzP0EySXtSIPE6EzCyZUH90SSTxBCK/ay52 KyRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=6WEsx1z4hYaUmwBF9UfuHDQphh8/HuJK8XD+KOm6dvE=; b=q5+T4o8EPCkWaM6Wo7Gqr1OS5wCRD/f+M3ppbaKaUjwebPxVoexEareJfIlsJ7dH/z uNLu0G9rgNHsjT2zKU5Po/ytUhmQCppBBlGwy8bl/MA12UNvLRNcqlXNbP5YGI2+WjbY yk702y1TrPI+hGX88gAkadJStHXPimjViRp5nw5RtpUO0ASdmM0UIf5ZY3uAXVii/Vwj IwNH682wIdNUkfOdSrwuAkZvUDn0oI1EbXA15WH8jgoO+JQ/yloPTs3e8OeGWkZm794a 0AO67o0Alsi9Dg6CjKBzlQ4Zk1SrxaChAHaSHxnYj1Q0ONqTZIMOr+PXZZtMLon/nKVm 7POw==
X-Gm-Message-State: AMke39ngEG88+kVeXZI8rN77AJNEV5ieKbNU5dwQqvVi3AWIJlHN5OS/IPGtncnXgDGk2UunzOj/9Xh0k0xUz+yD
X-Received: by 10.200.50.147 with SMTP id z19mr18430322qta.256.1488845738523; Mon, 06 Mar 2017 16:15:38 -0800 (PST)
MIME-Version: 1.0
Received: by 10.55.47.4 with HTTP; Mon, 6 Mar 2017 16:15:38 -0800 (PST)
In-Reply-To: <DDF306CD-EFC5-4E24-8ADE-64C432CEEAE4@cloudflare.com>
References: <CAAZdMacAcSUL4sqLPA1E9-z_VaUSd1P5PpPryO+XQso0eUtThw@mail.gmail.com> <CABkgnnU54SeYDBL=YBRQn0ZThk=C59Rztvr2zkUCLSSv2cKTDg@mail.gmail.com> <CAAZdMaf9n_37soxdJ9ACFFke=iXyux82QEVnr5XgmS2bs2FTYA@mail.gmail.com> <DDF306CD-EFC5-4E24-8ADE-64C432CEEAE4@cloudflare.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Mon, 6 Mar 2017 19:15:38 -0500
Message-ID: <CAAZdMaeXxA=UC5afPfi-U_zzJYtVVLZtkPvP2hAZmqpqzj5DTw@mail.gmail.com>
To: Vlad Krasnov <vlad@cloudflare.com>
Content-Type: multipart/alternative; boundary=001a113a1be65f0b11054a18e95d
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/g6iGnHp4Tx6W0nJhRIDDu49-UoE>
Cc: "tls@ietf.org" <TLS@ietf.org>
Subject: Re: [TLS] Certificate compression draft
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Mar 2017 00:15:41 -0000

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 <vlad@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 <vasilvv@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.thomson@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 <vasilvv@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-certifica
>> te-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
>
>
>