Thanks Ted,

On 2024-07-26 06:40, Ted Hardie wrote:
Hi Soni,

Thanks for the time and energy put into the BoF presentation.  Thinking about the draft and presentation a bit more, I think it may be possible to tease apart the issues a bit.

Part of the discussion was about the historical use of "userinfo" and whether or not it was or should be deprecated. There are clearly differences of opinion there, and it would take time and care to come to a consensus around them.  One way to do that would be to write an applicability statement.  If you haven't seen one of those in the IETF context before, it's a particular kind of RFC which lays out when a particular protocol element or approach is beneficial and when it is problematic.  RFC 6815 is one example; it clarifies that the methods  in RFC 2544 are intended for test environments only and not for production environments.  An applicability statement on "userinfo" would not deprecate it completely, simply update the community's understanding of its utility. That may well be worth doing, but it is distinct from the question of what should be done in the cases where the use of userinfo is problematic.


we see.  we hadn't heard of these.

The second part of the discussion was around the proposed scheme, "auth".    While the draft describes this as a meta-scheme, it is syntactically a standard URI scheme in which the elements are composed of the scheme name, a method, and a set of query elements, at least one of which is itself a URI.    From my perspective, there are a few issues which would need to be addressed:


(oh, maybe we should make a separate draft detailing "meta-schemes"? ("meta-URIs"? we could bikeshed that name...) probably the way to go, as that might be an useful discussion too.)

1) The scheme name is very generic and it would likely be appropriate to update that to something more specific.

yeah... fwiw BCP 35 only says "scheme [names] SHOULD NOT use names that are [...] very general purpose" (i.e. it's not a MUST NOT), and we would argue the proposed URI is scoped to deal with authentication, but maybe.  we're not sure what would be more specific... we'll leave that as an open question for now.

2) The document is not yet clear on the set of methods, in part because the BNF:
   auth-method-nm-char = ALPHA / DIGIT / "-" / "_"
appears unbounded but the IANA considerations reference an assignment policy of IETF review.  Is that for the methods, or was that referencing the URI scheme registry itself?

indeed that is for the methods.  we feel like having to update the BNF whenever adding a new method would be a little too heavyweight. on the other hand we can see an argument for restricting it, to prevent every other vendor from making up their own methods.

this proposal should've had two methods: the already-described "info" method (for compatibility with userinfo), and a "pm" ("pass"? "manager"? also bikesheddable, refers to password managers) method, but we're not versed in password managers enough to come up with something on our own.  (there are also pkcs11 URIs, RFC 7512 (from which we pulled some of the ABNF, even), so "auth by PKCS #11" could be considered as well, but we know even less about PKCS #11...)

3) There is normative language specifying the behavior of operating systems:

    When one program attempts to open an auth URI, the operating system
    MUST NOT open another program to handle the auth URI.
That's very difficult to enforce, and a different approach should likely be discussed.  There is similar language throughout the draft discussing the syntax as a way to avoid link recognition systems.  As part of a security considerations section, it would be good to work through what happens when those are updated with an understanding of this new scheme; there appears to be a strong risk that they would be updated to parse the embedded URI.


oh, alright.  hmm... we wouldn't generally consider "the embedded URI gets turned into a clickable link" in our threat model... except... oh, we suppose these same link recognition libraries get used by e.g. email filtering software, it could definitely cause problems if the email filter ignores the embedded URI while the email client turns it into a link.

we believe there are competing factors at play here:

- for the "leaking credentials (or credential-related metadata) to a different app" issue, it doesn't really matter, because the embedded URI doesn't include the metadata.  (it's fine if it gets clicked and passed around.) - for the "embedded URI may be malicious" issue however, well... there's filtering links, and then there's making them clickable.  it seems to us you'd want different kinds of link recognition systems targeted at these two different needs.  (also, this may well be an issue today... guess we'll find out soon enough.)

we feel like we could go either way, so long as we either make it consistent or recognize the different needs.  oh and take into account existing software.

Addressing these and requesting provisional registration would be fairly lightweight, but seeking a permanent registration would likely need some additional work and a demonstration that there are likely to be implementations of the scheme.  In the web context, browser interest in particular would be a useful sign of future adoption.

I look forward to additional discussion on the list,

best regards,

Ted Hardie

On Tue, Jul 23, 2024 at 11:59 PM Soni "It/Its" L. <[email protected] <mailto:fakedme%[email protected]>> wrote:

    hello,

    draft link: https://datatracker.ietf.org/doc/draft-soni-auth-uri/

    we discussed this in the DISPATCH session, and the outcome was
    that we
    should discuss it here.

    so, to re-state our goal, we want to get rid of userinfo
    altogether, not
    just in http but in... just about everything really. but we know we
    can't "just" do that, we have to acknowledge where it's still used,
    provide alternatives, and all that stuff... (particularly
    databases and
    ORMs, whose connect method often just takes a single string where
    you're
    supposed to just embed authentication details...)

    and there were comments saying we can't get rid of it. we like to
    think
    that's not entirely true, but it would take a lot of work, and some
    churn, to get there. importantly, the inconsistencies we brought up
    (or... we'd rather call them footguns especially for those working on
    new URI schemes) don't just apply to individual apps but also to
    interactions between apps (granted, our proposal is also pretty
    explicit
    about getting in the way of interactions between apps, but at
    least you
    can't attempt to repurpose our proposal because - unlike userinfo
    - one
    of the things it does is decouple the concepts of authentication from
    the target URI scheme).

    we do see that our proposal can't actually restrict userinfo in the
    embedded URI, at least as per RFC 8820, section 2.2
    https://www.rfc-editor.org/rfc/rfc8820#name-uri-authorities (not
    to be
    confused with section 2.1 (we feel sorry for the correspondent on the
    ART list who kept telling us to look at section 2.1 in increasing
    frustration...)), and... well, browsers are certainly not
    complying with
    that because they absolutely do strip userinfo from arbitrary
    (non-http(s)) URIs. but aside from that it just means we might
    have to
    change either our proposal, BCP 190, or maybe RFC 3986? not entirely
    sure about that last one.

    (also, we just realized, looking over RFC3986 again... it only
    deprecates "user:password", despite the clear acknowledgement of
    semantic attacks involving just the username portion (the provided
    example doesn't use the "user:password" format). why is that?)

    thanks! (and apologies for the delay, anxiety is hard)

    (p.s.: so if we're understanding correctly WIT is for URIs as in the
    generic syntax, and ART is for URI schemes? we would appreciate
    clarification on this.)

-- plural system (tend to say 'we'), it/she/they, it instead of you

-- Witarea mailing list -- [email protected]
    To unsubscribe send an email to [email protected]


--
plural system (tend to say 'we'), it/she/they, it instead of you
-- 
Witarea mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to