Let me try that differently, I posit that it might be impossible to secure
this in a way that would prevent a different Relying Party from
impersonating the user if we only use details *about* the user. However, we
do know that using FIDO2 the user can secure communication with the AS, in
a way that prevents impersonation.

With that, would it make sense for us to standardize the communication with
the AS in a way that operationalizes FIDO2?

On Tue, Aug 15, 2023 at 8:28 PM Rodrigo Speller <rspeller=
40primosti.com...@dmarc.ietf.org> wrote:

> It could be an internal implementation like any part of OAuth could be,
> but from the OAuth perspective, the intent was to create a new Grant Type,
> that is not mandatory, but part of the framework. So, this Grant Type
> standardizes the generic flow to the AS to obtain the authorization
> evidence token from the user and transmit it to the client application.
> Probably, the documentation will specify a new grant_type, query parameters
> and token response properties.
>
> And, a standard helps to concern a mature and interoperable approach to
> resolve this problem.
>
> I believe that the final document will be a Grant Type specification, but
> a BCP may be used to define practices to operate the keys on some cenarios,
> like browsers, native apps, soon.
>
> I predict some possibilities about the user providing some encrypted
> personal data embedded on the authorization evidence token directly to the
> client too. But it is out of scope for now.
>
> I don't have this ready. I'm only answering this group about this
> possibility, but I can work with the group about this.
>
>
> Em ter., 15 de ago. de 2023 às 14:59, Warren Parad <wparad=
> 40rhosys...@dmarc.ietf.org> escreveu:
>
>> I think the problem here for me is that lack of clarity of how this
>> problem could be better constrained at the protocol level. As far as I can
>> see, albeit naively, the problem is purely an internal implementation
>> detail. Is that not the case? Is there really something missing in the
>> grants that would encourage AS to do the right thing? If so, can you share,
>> because I'm not seeing it.
>>
>> That being said, even if it is an implementation detail, that doesn't
>> mean there couldn't be some sort of BCP.
>>
>> On Tue, Aug 15, 2023 at 7:42 PM Rodrigo Speller <rspeller=
>> 40primosti.com...@dmarc.ietf.org> wrote:
>>
>>> I read all the comments carefully while flying through Brazil, and I
>>> confess that my reasoning from the beginning tended to say that the OAuth
>>> trust model is “as is” and that the main point of the trust relationship is
>>> between the AS and the RO (in this case, a user).
>>>
>>> At various times, while reading, I agreed that Matthias' question was
>>> about a problem that would not fit directly into the OAuth Framework, as I
>>> understood that the central point in question was authentication and not
>>> authorization. But I refused to accept that my point of view would be
>>> correct due to the avalanche of exposed reasoning that contributed to my
>>> understanding and that even so, Matthias insisted on making himself
>>> understood by different approaches, leading to believe that he understood
>>> the answers, but still did not was convinced that we had understood this
>>> problem in essence.
>>>
>>> So, during the flight, I reflected on Matthias' insistence: "What could
>>> we be missing?" Brilliantly, I think Matthias raised a very important and
>>> fixable point: “That the user MUST allow the connection on both sides on
>>> the client and on the provider.”
>>>
>>> As is known here, OAuth 2.0 is not a ready-to-use protocol, but a
>>> framework that is constantly evolving, it is specified by multiple RFCs and
>>> its main implementation is the OpenID Connect 1.0 layer, which is also
>>> under development. I say this because I believe the solution to this point
>>> raised by Matthias would result in a Zero-Trust Authorization Grant with
>>> great value to the protocol, as it would reinforce user authorization so
>>> that the AS could authorize client applications.
>>>
>>> In this grant type, the AS would ask the user to sign evidence tokens to
>>> authorize client application access in the authentication/consent phase. Of
>>> course, this flow would require some restrictions to maintain a high degree
>>> of security, such as: Generation and storage of user signature keys; Form
>>> of registration of the signature verification key with the AS; Transport of
>>> authorization evidence to the client application; Transporting the evidence
>>> token signature verification key to the client application; etc;
>>>
>>> I believe that a Zero-Trust Grant Type with a model similar to the one
>>> above would be very useful for Web 3, financial applications (FAPI / Open
>>> Banking), etc. It would also encourage the use of private keys to
>>> authenticate users in these environments, making room for the signing of
>>> operational tokens in the future (out of scope).
>>>
>>> Therefore, I ask Matthias to validate and complement, if possible, my
>>> point of view. And I invite this group to start an effort to draft this
>>> Grant Type with me.
>>>
>>>
>>> Em qui., 10 de ago. de 2023 às 22:21, Michael Jones <
>>> michael_b_jo...@hotmail.com> escreveu:
>>>
>>>> I HIGHLY recommend the authoritative blog post on the subject “OAuth
>>>> 2.0 and Sign-In”, written by a dear friend to many of us, Vittorio
>>>> Bertocci, just over a decade ago.  While Microsoft took it down, it lives
>>>> on in the Wayback Machine at
>>>> http://web.archive.org/web/20130105031040/http://blogs.msdn.com/b/vbertocci/archive/2013/01/02/oauth-2-0-and-sign-in.aspx
>>>> <http://web.archive.org/web/20130105031040/http:/blogs.msdn.com/b/vbertocci/archive/2013/01/02/oauth-2-0-and-sign-in.aspx>.
>>>> It authoritatively covers much of the ground in our current discussion.
>>>>
>>>>
>>>>
>>>> Read and enjoy!
>>>>
>>>>
>>>>
>>>>                                                        -- Mike
>>>>
>>>>
>>>>
>>>> *From:* OAuth <oauth-boun...@ietf.org> *On Behalf Of * Dick Hardt
>>>> *Sent:* Thursday, August 10, 2023 5:46 PM
>>>> *To:* Matthias Fulz <mf...@olznet.de>
>>>> *Cc:* oauth@ietf.org
>>>> *Subject:* Re: [OAUTH-WG] OAuth Trust model
>>>>
>>>>
>>>>
>>>> Sorry -- I have not read this thread in depth, so if you have another
>>>> crisp example, please send.
>>>>
>>>>
>>>>
>>>> Your description sounds like an identity problem and not an
>>>> authorization problem. OAuth solves the latter, and it is a feature that
>>>> the RS does need to know the client, only that the client is authorized.
>>>>
>>>>
>>>>
>>>> To fit that into your analogy, anyone the school deems authorized to
>>>> pick up the kid is authorized to pick up the kid. If you don't like how the
>>>> school decides that, don't send your kid to that school, or work to change
>>>> the school's policy.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Aug 10, 2023 at 4:41 PM Matthias Fulz <mf...@olznet.de> wrote:
>>>>
>>>> I'm running out of ideas to get the point explained...
>>>>
>>>> Ok let's try it from an abstract view:
>>>>
>>>> Think about a school where your kid is allowed to get picked up by a
>>>> legitimated list of persons -> ok
>>>>
>>>> Now think about the school saying I'm trusting a third party about
>>>> identifying any person on that list, without asking the person about that
>>>> this third party is allowed to identify this person.
>>>>
>>>> The problem is, that by design the person who's identity is to be
>>>> verified has no control about what AS is allowed by the site to verify the
>>>> identity.
>>>>
>>>>
>>>>
>>>> Sorry for that stupid example but I'm really not able to explain the
>>>> issue in another way anymore :(
>>>>
>>>> On 8/11/23 00:02, Dick Hardt wrote:
>>>>
>>>> This sentence does not make sense to me "which AS is AUTHORIZED at
>>>> which RS acting as the user"
>>>>
>>>>
>>>>
>>>> The RS server has delegated authorization decisions to the AS
>>>>
>>>>
>>>>
>>>> The client is acting as the user
>>>>
>>>>
>>>>
>>>> On Thu, Aug 10, 2023 at 2:59 PM Matthias Fulz <mf...@olznet.de> wrote:
>>>>
>>>> I can follow your point but please try to think from a different
>>>> perspective:
>>>>
>>>> As authorization protocol, how can it not let the user decide which AS
>>>> is AUTHORIZED at which RS acting as the user?
>>>>
>>>>
>>>>
>>>> On 8/10/23 23:28, Dick Hardt wrote:
>>>>
>>>> "auth providers" is an extremely confusing term.
>>>>
>>>>
>>>>
>>>> OAuth has no involvement in the content an RS provides the client --
>>>> the AS only provides authorization to access the content at the RS.
>>>>
>>>>
>>>>
>>>> It is common that the AS and RS are the same entity, but the protocol
>>>> is designed to have a separation of concerns so that they are acting
>>>> independently.
>>>>
>>>>
>>>>
>>>> From what I can understand in your discussion, you are wanting OAuth to
>>>> do something it is not designed for.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Aug 10, 2023 at 2:03 PM Matthias Fulz <mf...@olznet.de> wrote:
>>>>
>>>>
>>>>
>>>> On 8/10/23 10:25, Warren Parad 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.
>>>>
>>>> Yes but that's the point: The site itself has to do it. If they are not
>>>> willing to it's ok.
>>>>
>>>> But: With the actual concept using auth providers, even if the the site
>>>> is NOT willing to sell it, my account could be accessed by using the
>>>> trusted auth provider without the site itself needs to do anything. And the
>>>> problem is, that such sites wouldn't be technically forced to use such auth
>>>> providers by active permission granting from user side.
>>>>
>>>> That's the difference I'm trying to point at.
>>>>
>>>> Sorry I'm really struggling to explain it in another way (will think
>>>> about).
>>>>
>>>>
>>>>
>>>> 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.
>>>>
>>>> No that's not what I was suggesting.
>>>>
>>>> It's not about excluding the authorization server it's more about a
>>>> additional verification, that the user is granting the RS explicit
>>>> permission to use the AS on behalf.
>>>>
>>>> AFAIK the actual situation is the following:
>>>>
>>>> The site is providing the login via AS and the AS can then on behalf
>>>> any user of this site just login. The site can of course implement some
>>>> permission granting but that's not required. This is done via signed JWT,
>>>> etc. which are verified on the RS side.
>>>>
>>>> Now my suggestion would be more like adding an additional verification
>>>> before the AS can be used:
>>>>
>>>> *The following is just some rough idea on how to add such verification
>>>> in a safe way*
>>>>
>>>> The RS side will use a signed jwt that will be included into the access
>>>> token send from AS to verify that the user has granted permission to use
>>>> this AS.
>>>>
>>>> This could be done automatically during registration, so it wouldn't
>>>> break this feature in a way that the RS will create this token during
>>>> registration and send it to the AS. The AS will need to include this token
>>>> for requests and if this cannot be verified on the RS side it will not be
>>>> accepted.
>>>>
>>>> Further (ae. existing accounts) the user could provide a signed jwt to
>>>> the AS and a pub key to the RS. If the jwt cannot be verified than the user
>>>> did not granted the permission to use the AS on behalf.
>>>>
>>>>
>>>>
>>>> For companies, etc. using RS / AS on premise this could all be
>>>> implemented to be done automatically and it would not create any additional
>>>> effort on administration side.
>>>>
>>>>
>>>>
>>>> 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?
>>>>
>>>> Yes and no: Think about the widely used TOTP (ae. github) the Secret
>>>> Key is created on the AS side and therefore under full control of it. This
>>>> is not helping to protect the user from malicious intents.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 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 <http://www.9folders.com/>
>>>> ------------------------------
>>>>
>>>> *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
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>> _______________________________________________
>>> 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