Re: [lamps] WG Last Call: draft-ietf-lamps-x509-policy-graph-01

David Benjamin <davidben@chromium.org> Mon, 27 November 2023 21:21 UTC

Return-Path: <davidben@google.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 03CE9C15152E for <spasm@ietfa.amsl.com>; Mon, 27 Nov 2023 13:21:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.258
X-Spam-Level:
X-Spam-Status: No, score=-14.258 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, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
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 a-aj0FgKSnb7 for <spasm@ietfa.amsl.com>; Mon, 27 Nov 2023 13:21:34 -0800 (PST)
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com [IPv6:2607:f8b0:4864:20::112b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 452ACC15152F for <spasm@ietf.org>; Mon, 27 Nov 2023 13:21:34 -0800 (PST)
Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-5c08c47c055so46002977b3.1 for <spasm@ietf.org>; Mon, 27 Nov 2023 13:21:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1701120093; x=1701724893; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kGpP9Z0IbBoh9eYr/7flhlS9R6ufX04vElUtK6hJz/Y=; b=SMzrVszm8ZRI1HAMhRNM635P9Cab5SKuyvBtOB9Ul97RjBPa7wxMDpWpd371GqHBaL 38EQnq2x8jDmf4LehWOYv6bNZ3uIbGy/RiLXV3uB9yT+puc7x44bk10rxJoUCfC6MT78 0mKLyJSbUHTe8SijAtr1UEFCIdWA7PONYH2vs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701120093; x=1701724893; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kGpP9Z0IbBoh9eYr/7flhlS9R6ufX04vElUtK6hJz/Y=; b=UANz60rEyHsUrrAFJDf6XQ+6Ri5c25Xm3h6vqs7DxXXGpOU0Jct+LQbiAMJ4erohqV rQE76yAh6b994ruBtUAUizA5Xi+6T9Gz4WtyekA1Q0zVqHC04IhFOnQ7W0ykwOV/fUW8 P5wwG0/NRA4jIMOe1PR77k5s8gFlX3XeqIomHPJEtynjn9HABebPKpM7MP/chFMkizt8 gwRfCpfVRytYQcpypUU6bnK0DLMa8xPyRSnjUkeq1kQI5UIlTCfMhEx0EJ3lFu5I9QB0 NClVxLOmFPIq8Zzmp7JF0DSDQSquKsB1fmqDptY4OTs1nOYqBd3J1641j5Kp6sPvfAWM yJkg==
X-Gm-Message-State: AOJu0YzDKUuQGLM30Q+SA2+hsigsaj6pSP7whMdjWwQpnYmw2tJLi1u+ tDmjNWVdIemRqii0Qw/fobS4lO5nVMRWOUuvl39bwhpP8EYG1SK1o5oa
X-Google-Smtp-Source: AGHT+IE35qCkv/vfIplB8YVVDTv5nq44Hcz/wp/Gg0RprolMn5pgex9eS84eHa8B6dXOfKvoCy5A1DwMF0h+1QbMTX4=
X-Received: by 2002:a81:7206:0:b0:5c1:4f00:6472 with SMTP id n6-20020a817206000000b005c14f006472mr14140320ywc.49.1701120091763; Mon, 27 Nov 2023 13:21:31 -0800 (PST)
MIME-Version: 1.0
References: <99DEDEBF-35D7-4EE5-BABF-63A9F6D02C29@vigilsec.com> <1d3dc12f-56ee-4f9a-9524-f54eda01aec3@nthpermutation.com> <CAF8qwaA5Xc6W+7kBjMx4=Vc5mEmjEUYqqSiJqL9xqnbj0kPkZg@mail.gmail.com> <44bf5662-ae0d-4806-b157-5e86584e5539@nthpermutation.com> <CAF8qwaAJYdYaiZ2t0BknwXuC4KMVWSPHma+sm_i3Baf8djDasw@mail.gmail.com> <1666d5fc-9609-45e4-ac5e-48ac63f7e764@nthpermutation.com> <CAF8qwaAw7ny6DY1yjKCv_XnaBjpOXGzXS19yjjBxfOO7_S0UZg@mail.gmail.com> <CAF8qwaAv8mAa9JwxcFu4Na43pd5nV_p03RbcOAU5mn-CS33omg@mail.gmail.com> <2694386c-f813-4604-8cee-3c5218d6c3f5@nthpermutation.com> <CAF8qwaCdq4iG=JzT5+TP4Jc9rMcenkjVJpaHq-v6JBn-wMogoA@mail.gmail.com> <EEC6E873-5F55-455D-90B1-5A7BA17E7C06@vigilsec.com>
In-Reply-To: <EEC6E873-5F55-455D-90B1-5A7BA17E7C06@vigilsec.com>
From: David Benjamin <davidben@chromium.org>
Date: Mon, 27 Nov 2023 16:21:15 -0500
Message-ID: <CAF8qwaBSp=Txbodmh2fWDuZvEaR3dF8rSgexgwuuQyr0kbjmWQ@mail.gmail.com>
To: Russ Housley <housley@vigilsec.com>
Cc: LAMPS <spasm@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ca9336060b28e234"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/P9NX579iMvu-lixxloRrmHMIrig>
Subject: Re: [lamps] WG Last Call: draft-ietf-lamps-x509-policy-graph-01
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: This is the mail list for the LAMPS Working Group <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: Mon, 27 Nov 2023 21:21:38 -0000

Hmm. I share your feelings on this feature, but changing things here wasn't
the intent. I did write it simplifies the process, but the new algorithm
still preserved them. It RECOMMENDS not keeping them, but if you find them
useful, you can still implement the new algorithm:

> Calculate the user_constrained_policy_set as follows. The
user_constrained_policy_set is a set of policy OIDs, along with associated
policy qualifiers.
https://www.ietf.org/archive/id/draft-ietf-lamps-x509-policy-graph-02.html#section-5.5-2.1.1

> If returning policy qualifiers in the output, collect all qualifiers in
the node, its ancestors, and descendants and associate them with
valid_policy. Returning policy qualifiers in the output is NOT RECOMMENDED.
https://www.ietf.org/archive/id/draft-ietf-lamps-x509-policy-graph-02.html#section-5.5-2.1.2.4.2.2.1

It's true that the document adds a NOT RECOMMENDED on the validator side.
The intent was "if you're building a new API based on this document and
aren't trying to serve such a use case, you're encouraged to ignore this
nonsense". I mostly saw this as the corollary to the existing
recommendation on the CA side: if your PKI doesn't believe in policy
qualifiers, you should not waste your time implementing support for them
because they won't change the result of path validation. (Our validator
throws it away.)

The simplification is that it avoids worrying about an ambiguity in X.509:
if there are two ways to get to some policy, with different qualifiers,
which do you pick? What I've currently written is you just collect all of
them together. Picking an arbitrary path would also be defensible.
Expanding out all the possible paths individual to get different
policy qualifier sets gets us back to the EXP-SPACE problem, so I want to
avoid that. (Since we don't implement it, I don't have any horse in this
race. I said to collect them all because it seemed the most natural
interpretation of the ITU X.509 document, though that document is kinda
ambiguous.) The other nuisance is I'm pretty sure collecting policy
qualifiers, whichever option you pick, is quadratic, but I think the only
remedy for that is to *actually* ban this feature.

Anyway, happy to soften or remove this text if folks prefer.

David

On Mon, Nov 27, 2023 at 3:05 PM Russ Housley <housley@vigilsec.com> wrote:

> I am concerned with this paragraph is Section 4.2:
>
>    X.509 implementations are additionally RECOMMENDED to omit policy
>    qualifiers from the output, as this simplifies the process.  Note
>    Section 4.2.1.4 of [RFC5280] conversely recommends that certificate
>    authorities omit policy qualifiers from policy information terms.
>    This document reiterates this and RECOMMENDS that certificate
>    authorities omit the policyQualifiers field in PolicyInformation
>    structures.
>
> This goes against an very long discussion prior to the publication of RFC
> 2459.  I raised the issee again prior to the publication of RFC 3280, and
> again prior to the publication of RFC 5280.  This paragraph reverses those
> discussions, and I am unwilling to do that without signficant discussion
>
> I hate policy qualifiers.  However, I was unable to convince the PKIX WG
> to ban their use.  In 1999, I wrote the message that is copied at the
> bottom of this message.  My opinion has only gotten stronger over the years.
>
> If the policy qualifier is not provided to the application, then all of
> the discussion about their usefulness in certain applications is lost.
> This seems like a backhanded way to eliminate them.
>
> I would be willing to support a separate update to RFC 5280 that forbids
> the use of policy qualifiers, but I do not think that removing them from
> this algorithm is the right way forward.
>
> Russ
>
>
>
> ----- BEGIN OLD MESSAGE FROM PKIX MAIL ARCHIVE -----
>
>
> Russ Housley <housley@spyrus.com> Thu, 17 June 1999 16:58 UTC
>
> Persoanally, I really dislike policy qualifiers.  They have a negative
> imapct on interoperability.  If a policy is specified by an OID, then the
> cert path validation does not need to know any details of that policy.  On
> the other hand, when qualifiers are used, cert path validation must
> understand the syntax and possibly the semantics of the qualifier.
>
> How does one get every implementation, especially mass market software
> implementations, to support a particular policy qualifier?  Beats me.  That
> is why they cause interoperability problems.
>
> In drafting RFC 2459, I suggested that policy qualifiers be forbidden.
> Others disagreed, so we have a compromise position documented in RFC 2459.
> It says:
>
>    To promote interoperability, this profile RECOMMENDS that policy
>    information terms consist of only an OID.  Where an OID alone is
>    insufficient, this profile strongly recommends that use of qualifiers
>    be limited to those identified in this section.
>
> A small set of policy qualifiers was included with the hope that all
> implementations would include support for them.
>
> So, my advice is to avoid policy qualifiers.
>
> Russ
>
> ----- END OLD MESSAGE FROM PKIX MAIL ARCHIVE -----
>
>