Re: [lamps] Call for adoption for draft-ito-documentsigning-eku

Ryan Sleevi <ryan-ietf@sleevi.com> Wed, 28 July 2021 19:40 UTC

Return-Path: <ryan.sleevi@gmail.com>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ED4403A1D42 for <spasm@ietfa.amsl.com>; Wed, 28 Jul 2021 12:40:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.647
X-Spam-Level:
X-Spam-Status: No, score=-1.647 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 jhjpOY_jiuvX for <spasm@ietfa.amsl.com>; Wed, 28 Jul 2021 12:40:06 -0700 (PDT)
Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 DBF543A1D43 for <spasm@ietf.org>; Wed, 28 Jul 2021 12:40:06 -0700 (PDT)
Received: by mail-pl1-f171.google.com with SMTP id d1so4015539pll.1 for <spasm@ietf.org>; Wed, 28 Jul 2021 12:40:06 -0700 (PDT)
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; bh=kFz5YxDfr+snS+Gdj4hGbhJEHuy8ofEm1ga8MUC59Eg=; b=HFoddOphIU8qJ4ZEi+deycY2iiyukJ+wLO/EUZ0YYdiFki5Tva8TIcmoec4aSvEGza SzCZ+NwjQ5m2fDDj39LhdPJY6qzbYptY5rR/q6/Q5MWL6c9qut8DLUWQYqSYmRm3PGka 9eHz28yooyk40jvZDiblXkznKIy/ly4Rf1m6M61H04vxbs6LC1XT63SnGoy2/k6bDvYD 6VJC1mwlP5n5A4rw9UfpIZWzyAqzr++S1fBl/pc3O10j9WnRgM4C/30azoDjAifkvV0b 5wdqGnTyENsJtdlGV4QiSRpQ+7mybPppUv1FzfArPdTJEHZBXoLCFtATr4SxDZz3Ewvi LTfg==
X-Gm-Message-State: AOAM531J2Xh8GbgxUaFJTwG0/sDJxLZm7RUijGU8Y2eJ/sh6qRc/nlKI 3S2t4wGD4xWUKPjqWvIG/2EtNYf/naQ=
X-Google-Smtp-Source: ABdhPJxmHbnnpMtkWO3gUf08dXR4DpLouLoKYcJQmGNCV+iu1kLrOOmDd8+M7AuoUC50kQ6+6dkY0A==
X-Received: by 2002:a63:155c:: with SMTP id 28mr501055pgv.154.1627501206127; Wed, 28 Jul 2021 12:40:06 -0700 (PDT)
Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com. [209.85.216.46]) by smtp.gmail.com with ESMTPSA id 16sm839102pfu.109.2021.07.28.12.40.05 for <spasm@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Jul 2021 12:40:05 -0700 (PDT)
Received: by mail-pj1-f46.google.com with SMTP id b1-20020a17090a8001b029017700de3903so6897776pjn.1 for <spasm@ietf.org>; Wed, 28 Jul 2021 12:40:05 -0700 (PDT)
X-Received: by 2002:a17:90a:4306:: with SMTP id q6mr10903602pjg.202.1627501205506; Wed, 28 Jul 2021 12:40:05 -0700 (PDT)
MIME-Version: 1.0
References: <CD589623-52EE-4958-80AB-73F0CFB3A36E@vigilsec.com> <CAErg=HF_hcXO=9=KJh5EBEov4ybS_8g4xF=cANL9+83UvP0zvQ@mail.gmail.com> <adf86f46-093f-756f-8292-9b5e088f4344@lear.ch> <CAErg=HEUFV2F8R8g8e6yCDKz_e6RebNyB5Zb2Lvgn4oc3BtE-w@mail.gmail.com> <CO6PR14MB4468A7A5EB138542CEBA5D9CEAE99@CO6PR14MB4468.namprd14.prod.outlook.com> <CAErg=HH4aDgju=8C7Neq_4H19EX8S2inNd9fMAMYH3h95S48Rg@mail.gmail.com> <CO6PR14MB44688BC4188063BCA54E80C4EAE99@CO6PR14MB4468.namprd14.prod.outlook.com> <CAErg=HGDA+16N4xhgMvuQz25DqD+_nkiFC+OuAJMkFzYYqFV0w@mail.gmail.com> <2550c1c3-1400-b380-c9ad-dad59286feee@lear.ch> <CAErg=HGnKMNNyaf-=w+DmqfXg7XYbKD2Ah-WUxf96xNN5Ecikg@mail.gmail.com> <CAErg=HFVx5JTog5_aWOrx3vAm5o=LxHfwxEqkVM8FifYCm2P+A@mail.gmail.com> <CAGgd1OdcLujCJQOaTGvS_Hkqg1=pUP-5Mu=06kqkrgFU3fVG5g@mail.gmail.com>
In-Reply-To: <CAGgd1OdcLujCJQOaTGvS_Hkqg1=pUP-5Mu=06kqkrgFU3fVG5g@mail.gmail.com>
From: Ryan Sleevi <ryan-ietf@sleevi.com>
Date: Wed, 28 Jul 2021 15:39:54 -0400
X-Gmail-Original-Message-ID: <CAErg=HGL-s2v9=5J64GnaaFxWN4QYWMUnDRPcpC0DN5XgM1-yw@mail.gmail.com>
Message-ID: <CAErg=HGL-s2v9=5J64GnaaFxWN4QYWMUnDRPcpC0DN5XgM1-yw@mail.gmail.com>
To: Deb Cooley <debcooley1@gmail.com>
Cc: Ryan Sleevi <ryan-ietf@sleevi.com>, LAMPS WG <spasm@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000039cdfb05c8342792"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/bV34V37xxxuHhbR85qR1NG47gq0>
Subject: Re: [lamps] Call for adoption for draft-ito-documentsigning-eku
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime \(spasm\) work." <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>, <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>, <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Jul 2021 19:40:11 -0000

On Wed, Jul 28, 2021 at 2:53 PM Deb Cooley <debcooley1@gmail.com> wrote:

> Just to push on this a little more (apologies).  What do you believe is
> the correct path forward?  Abuse of the code signing EKU is worrying.
>

The context behind this request is the CA/Browser Forum is working to
specify S/MIME policies, and are similarly interested in fixing these
abuses. I am, without a doubt, 100% on board with this. I just see it as a
matter of domain-specific policy, rather than IETF coordination.

Concretely: I would see vendors that are targeting specific signature
protocols to have EKUs for those protocols. For example, ETSI ESI TC has a
suite of specifications that the European Union has granted the presumption
of legal recognition (in certain cases) or
mandatory-to-implement/interoperate assumptions (e.g. for public services).
These are PAdES, CAdES, XAdES, and collectively describe signature
requirements for PDF, CMS, and XML. Nothing would prevent ETSI ESI from
using its OID arc (0.4) to assign an EKU to indicate "Used in conjunction
with the ETSI ESI document signing specifications" - with the assumption
here is that ETSI ESI TC will ensure that these distinct formats do not
permit cross-format attacks that allow for confused deputy (of which there
have been many [1]).

In implementation practice, EKUs effectively operate as substitutes for
certificatePolicies. Whether we hate that or not - and the past debate has
been clear there's folks in both camps - that's the implementation reality.
For example, to have a certificate successfully validate with
'id-kp-serverAuth' on a macOS system, you need to comply with Apple's
certificate policies. This doesn't matter whether you're a CA included by
default in the OS, or something locally configured in the Enterprise: any
application using Apple's cryptographic libraries has to comply with the
policies if they assert the particular EKU, that EKU is required to use
their TLS client libraries, and that's a net-positive for users. [2].
Sometimes, these changes only apply to CAs included in their software by
default [3], but other times, it's system wide.

In practice, the EKU is used to indicate compliance, or non-compliance, to
a particular certificate profile, defined by the vendor of the relying
party application. This is true for major trust store vendors like
Microsoft, Apple, Google, Mozilla, and across different protocols: Google's
GMail has its policies [4], just like Adobe has their AATL [5]. The EKU is
enforced at the protocol level, but equally, it implies and reflects
compliance with policy.

In the browser space, the CA/Browser Forum exists to help coordinate the
interpretation of 'id-kp-serverAuth' as it applies to browsers, and to
reduce the risk of conflicts in those profile requirements. There's nothing
preventing similar groups - such as ETSI (in the case of the *AdES family)
or the CA/Browser Forum (in a hypothetical document signing chartered
working group) to do the same, with an EKU specific to their constituency
to reflect the "I intend to use it with this {protocol}, which has {these
policy assumptions in the PKI design}". Yes, in a perfect world, this would
have used certificatePolicies, with client libraries requiring end-entity
certificates asserting a particular policy, and validating that policy is
in the effective policy set, and that EKU is purely a protocol indicator:
but that's not the world we ended up at.

The issue with the IETF defining a generic EKU here is that we don't have a
"Document Signing Protocol WG" that defines the format and semantics of
what a signed document is, in the way we have a TLS WG or an IPSEC WG or a
Kerberos WG. Within those WGs, we do see efforts at preventing
cross-protocol and cross-format confusion, and we also see the use of
multiple certificates and keys when appropriate, and including new EKUs as
needed, when possible. For example, TLS Delegated Credentials work
proposes... an additional certificate for servers to obtain to express
further restrictions on private key usage [6]. This was due to needing to
work around the fact that few TLS client implementations outside of
browsers robustly support features like those in RFC 4158 [7], and the TLS
WG had to work around that legacy, as otherwise, EKU would have been
appropriate.

Concretely: ETSI could easily allocate OIDs for PAdES, CAdES, and XADeS. I
haven't done the protocol analysis to know if there's cross-format attacks,
so it could be three OIDs, or it could be a singular OID if they are
robustly secured, indicating compliance with the ETSI specifications and
the eIDAS policy framework. Adobe could similarly take a lead here, with
respect to PDF signing, and say "This EKU is used for PDFs according to
this {Adobe, ISO} specification and the AATL policy". If the CA/Browser
Forum was chartered for this (it presently is not, but that, like all
charters, is changable), it could also define an EKU to say "This EKU is
used in conjunction with {these document signing protocols} and the
CA/Browser Forum policy". CAs that, say, meet the requirements of all three
organizations, could easily assert all three EKUs in a single certificate,
provided that they (and relying parties) have analyzed for
cross-protocol/cross-format attacks. But we can't pretend they're the same
constituencies: even where there's overlap (and there's plenty of 2-of-3
and 3-of-3 overlap in these examples), they are still fundamentally
different use cases and policy authorities.

[1] https://pdf-insecurity.org/index.html
[2] https://support.apple.com/en-us/HT210176
[3] https://support.apple.com/en-us/HT211025
[4] https://support.google.com/a/answer/7300887?hl=en
[5] https://helpx.adobe.com/acrobat/kb/approved-trust-list2.html
[6]
https://datatracker.ietf.org/doc/html/draft-ietf-tls-subcerts-10#section-4.2
[7] https://datatracker.ietf.org/doc/html/rfc4158