Agreed with the security consideration.

Just for the record:
The life cycle as I understand would include the following.

   1. registration (creation)
   2. activation
   3. de-activation
   4. re-activation
   5. archival
   6. deletion

In the above thread, I was talking more about "3. archive".
We do not have to have the full life-cycle model here, but it may be a good
idea to document why we would not.

Nat


2013/2/18 Justin Richer <jric...@mitre.org>

> Nat's attack vector presumes lack of logging on the server side, where
> doing a "delete" means that you can no longer see anything about who did
> what. You could make the same argument if you have a system where users can
> register themselves and delete their accounts at will -- someone creates a
> fly-by-night account, does bad things, deletes the account. If the site
> doesn't have detailed logs in both of these cases, yes, they'll be in the
> dark about the bad things that happened when the account/client was active.
> It's a valuable security consideration, but I don't think that it's enough
> to say that delete is no longer a valid operation.
>
> I think it's up to the server what "delete" means under the hood, but the
> important bit for the protocol is that as far as the client is concerned,
> that client_id is dead now. I don't think it's worthwhile to specify it as
> a "suspend" operation, because to me "suspend" implies an ability to
> "unsuspend", and I really don't think we want to get into the complicated
> zombie OAuth client business. But whether on the server side "delete"
> translates to "delete everything from the database immediately and burn all
> records of it" or instead "set a flag on that client and all of its
> outstanding grants so that it can't be used but administrators can still
> poke it with a stick" is completely up to the implementation and its
> security considerations.
>
> That said, I think it would make sense to at least describe this potential
> problem in the security considerations, and note that the client MUST NOT
> use the client_id again.
>
>  -- Justin
>
>
> On 02/17/2013 01:11 AM, Mike Jones wrote:
>
>> I agree.  If we have it at all, DELETE should be a declaration by the
>> Client that requests by it should no longer be honored.  It should be up to
>> the Server whether to implement this as suspension or deletion.  At most, I
>> believe it should be an optional operation, which MAY be supported.
>>
>>                                 -- Mike
>>
>> -----Original Message-----
>> From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org**] On Behalf
>> Of Nat Sakimura
>> Sent: Saturday, February 16, 2013 10:04 PM
>> To: John Bradley
>> Cc: oauth@ietf.org
>> Subject: Re: [OAUTH-WG] Registration: RESTful client lifecycle management
>>
>>  When sending an update, a client MUST send all metadata fields
>>> returned from the server in its initial registration or previous read
>>> or update call, including its client_id. A server MAY replace any
>>> missing or invalid fields with default values, or it MAY return an
>>> error as described in the Error Response section. A server MUST return
>>> all provisioned fields in its response. A server MUST NOT change the
>>> client_id field. A server MAY change the client_secret and/or
>>> refresh_access_token fields.
>>>
>> Say the client registered some value. Sometime later, the server changed
>> a value due to some policy or security reasons etc. The client when UPDATES
>> with the previously registered value, what is going to happen to the
>> changed value?
>>
>>  DELETE to be used correctly is I think going to delete the client_id and
>>>> all associated tokens and cause a ripple effect in removing grants
>>>> associated with that client_id.
>>>>
>>> This is how I would interpret it as well. It's de-provisioning the
>>> client, not resetting it.
>>>
>> For DELETE, I can think of an attack such that
>>
>> 1. Register as a client.
>> 2. Send spam links to random users.
>> 3. When user "authorizes", suck the user data such as contacts out.
>> 4. DELETE the registration and disappear.
>>
>> To prevent something like this, it should probably be something more akin
>> to "suspend" rather than completely de-provisioning.
>> ______________________________**_________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/**listinfo/oauth<https://www.ietf.org/mailman/listinfo/oauth>
>> ______________________________**_________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/**listinfo/oauth<https://www.ietf.org/mailman/listinfo/oauth>
>>
>
>


-- 
Nat Sakimura (=nat)
Chairman, OpenID Foundation
http://nat.sakimura.org/
@_nat_en
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to