Re: [TLS] Certificate compression draft

Rob Stradling <rob.stradling@comodo.com> Thu, 09 March 2017 11:55 UTC

Return-Path: <rob.stradling@comodo.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 EEE13129564 for <tls@ietfa.amsl.com>; Thu, 9 Mar 2017 03:55:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 kJuKp35u4OtN for <tls@ietfa.amsl.com>; Thu, 9 Mar 2017 03:55:46 -0800 (PST)
Received: from rmdccgokm1.reyn.mcr.dc.comodo.net (sgomail.comodogroup.com [IPv6:2a02:1788:402:430::9708:41f4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E280112953A for <tls@ietf.org>; Thu, 9 Mar 2017 03:55:45 -0800 (PST)
Received: (korumail 29034 invoked from network); 9 Mar 2017 11:55:43 -0000
Received: from unknown (HELO maileu.comodo.net) () by 0 with SMTP; 9 Mar 2017 11:55:43 -0000
Received: from [192.168.0.58] ([192.168.0.58]) by maileu.comodo.net (IceWarp 11.4.5.0 DEB8 x64) with ASMTP (SSL) id 201703091155438164; Thu, 09 Mar 2017 11:55:43 +0000
To: Hannes Tschofenig <hannes.tschofenig@gmx.net>
References: <CAAZdMacAcSUL4sqLPA1E9-z_VaUSd1P5PpPryO+XQso0eUtThw@mail.gmail.com> <1cf1ff2e-3784-eac0-461f-335c043a8917@gmx.net>
From: Rob Stradling <rob.stradling@comodo.com>
Message-ID: <6d6ca0f7-9376-12f6-f4fc-b86484d06db1@comodo.com>
Date: Thu, 9 Mar 2017 11:55:43 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0
MIME-Version: 1.0
In-Reply-To: <1cf1ff2e-3784-eac0-461f-335c043a8917@gmx.net>
X-SMTP-Filter: Korumail SMTP Filter Engine Korumail 6.5
X-KORUMAIL-Result: Clean (Content eval: 0.000000 points)
X-KORUMAIL-Reason:
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/cXleRijKzO0wG1g7IluAMFEVxt8>
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: Thu, 09 Mar 2017 11:55:51 -0000

Hi Hannes.

Cached-Info is useful, but it can only "compress" if the client has 
previously seen and cached the server's certificate.

AIUI, the purpose of draft-ghedini-tls-certificate-compression is to 
enable compression even in cases where the client hasn't yet seen the 
server's certificate.

On 07/03/17 08:14, Hannes Tschofenig wrote:
> Hi Victor
>
> why don't you use RFC 7924:
> https://tools.ietf.org/html/rfc7924
>
> This provides an even better "compression" ratio.
>
> Ciao
> Hannes
>
>
> On 03/06/2017 11:58 PM, Victor Vasiliev 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.

-- 
Rob Stradling
Senior Research & Development Scientist
COMODO - Creating Trust Online