Re: [TLS] Certificate compression draft

Victor Vasiliev <vasilvv@google.com> Mon, 06 March 2017 23:23 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 C279A1294ED for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 15:23:10 -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 4afsHQrpM6xF for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 15:23:08 -0800 (PST)
Received: from mail-qk0-x232.google.com (mail-qk0-x232.google.com [IPv6:2607:f8b0:400d:c09::232]) (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 8E7331294C5 for <TLS@ietf.org>; Mon, 6 Mar 2017 15:23:08 -0800 (PST)
Received: by mail-qk0-x232.google.com with SMTP id y76so49962447qkb.0 for <TLS@ietf.org>; Mon, 06 Mar 2017 15:23:08 -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=njo2tT8i5UbG/2NG9LMDHDD8wRC7d3Jd9u5Vjk7BmI4=; b=lfECXjk8Uk3wNCVG+dfMuRKW5hrLxLN2ch4OZxVAZWC419Ll/JMYryIaTNbrJhvs2D 3S9u/ZCW15PvqpwNLjR6lmwQXBA3w2yUgnxzkPYo1Yd2teIigBFnBHVV6/WJb6TivbNm 85TV7qYxV4W4bu5ElSHbzXWR/FnKnbM2eSs7XmSUOjJ0gdFwLOVGW4xwf29uCoO/IMPo mf/v100vez7PHZS1SP/U01IBOERagX1JDqRriZB8JQnjH5bB/S/eqzE6ijvkw4Y4P0Pj nJpL3kORVwor60olUwdPL1uXFqWpofECNYbGD8yYKPkya7X85BqlJE7h+g7HsKIr9/ay XNIA==
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=njo2tT8i5UbG/2NG9LMDHDD8wRC7d3Jd9u5Vjk7BmI4=; b=WSBDc0SVCgVRP0CDcQiR8sWqoFWR7YcAa2a22FmFBKvQrcKLMT2Lbn3wXRmRwHVktJ lRozZ/Xu2yX8qL7gKVxiZgYZ+0kwvnlH1L6sNpdpbPLGYvat2QdSOFd5lTA72hHNP0eF bgC9m8PTZCLxlwVPA6YmbSpcH/DnwlZ+KNJrIAFbLGuFWXIOrU52qTEkTArx8rwLyCmV y+27HIJovytEDlKhvq8WwAk/0rUZfF2fMEsNCS9CKZJrhKPsSUBztS6nUGKDH0rhQRkp SZDEjr1YGomwp6XWOH+4PydyxOvAxZrzsBHO9YPFkIoBIA2X5GyFNloYthrkZpO9Dcto gwaw==
X-Gm-Message-State: AMke39mUdewOZ6H9GPySjenl9V6ITetpDEAfrbpN30ps3DyQXFVyqT0ExlBUBrICtR3XGBkusV9mqdqWM7qO+C5r
X-Received: by 10.237.40.66 with SMTP id r60mr13338528qtd.42.1488842587516; Mon, 06 Mar 2017 15:23:07 -0800 (PST)
MIME-Version: 1.0
Received: by 10.55.47.4 with HTTP; Mon, 6 Mar 2017 15:23:07 -0800 (PST)
In-Reply-To: <CABkgnnU54SeYDBL=YBRQn0ZThk=C59Rztvr2zkUCLSSv2cKTDg@mail.gmail.com>
References: <CAAZdMacAcSUL4sqLPA1E9-z_VaUSd1P5PpPryO+XQso0eUtThw@mail.gmail.com> <CABkgnnU54SeYDBL=YBRQn0ZThk=C59Rztvr2zkUCLSSv2cKTDg@mail.gmail.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Mon, 6 Mar 2017 18:23:07 -0500
Message-ID: <CAAZdMaf9n_37soxdJ9ACFFke=iXyux82QEVnr5XgmS2bs2FTYA@mail.gmail.com>
To: Martin Thomson <martin.thomson@gmail.com>
Content-Type: multipart/alternative; boundary=001a1148755a8e7e6e054a182d95
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/zthJWXror9O8veDN6HmOKbbcRYo>
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: Mon, 06 Mar 2017 23:23:11 -0000

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-
> 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
> >
>