I get your points, but still let me ask a stupid question:

Even if (and I can follow your arguments why) it is in general out of scope, why couldn't it be included into OAuth to avoid such issues at the core layer that other software is relaying on?

I mean: Of course in a perfect world the auth layers (openid connect, etc.) should be in response to deal with that. But all of them rely on the base protocol and don't care about such special issues, if they're not addressed at the core layer.

So please think about it again.

On 8/10/23 22:53, Hans Zandbelt wrote:
On Thu, Aug 10, 2023 at 9:40 PM George Fletcher <george.fletcher=40capitalone....@dmarc.ietf.org> wrote:

    Hi Matthias,

    First, OAuth is about authorization and NOT authentication. If you
    are concerned with Authentication then this thread should move to
    the OpenID Connect working group mailing list :)


 Allow me to set the public record straight on this before it starts to lead its own life: OpenID Connect does not deal with Authentication - at all - and in fact has the very same relationship with Authentication as OAuth 2.0 does: at some point user Authentication may happen, but it is completely undefined and orthogonal to the OAuth/OIDC protocol. OpenID Connect should rather be thought of as delegation of access to a user's identity (thanks to Justin who - I believe - posed the latter definition). I guess you actually meant to say "Identity" in the 2nd sentence above instead of "Authentication",  and I agree that this discussion seems to be about OIDC indeed.

    Second, if I'm understanding the problem correctly, the issue is
    NOT with OAuth (the protocol) or the Authorization Server. The
    issue is with the "relying party" where the user originally signed
    up with an email address (e.g. f...@example.com). In the case
    described, the "relying party" took the email address provided by
    the authorization server and looked in its own identity store to
    see if there was a match. It found a match and automatically
    linked those "identities" (in an attempt to help ensure the user
    does not unintentionally create multiple identities when they
    didn't intend to). The RP could present a page to the user to ask
    if they want to link the identities and then if the user does want
    to link, verify the user is the correct owner of the original
    account before linking.

I agree that account linking really only happens when the user has an authenticated session at the RP, possibly asking to re-authenticate once more. In that case the user explicitly trusts the Provider, and whatever the Provider can do afterwards is a result of that - as goes for any trusted IDP - which addresses Matthias's 1st concern. This also means that the 2nd concern - "unsolicited linking" - is not possible IRL and certainly not in the Stackoverflow/Github example. It is true though that "explicit (re)authenticated account linking" is not included in any RFC/BCP, then again account linking in itself isn't since it is not (very) protocol-related.

    So for me, resolving this issue is out of scope for the OAuth
    protocol.


Agree, OOOOAuth for sure ;-)

Hans.

    On Thu, Aug 10, 2023 at 4:25 AM Warren Parad
    <wparad=40rhosys...@dmarc.ietf.org> wrote:

        You've lost me at this:

            Some site, which I'm registered in is trusting some oauth
            provider I'm not even knowing about. I'm not registered at
            this provider. If this provider is (independent how or
            from whom) is used in a malicious way, they can access my
            account, without my knowledge by sending a valid token
            including my email.


        Nothing stops a site you are using, registered with your email
        address, from just selling your data to a third party, or
        blanket publishing it publicly. There is nothing we can do to
        stop this unless the data we care about is encrypted on the
        client side. OAuth doesn't really have anything to do with it.

        Because it has nothing to do with OAuth, the suggested
        solution of course must have a hole with it. And indeed it
        does. What if the site offers the token strategy, but then
        decides to outsource the whole authentication process to a
        different third party? We are back at the same problem again.
        However it sounds like what you are saying is that there
        should be a standardized mechanism for handling the site <=>
        user token verification. If we use OAuth terminology that
        would be: We should allow *step-up authentication* to occur
        solely between the *resource server (RS)* and the *user
        agent* without involving the *authorization server (AS)*. But
        then who generates the new JWTs? If the AS generates the new
        one then, we didn't stop anything. And if the RS generates the
        new one then actually the AS isn't needed to do anything.

        And that latter case is actually the reality if we consider
        these tokens to be a 2FA mechanism that is managed by the
        site/resource server. So I read this as, we should standardize
        *WebAuthn *communication between a *user agent* and the
        *resource server. *That already exists though, doesn't it?

        On Thu, Aug 10, 2023 at 12:59 AM Matthias Fulz
        <mf...@olznet.de> wrote:

            I'm trying to explain my concern more deeply, please try
            to follow my thinking.

            First: Everything you've written is correct and I fully agree.

            But: The difference is: I'm deciding, that I'm using email
            from xy, I'm deciding, that I'm using this email to
            register at some site or anything.

            Anything of these services could be hacked of course, and
            then they can use my mail to reset password, use the
            accounts, etc.

            Now think from the other side:

            Some site, which I'm registered in is trusting some oauth
            provider I'm not even knowing about. I'm not registered at
            this provider. If this provider is (independent how or
            from whom) is used in a malicious way, they can access my
            account, without my knowledge by sending a valid token
            including my email.


            I'm not sure how to explain the main concern about this in
            more detail and of course I can avoid services providing
            these type of logins without my permission, but as said
            what about the future?

            On 8/10/23 00:40, Warren Parad wrote:
            Let me try that differently, is OAuth more vulnerable
            than email usage? If you hacked any email provider that's
            arguably a bigger goldmine than just ones protected by
            oauth. As long as sites are protected by email, oauth
            gives a more secure strategy. Most providers that accept
            email as authentication allow you to reset your password
            via email.

            Going further, "email is insecure" because providers that
            send email can impersonate you. How about telecom
            companies, they can pretend to send SMS from you. Or the
            government, they could issue a new password in your name
            and pretend to be you. The horror.

            In all seriousness, it's about your threat modal more
            than anything. Concerned about your email, then that's
            your weak point, concern about oauth, we'll first be
            concerned about your email, and then you can be concerned
            about oauth.

            If we assume that everything was on oauth, then there's
            the question of why don't providers just implement a
            FIDO2 compliant strategy. Wouldn't that solve everything?

            Don't get me wrong: I'm not telling everything is on oauth
            as far (I'm not so deep into the protocol) it's acting
            only as authorization not as authentication, than it is
            anyway the wrong point to address this issue.

            But if it would be possible to eliminate this specific
            issue inside the protocol directly, it would be the best
            solution to not even run into this situation at any later
            point of time.


            As total naive approach I could about something like:

            Client is trusting Provider for user
            authentication/authorization

            Client must set some random verification token (normally
            requested / set by the user)

            User is registering this token under the provider

            Only if this token is valid the token is accepted by the
            client


            If something like this would be included in the protocol
            itself, it would be working in all situations like
            companies because they can control both sides and generate
            such tokens automatically

            And yes if the site is working together with the provider
            than it's over, but that's exactly the point: Than the
            target itself must be included not only the single
            provider, where the user might not even have an
            relationship with.


            Further I could think of extended security, by using
            signed tokens with user provided public key, so it's
            technically secured to just fake tokens.


            On Thu, Aug 10, 2023 at 12:27 AM Matthias Fulz
            <mf...@olznet.de> wrote:

                Thank you for the responses so far.

                On 8/9/23 22:20, Warren Parad wrote:
                I can tell you I definitely read it. I actually read
                it multiple times. But I don't know what to tell
                you. The problem you've identified exists, but that
                doesn't necessarily mean it is a problem. In a way
                it is a bit like, You create a bank account at a
                bank and you give them all your money. They then
                decide to never give it back.
                Yep I know, but the difference is, that I've full
                control over my decision to give my money to this
                bank or not.

                While banks are regulated in most countries and
                things like GitHub are not, in essence this
                interaction is based on trust. Of course solutions
                like WebAuthn via FIDO2 used as a first party
                authentication can solve this, and arguably this is
                the remit of the entire web3.0 domain.

                I don't think anyone would suggest this isn't a
                problem, just that it isn't that big of a problem. I
                think realistically, in order for this problem to
                have a closed form solution, it would need to start
                with a suggestion on how to solve it, rather than a
                bunch of us agreeing that it is. Because right now
                there doesn't seem to be any fundamental solution
                available for this. And honestly, the bigger problem
                is the digital assets at risk at the third parties
                is not due to impersonation, but just general
                negligence. GitHub isn't trying to malicious log
                into my StackOverflow account, and Google isn't
                trying to log into my bank. That's because these
                organizations have supposedly bound themselves to
                not grant this ability to their internal engineers
                to abuse. And they are spending tons of resources
                attempting to stop external attackers.

                That being said, it's hard to know if this problem
                hasn't already transgressed in the wild. While it is
                certainly possible, it seems internal users are more
                likely to act maliciously on behalf of the user via
                their owned data in their own company, rather
                than attempt to impersonate their users at third
                party sites.

                These points are totally correct, but I think also
                about something like official Authorities (ae.
                Patriot Act, etc.) that would definitely be
                interested in such things (ok not on me personally),
                but this is another topic.

                For me to be more safe, I'm using now a unique mail
                for Github, etc., which is sufficient for now, but if
                you think into the future and especially about oauth
                with more than a handful widely used trusted
                Providers and that they could be hacked, infiltrated
                forced to grant malicious access, etc. Than this
                could become to a huge problem in no time.

                As example: Think about one widely used trusted
                provider that's hacked, or similar. You could access
                so many accounts on multiple sites, even if the users
                are never used this oauth for these sites.


                Sorry to insist here, but just because it is not an
                issue now, I can't agree that this not a big deal in
                general.

                I mean in the above scenario even a unique mail
                wouldn't help because that could send any mail, they
                want to these sites. Think about such provider acting
                malicious and you would not even HAVE an account at
                any of them: every site, that trusts them could be
                accessed under your account just by knowing the user
                identifier, which is in 99% time the mail.


                - Matthias


                - Warren

                On Wed, Aug 9, 2023 at 10:06 PM mfulz
                <mf...@olznet.de> wrote:

                    Anyone read this topic or could tell if there is
                    a better place to adress this?

                    Sent from Nine
                    
<https://urldefense.com/v3/__http://www.9folders.com/__;!!FrPt2g6CO4Wadw!MlSwGmLXZv9Fk8bOm3ICOR_rDeHxyrRd0u6TNWJeCKePl7SeuwJOm6LBE9fN4f7RxPkn036feigrU9JJeQDQOW6sAkk9jzet0lBo9Ww$>
                    
------------------------------------------------------------------------
                    *Von:* mfulz
                    *Gesendet:* Sonntag, 16. Juli 2023 03:38
                    *An:* oauth@ietf.org
                    *Betreff:* [OAUTH-WG] OAuth Trust model



                    Hi Together,

                    I was thinking about some (at least I see it in
                    that way) problem in the whole oauth/openid design:

                    The problem is the following:

                    The user has no control about what providers are
                    accepted by the clients (websites, etc.) and
                    this opens access to these providers without any
                    way to protect against that.

                    Example:

                    I've created an account with email/password
                    login at stackoverflow

                    I've created an account with the same email at
                    github

                    -> logged out from stackoverflow

                    -> logged in via github oauth -> working and
                    connected to the email/pw account from stackoverflow


                    Stackoverflow has the possibility to remove the
                    github login now, but the main problem is, that
                    I would be out of control, that some of these
                    oauth providers

                    (please don't go into the discussion WHY they or
                    anyone should do it) could access my accounts,
                    when such site would allow them as provider.


                    In my opionion it would be good to avoid such
                    issues, by including something in the standard,
                    that the user MUST allow the connection on both
                    sides on the client

                    and on the provider.


                    Yes for sso without any existing account that's
                    some kind of an issue, but still it could be
                    added some verification process like sending
                    confirmation link

                    That the user is accepting the oauth provider on
                    the Client side.

                    Then the oauth provider would also need access
                    to my emails to access my account.


                    Not sure if I'm wrong here but I think my
                    description is correct.


                    BR,

                    Matthias

                    _______________________________________________
                    OAuth mailing list
                    OAuth@ietf.org
                    https://www.ietf.org/mailman/listinfo/oauth
                    
<https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/oauth__;!!FrPt2g6CO4Wadw!MlSwGmLXZv9Fk8bOm3ICOR_rDeHxyrRd0u6TNWJeCKePl7SeuwJOm6LBE9fN4f7RxPkn036feigrU9JJeQDQOW6sAkk9jzeti_9Nmxo$>

                _______________________________________________
                OAuth mailing list
                OAuth@ietf.org
                https://www.ietf.org/mailman/listinfo/oauth
                
<https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/oauth__;!!FrPt2g6CO4Wadw!MlSwGmLXZv9Fk8bOm3ICOR_rDeHxyrRd0u6TNWJeCKePl7SeuwJOm6LBE9fN4f7RxPkn036feigrU9JJeQDQOW6sAkk9jzeti_9Nmxo$>

            _______________________________________________
            OAuth mailing list
            OAuth@ietf.org
            https://www.ietf.org/mailman/listinfo/oauth
            
<https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/oauth__;!!FrPt2g6CO4Wadw!MlSwGmLXZv9Fk8bOm3ICOR_rDeHxyrRd0u6TNWJeCKePl7SeuwJOm6LBE9fN4f7RxPkn036feigrU9JJeQDQOW6sAkk9jzeti_9Nmxo$>

        _______________________________________________
        OAuth mailing list
        OAuth@ietf.org
        
https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/oauth__;!!FrPt2g6CO4Wadw!MlSwGmLXZv9Fk8bOm3ICOR_rDeHxyrRd0u6TNWJeCKePl7SeuwJOm6LBE9fN4f7RxPkn036feigrU9JJeQDQOW6sAkk9jzeti_9Nmxo$


    ------------------------------------------------------------------------

    The information contained in this e-mail is confidential and/or
    proprietary to Capital One and/or its affiliates and may only be
    used solely in performance of work or services for Capital One.
    The information transmitted herewith is intended only for use by
    the individual or entity to which it is addressed. If the reader
    of this message is not the intended recipient, you are hereby
    notified that any review, retransmission, dissemination,
    distribution, copying or other use of, or taking of any action in
    reliance upon this information is strictly prohibited. If you have
    received this communication in error, please contact the sender
    and delete the material from your computer.




    _______________________________________________
    OAuth mailing list
    OAuth@ietf.org
    https://www.ietf.org/mailman/listinfo/oauth



_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to