Re: [TLS] Certificate compression draft

Vlad Krasnov <vlad@cloudflare.com> Mon, 06 March 2017 23:32 UTC

Return-Path: <vlad@cloudflare.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 BB9E9129545 for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 15:32:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cloudflare.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 jaBjba20dPzK for <tls@ietfa.amsl.com>; Mon, 6 Mar 2017 15:32:43 -0800 (PST)
Received: from mail-pg0-x236.google.com (mail-pg0-x236.google.com [IPv6:2607:f8b0:400e:c05::236]) (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 35A14129539 for <TLS@ietf.org>; Mon, 6 Mar 2017 15:32:43 -0800 (PST)
Received: by mail-pg0-x236.google.com with SMTP id 187so17637341pgb.3 for <TLS@ietf.org>; Mon, 06 Mar 2017 15:32:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=F21UYfzfInyH0mPGhilsPk8rCIRjndyvDWloOu/46Vo=; b=BsmPezPWWRoO5g8ESbgkqTgin4gaI1m8DgqqhpSi5f7MbR3LaNO90KUSq2Tp3g7cIp UVTT1wkTvRFPvxHYeK7QCAkQVy9xbeHjVu3h9MmQ2JXab098WalJUAGvsPC05nAwwhbj QLZTur+tgmrZTyZjIebYv8OIuFfY72p9SAVLg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=F21UYfzfInyH0mPGhilsPk8rCIRjndyvDWloOu/46Vo=; b=ATIJcAYmJrP0gchNU7us06eUnURzSr1RliDI9isOSdEaadBZvM5/M8a+a8mVHt3Jcl Y2Z2cAWcbMSOQY2hCxncpMCmojLqSCV4QsdFWHuMve9awB3L+JRzbk5I0m3vX6bM7Por RcU4BIDolhZZ6Pv4DyiikmYDWpMkBYxLHpaZsRt5wRx1pjs1fKGBLTAn/Sao0oONd3rc 0/0UimPKX16R0033QK+rA4ZIL2acNg80zpZfOwhKRmITnqU93lyXMZ0g5YfKNC//vZ0w dD+6F3uujVIxA5e0c4umirSfSHk+KsJAjo9fT0TOpO2OKJQjIgOp8aJRD+iDqgcYfr6v SxKA==
X-Gm-Message-State: AMke39myuITuZl1iPbqqM6+e4GCAz9ShfSHgFiVsw1BV6OlazJNFDeLdrOuAMYX88b9sjopx
X-Received: by 10.99.253.5 with SMTP id d5mr23460022pgh.47.1488843162619; Mon, 06 Mar 2017 15:32:42 -0800 (PST)
Received: from ?IPv6:2606:4700:ff01:8210:65ea:98d2:4eca:88a7? ([2606:4700:ff01:8210:65ea:98d2:4eca:88a7]) by smtp.gmail.com with ESMTPSA id c195sm41564614pfb.60.2017.03.06.15.32.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Mar 2017 15:32:42 -0800 (PST)
From: Vlad Krasnov <vlad@cloudflare.com>
Message-Id: <DDF306CD-EFC5-4E24-8ADE-64C432CEEAE4@cloudflare.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_FFC9EE75-DAE5-4B49-AA74-84E7939A89C9"
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Date: Mon, 6 Mar 2017 15:32:41 -0800
In-Reply-To: <CAAZdMaf9n_37soxdJ9ACFFke=iXyux82QEVnr5XgmS2bs2FTYA@mail.gmail.com>
To: Victor Vasiliev <vasilvv@google.com>
References: <CAAZdMacAcSUL4sqLPA1E9-z_VaUSd1P5PpPryO+XQso0eUtThw@mail.gmail.com> <CABkgnnU54SeYDBL=YBRQn0ZThk=C59Rztvr2zkUCLSSv2cKTDg@mail.gmail.com> <CAAZdMaf9n_37soxdJ9ACFFke=iXyux82QEVnr5XgmS2bs2FTYA@mail.gmail.com>
X-Mailer: Apple Mail (2.3259)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/Tasm_awM5TA0UDcAbOkSxY2uRwE>
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:32:45 -0000

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 <mailto: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 <mailto: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/ <https://datatracker.ietf.org/doc/draft-ghedini-tls-certificate-compression/>
> >   [ GitHub repo: https://github.com/ghedo/tls-certificate-compression <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 <mailto:TLS@ietf.org>
> > https://www.ietf.org/mailman/listinfo/tls <https://www.ietf.org/mailman/listinfo/tls>
> >
> 
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls