Re: [TLS] Merkle Tree Certificates

Hubert Kario <hkario@redhat.com> Tue, 21 March 2023 12:01 UTC

Return-Path: <hkario@redhat.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 8EB09C1522C6 for <tls@ietfa.amsl.com>; Tue, 21 Mar 2023 05:01:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.096
X-Spam-Level:
X-Spam-Status: No, score=-7.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id agFYwHHfjXue for <tls@ietfa.amsl.com>; Tue, 21 Mar 2023 05:01:07 -0700 (PDT)
Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BD2CCC14CE5F for <tls@ietf.org>; Tue, 21 Mar 2023 05:01:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679400066; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ap6PnMM3cFD9jRoPbXKr9CZiJuKcl9isZAx0kLGVSgA=; b=aP8AUYyqT/Rr8X7aFtw2m4FMCeROuZDsNmb83RfnZDzjJCZyXKeFgfZQw6hriqHbzlCvG3 He6rpbbQEppPyFylWcnSaMUZb9ndBIDSIvYMKui7uQDD1oNyuYULMYHj8xixW1+bBWGbF/ oclFz6OgdPjoTkXyK8srKV9/BtSCWnE=
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-447-nRufNCOWPkKyPHxTsBypQw-1; Tue, 21 Mar 2023 08:01:05 -0400
X-MC-Unique: nRufNCOWPkKyPHxTsBypQw-1
Received: by mail-wr1-f70.google.com with SMTP id j17-20020adfb311000000b002d660153278so612477wrd.20 for <tls@ietf.org>; Tue, 21 Mar 2023 05:01:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679400064; h=content-transfer-encoding:user-agent:organization:references :in-reply-to:message-id:mime-version:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=CZoROpCxf2XgzJ3mTizrsc+4h1RZ5rpHHGRf/oVx7eA=; b=Cxfex1xST+0ylVLazA1N5A5BLEhXw9gkfIYFE1kb4tFlC8t5pnCMD5262omHZYarqy Dsz7Q+OJ30KDLE1P8KBQ5IZc3O2WHzBj9Vto9sRKIIE+XbsfakiW05ZYJS7Hv6XjrZcS Vh5QZE3i4QW77z3OsfwYniigVT6/uTJLgl9yNldR1qv0x76/YaE5r6Jp05l1Ng4kO86C fGvcGFUcuYTXh0fbkK5ZEnC0YBnb5oDu9VpWtWJSmVGOj3jZ9Hb1VbDWAKDX7Nxh3Ly5 HVZopoSJYJme/kUnLfyNEJ3IvsYpBlGbvmj8h6cZoIOYpeCMp/Iwq0XmUa91dTx4X4IT LzYQ==
X-Gm-Message-State: AO0yUKW3a7xFeISR0mjhJ8Mq3zHn33zSagon3Du8PMY/X5XHkH0YB+Ly 3acsIlsZoOtPU5NSQ8Cu/FLzegxxv2DWjVZrTAvRLLdI/0Cc89hjc+wsnWBI+zBH3cXrjuD1bbu fvQo=
X-Received: by 2002:a7b:ca57:0:b0:3ea:edd7:1f24 with SMTP id m23-20020a7bca57000000b003eaedd71f24mr2011082wml.39.1679400063935; Tue, 21 Mar 2023 05:01:03 -0700 (PDT)
X-Google-Smtp-Source: AK7set+9WUyJyvubAPrI/v0EcV3uufm6s1NTI8F+0IiFpl4bXt5OVB2IsPAArh+suAtsfcGtSk58Xg==
X-Received: by 2002:a7b:ca57:0:b0:3ea:edd7:1f24 with SMTP id m23-20020a7bca57000000b003eaedd71f24mr2011064wml.39.1679400063593; Tue, 21 Mar 2023 05:01:03 -0700 (PDT)
Received: from localhost (ip-94-112-137-58.bb.vodafone.cz. [94.112.137.58]) by smtp.gmail.com with ESMTPSA id e4-20020a05600c4e4400b003e8f0334db8sm19425725wmq.5.2023.03.21.05.01.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 05:01:03 -0700 (PDT)
From: Hubert Kario <hkario@redhat.com>
To: David Benjamin <davidben@chromium.org>
Cc: "Kampanakis, Panos" <kpanos@amazon.com>, "<tls@ietf.org>" <tls@ietf.org>, Devon O'Brien <asymmetric@google.com>
Date: Tue, 21 Mar 2023 13:01:02 +0100
MIME-Version: 1.0
Message-ID: <8f6ffb56-ed99-46b9-92c4-e07b75f7d85c@redhat.com>
In-Reply-To: <CAF8qwaBe6o3ASer_wnztse_Wk7RwofkpzuPfVGdo7AGjN6T9aw@mail.gmail.com>
References: <167848430887.5487.1347334366320377305@ietfa.amsl.com> <CAF8qwaD9x5v1uU6mLtnUAGMnBW881ZE0ymK8rsQzrV2hfj7yHA@mail.gmail.com> <e1bffaf7-bca0-45d0-a844-39d20473c446@redhat.com> <a24924a2cc2b4afba890660bdc2c220d@amazon.com> <CAF8qwaBe6o3ASer_wnztse_Wk7RwofkpzuPfVGdo7AGjN6T9aw@mail.gmail.com>
Organization: Red Hat
User-Agent: Trojita/0.7-git; Qt/5.15.7; xcb; Linux; Fedora release 36 (Thirty Six)
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/f9Z9HCD7fh4iDXEUfkb8IHefcl4>
Subject: Re: [TLS] Merkle Tree Certificates
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.39
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, 21 Mar 2023 12:01:09 -0000

On Monday, 20 March 2023 19:54:24 CET, David Benjamin wrote:
> I don't think flattening is the right way to look at it. See my 
> other reply for a discussion about flattening, and how this does 
> a bit more than that. (It also handles SCTs.)
>
> As for RFC 7924, in this context you should think of it as a 
> funny kind of TLS resumption. In clients that talk to many 
> servers[0], the only plausible source of cached information is a 
> previous TLS exchange. Cached info is then: if I previously 
> connected to you and I am willing to correlate that previous 
> connection to this new one, we can re-connect more efficiently. 
> It's a bit more flexible than resumption---it doesn't replace 
> authentication, so we could conceivably use larger lifetimes. 
> But it's broadly the same w.r.t. when it can be used. It doesn't 
> help the first connection to a service, or a service that was 
> connected long enough ago that it's fallen off the cache. And it 
> doesn't help across contexts where we don't want correlation. 
> Within a web browser, things are a bit more partitioned these 
> days, 
> see https://github.com/MattMenke2/Explainer---Partition-Network-State/blob/main/README.md 
> and https://github.com/privacycg/storage-partitioning.

Sorry, but as long as the browsers are willing to perform session 
resumption
I'm not buying the "cached info is a privacy problem".

It also completely ignores the encrypted client hello

Browser doesn't have to cache the certs since the beginning of time to be
of benefit, a few hours or even just current boot would be enough:

1. if it's a page visited once then all the tracking cookies and javascript
   will be an order of magnitude larger download anyway
2. if it's a page visited many times, then optimising for the subsequent
   connections is of higher benefit anyway

> In comparison, this design doesn't depend on this sort of 
> per-destination state and can apply to the first time you talk 
> to a server.

it does depend on complex code instead, that effectively duplicates the
functionality of existing code

> David
>
> [0] If you're a client that only talks to one or two servers, 
> you could imagine getting this cached information pushed 
> out-of-band, similar to how this document pushes some valid tree 
> heads out-of-band. But that doesn't apply to most clients, 
> certainly not a web browser.

web browser could get a list of most commonly accessed pages/cert pairs,
randomised to some degree by addition of not commonly accessed pages to 
hide if
the connection is new or not, and make inference about previous visits 
worthless

> On Tue, Mar 14, 2023 at 9:46 AM Kampanakis, Panos <kpanos@amazon.com> wrote:
> Hi Hubert, 
>
> I am not an author of draft-davidben-tls-merkle-tree-certs, but 
> I had some feedback on this question: 
>
> RFC7924 was a good idea but I don’t think it got deployed. It 
> has the disadvantage that it allows for connection correlation 
> and it is also challenging to demand a client to either know all 
> its possible destination end-entity certs or be able to have a 
> caching mechanism that keeps getting updated. Given these 
> challenges and that CAs are more static and less (~1500 in 
> number) than leaf certs, we have proposed suppressing the ICAs 
> in the chain (draft-kampanakis-tls-scas-latest which replaced 
> draft-thomson-tls-sic ) , but not the server cert. 
>
> I think draft-davidben-tls-merkle-tree-certs is trying to 
> achieve something similar by introducing a Merkle tree structure 
> for certs signed by a CA. To me it seems to leverage a Merkle 
> tree structure which "batches the public key + identities" the 
> CA issues. Verifiers can just verify the tree and thus assume 
> that the public key of the peer it is talking to is "certified 
> by the tree CA". The way I see it, this construction flattens 
> the PKI structure, and issuing CA's are trusted now instead of a 
> more limited set of roots. This change is not trivial in my 
> eyes, but the end goal is similar, to shrink the amount of auth 
> data. 
>
>
>
> -----Original Message-----
> From: TLS <tls-bounces@ietf.org> On Behalf Of Hubert Kario
> Sent: Monday, March 13, 2023 11:08 AM
> To: David Benjamin <davidben@chromium.org>
> Cc: <tls@ietf.org> <tls@ietf.org>; Devon O'Brien <asymmetric@google.com>
> Subject: RE: [EXTERNAL][TLS] Merkle Tree Certificates
>
> CAUTION: This email originated from outside of the 
> organization. Do not click links or open attachments unless you 
> can confirm the sender and know the content is safe.
>
>
>
> Why not rfc7924?
>
> On Friday, 10 March 2023 23:09:10 CET, David Benjamin wrote:
>> Hi all,
>>
>> I've just uploaded a draft, below, describing several ideas we've been 
>> mulling over regarding certificates in TLS. This is a
>> draft-00 with a lot of moving parts, so think of it as the first pass 
>> at some of ideas that we think fit well together, rather than a 
>> concrete, fully-baked system.
>>
>> The document describes a new certificate format based on Merkle Trees, 
>> which aims to mitigate the many signatures we send today, particularly 
>> in applications that use Certificate Transparency, and as post-quantum 
>> signature schemes get large. Four signatures (two SCTs, two X.509 
>> signatures) and an intermediate CA's public key gets rather large, 
>> particularly with something like Dilithium3's 3,293-byte signatures. 
>> This format uses a single Merkle Tree inclusion proof, which we 
>> estimate at roughly 600 bytes. (Note that this proposal targets 
>> certificate-related signatures but not the TLS handshake signature.)
>>
>> As part of this, it also includes an extensibility and certificate 
>> negotiation story that we hope will be useful beyond this particular 
>> scheme.
>>
>> This isn't meant to replace existing PKI mechanisms. Rather, it's an 
>> optional optimization for connections that are able to use it. Where 
>> they aren't, you negotiate another certificate. I work on a web 
>> browser, so this has browsers and HTTPS over TLS in mind, but we hope 
>> it, or some ideas in it, will be more broadly useful.
>>
>> That said, we don't expect it's for everyone, and that's fine!
>> With a robust negotiation story, we don't have to limit ourselves to a 
>> single answer for all cases at once. Even within browsers and the web, 
>> it cannot handle all cases, so we're thinking of this as one of 
>> several sorts of PKI mechanisms that might be selected via 
>> negotiation.
>>
>> Thoughts? We're very eager to get feedback on this.
>>
>> David
>>
>> On Fri, Mar 10, 2023 at 4:38 PM <internet-drafts@ietf.org> wrote:
>>
>> A new version of I-D, draft-davidben-tls-merkle-tree-certs-00.txt
>> has been successfully submitted by David Benjamin and posted to the 
>> IETF repository.
>>
>> Name:           draft-davidben-tls-merkle-tree-certs
>> Revision:       00
>> Title:          Merkle Tree Certificates for TLS
>> Document date:  2023-03-10
>> Group:          Individual Submission
>> Pages:          45
>> URL:
>> https://www.ietf.org/archive/id/draft-davidben-tls-merkle-tree-certs-0
>> 0.txt
>> Status:
>>  
>> https://datatracker.ietf.org/doc/draft-davidben-tls-merkle-tree-certs/
>> Html:
>>  
>> https://www.ietf.org/archive/id/draft-davidben-tls-merkle-tree-certs-0
>> 0.html
>> Htmlized:
>>  
>> https://datatracker.ietf.org/doc/html/draft-davidben-tls-merkle-tree-c
>> erts
>>
>>
>> Abstract:
>>    This document describes Merkle Tree certificates, a new certificate
>>    type for use with TLS.  A relying party that regularly fetches
>>    information from a transparency service can use this certificate type
>>    as a size optimization over more conventional mechanisms with post-
>>    quantum signatures.  Merkle Tree certificates integrate the roles of
>>    X.509 and Certificate Transparency, achieving comparable security
>>    properties with a smaller message size, at the cost of more limited
>>    applicability.
>>
>>
>>
>>
>> The IETF Secretariat
>>
>>
>>
>
> --
> Regards,
> Hubert Kario
> Principal Quality Engineer, RHEL Crypto team
> Web: www.cz.redhat.com
> Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic
>

-- 
Regards,
Hubert Kario
Principal Quality Engineer, RHEL Crypto team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 99/71, 612 45, Brno, Czech Republic