Re: [TLS] Certificate Transparency for Client certificate in MTLS handshake

Mohit Sahni <mohit06jan@gmail.com> Tue, 11 May 2021 01:55 UTC

Return-Path: <mohit06jan@gmail.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 CBE133A333E for <tls@ietfa.amsl.com>; Mon, 10 May 2021 18:55:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 Jbg1zv11ZeBk for <tls@ietfa.amsl.com>; Mon, 10 May 2021 18:55:39 -0700 (PDT)
Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) (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 BE0DA3A333C for <tls@ietf.org>; Mon, 10 May 2021 18:55:39 -0700 (PDT)
Received: by mail-io1-xd36.google.com with SMTP id i7so9212549ioa.12 for <tls@ietf.org>; Mon, 10 May 2021 18:55:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=RFv1edh4JcfPtbUDrnKwaF9mgd+S7G9z/HeL40GTBa0=; b=Zap86sku/8uyw6SH9CYeBN+abjpjUb0F//R0BIbKw5WraLnmv1nRjQxBwsjYK+S8ev KLCx89flWw4Pm9wi3N6mSwvd272Yk9yDaiNiBAr+WooBRMfgPvvjT6El9weJwiaq+6yQ 7J2GodN0cIFWmKNcqKLII3T7dKntxrDfJDHa7Budn8FVB+2fuV2wRpkVtZr0m8FxO/nR KRrVTr5VQ4oy8DhNWiq44dhl7Wa6TlTOD35VzcntlNAMHAIUkf+Y6mnZCaBJNpJQdNHI VE+F/qa83VxftbFS4mlu18reYHASWjBoArBfPdbUUiL+nTJHrnSn/x72eXf9kaj35wh3 eYeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=RFv1edh4JcfPtbUDrnKwaF9mgd+S7G9z/HeL40GTBa0=; b=DUoqXsrnKy1K0zDYix18UKZjaor8f90cSTHiGiYqu3K98bsGW2tkE4O+d1PVDdJGWw YJQscHoz2Mq9iyqrKUAYlDVsalOepJ23lPsEOfkgcFJISU0gycvaH46EATs34QeERXee k1aVHmD6/Dw6OgOy6+CsBfem6upkNKYWPtoLZssqr5zEIPmfHLUquP998njvEVoXvnzv V5XtP6A26bdmbbqB8eRvEb0ryrk8rK+87z4z0LR8hOM/+6AupAanAvy6YYp8bIzoW6Rf +am+VStMmBnKjOzQWqXEDRTP40XjyY358r0UUDEZAP5NVeoI1lt+EFek8Bt5xo52LJcL VYOA==
X-Gm-Message-State: AOAM5316Vjbxg+L+9Hd1PcMfKlX2pxdt9Rzu2oCuL+FeIul3Cb/i0aDF nWNsidVXN911GezZIXLUqzLaPJv1KrDbAf9u8t5HxAx7JR8=
X-Google-Smtp-Source: ABdhPJwbjnaDvOg4NZGAkfsTmcpBQGobksaQbOr5wWGTjqC6ZZSlEtoY/H3g5ODrpfG57a7STOfJeuaPsirVGbQn5n4=
X-Received: by 2002:a6b:630c:: with SMTP id p12mr15153915iog.124.1620698138181; Mon, 10 May 2021 18:55:38 -0700 (PDT)
MIME-Version: 1.0
References: <CAEpwuw2tBLn-7b1YBXf3YfS4WXM-JrKbfHsQPt=_H4FYKYdmVQ@mail.gmail.com> <CAErg=HHmM649hqqb2xrqnE2YM2Ks88dOT-FRkmGmMcyjL88Fxw@mail.gmail.com> <CAEpwuw3mzdGt7UWJF7o4Z+ShgPJ4_0todsV56QENBZOv2hwJqQ@mail.gmail.com> <CAErg=HHUGXJv0kEj5cNUWsxfBT745o9zWpt5MOUcdDddwOxbag@mail.gmail.com> <CAEpwuw3nT+4YBj1KTE4+oDMX2f1q-yWHnn6GpdNJDKgvuLKBHA@mail.gmail.com> <CAErg=HFS9W9RvVwf3NCfAjvxbUmNHyfyoatk-Wye4jrNMe-q_w@mail.gmail.com>
In-Reply-To: <CAErg=HFS9W9RvVwf3NCfAjvxbUmNHyfyoatk-Wye4jrNMe-q_w@mail.gmail.com>
From: Mohit Sahni <mohit06jan@gmail.com>
Date: Mon, 10 May 2021 18:55:27 -0700
Message-ID: <CAEpwuw1hETyqfvGikqsN003jbfDvNe4YKT9of0RN4UfHLdjxaQ@mail.gmail.com>
To: Ryan Sleevi <ryan-ietftls@sleevi.com>
Cc: "tls@ietf.org" <tls@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/-XkekXkt12lB06r4VDLO8b3MZ6o>
Subject: Re: [TLS] Certificate Transparency for Client certificate in MTLS handshake
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
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, 11 May 2021 01:55:45 -0000

On Mon, May 10, 2021 at 1:14 PM Ryan Sleevi <ryan-ietftls@sleevi.com> wrote:
>
>
>
> On Mon, May 10, 2021 at 3:23 PM Mohit Sahni <mohit06jan@gmail.com> wrote:
>>
>> On Mon, May 10, 2021 at 8:41 AM Ryan Sleevi <ryan-ietftls@sleevi.com> wrote:
>> >
>> >
>> >
>> > On Mon, May 10, 2021 at 9:43 AM Mohit Sahni <mohit06jan@gmail.com> wrote:
>> >>
>> >> Hi Ryan,
>> >> Thanks for answering my question in a lot of detail. I asked this
>> >> question in the context of a private PKI for client certificates. You
>> >> can assume a scenario where the client certificates are issued to
>> >> users/devices in an organization from a self service portal by the
>> >> organization's existing private PKI for 1000s of users under different
>> >> domains (multiple CAs).
>> >>
>> >> What I get from your answer is that using CT for client certificates
>> >> makes sense when:
>> >>
>> >> 1) There is an existing private PKI.
>> >> 2) There are multiple CAs issuing the client certificates.
>> >> 3) The PKI uses non Web PKI (non public) CT log servers and auditors.
>> >>
>> >> I don't agree with your comment about following the same priority
>> >> preferences that exist for server certificates, the [2] and [3] makes
>> >> more sense when reversed or kept at an equal priority in the context
>> >> of client certificates. Here is my reasoning:
>> >> In the server PKI, it is practically easier to make changes in the web
>> >> servers to support [2]  (i.e. sending the SCT extension by pre
>> >> fetching the data from the CA) but it may not be that easier to
>> >> implement it on 100s of thousands of client devices. Imagine a large
>> >> cell phone manufacturer implementing [2] for all the devices that they
>> >> have sold in the last 10 years.
>> >
>> >
>> > Right, I can understand the temptation to consider OCSP Stapling as a more attractive solution, because it relies on the CA taking the requisite action, and thus avoids the need for client implementation, in theory. But the problem is that it's largely "in theory" - that is, robust OCSP stapling is just as hard for clients to implement as obtaining SCTs directly.
>> >
>> > Nearly 6 years ago, I wrote up [1] to discuss what robust OCSP stapling looks like, from the server side, which captures some of the challenges here. Few servers robustly support this (I believe Microsoft IIS and the Caddy web server are the two notable exceptions), and so the idea of pushing that all to clients is roughly the same challenge as having clients obtain SCTs directly. The main argument for OCSP-embedding over TLS-embedding is not one of simplicity, but of centralized control and communication: the idea being that you can have all your clients contact a single point of contact (the CA's OCSP responder) to obtain the policy.
>> >
>> > For servers, in the context of the Web PKI, it's quite appealing to swap priority for OCSP-embedding over TLS-embedding because of this. It equally gives Web PKI CT Logs a single point of contact for purposes like rate limiting and abuse detection, which can make it easier to address any concerns. However, in the threat model of "Unreliable CA", where CAs continue to fail to implement CT correctly [2][3], that seems to be missing the operational lessons. Given the assumption that the model here was private PKI with private CT logs, then you're likely better off with a (privately expressed) policy mechanism on the client versus trying to robustly support OCSP stapling on clients, since the failure mode here impacts not only CT, but the revocation processing.
>> >
>> > [1] https://gist.github.com/sleevi/5efe9ef98961ecfb4da8
>> > [2] https://sslmate.com/blog/post/apples_new_ct_policy
>> > [3] https://www.hardenize.com/blog/certificate-transparency-policies-diverge-with-apples-update
>>
>> I think you misunderstood me, I am not recommending the use of OCSP
>> stapling here. I agree with you that the OCSP Stapling is practically
>> almost the same as a client fetching the SCT and sending it to the
>> server in the TLS stream. I am recommending that the CA/OCSP responder
>> can attach SCTs as an OCSP extension along with the revocation status
>> of the client certificate in the response to the server's OCSP Request
>> and server can verify the certificate based both revocation status and
>> the number of SCTs in the OCSP response from the CA/OCSP Responder. I
>> know there are issues with how OCSP is implemented by various vendors
>> but we can always work on learning from the mistakes and improve OCSP
>> to make it more interoperable.
>
>
> In the context of CT implementations, delivering via OCSP means delivering via OCSP stapling. This is by design - to ensure everything is provided in-band during connection establishment.
>
> The server fetching an OCSP response and using the SCTs from that is no different than if the server simply looked up the certificate in the CT Log’s entries: it’s an active dependency on a 3P service during connection establishment, which CT intentionally worked to avoid.
>
> This is why they’re treated as equivalent: in every CT-verifying implementation today, OCSP support means stapling.

Thanks for the clarification Ryan, now it all makes a lot of sense.
Please excuse my ignorance in this regard.