[Openid-specs-risc] [Id-event] Breaking out the distribution draft

Hardt, Dick dick at amazon.com
Mon Mar 6 15:57:21 UTC 2017


I’m not comfortable talking about the security implications of what we will do on a public list.

When Amazon decides it wants to stop sharing with Google, and wants Google to stop sharing with Amazon, we will be really certain we want that to happen, and we want Google to stop sharing. We then have deterministic behavior, and it is a command.

When Amazon sends an event to Google, Google can process that however they want to process. It is just data.

/Dick

On 3/5/17, 5:43 PM, someone claiming to be "Phil Hunt (IDM)" <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:

I am just following your logic. Because amazon might be fooled (eg stolen session), google must make its own decision about a state change occurring at amazon. Eg a session cookie may have been copied and is now weilded by an attacker.

Making a command format means google must comply and amazon is claiming it cannot be fooled. That means the breach is propagted. We do not want that.

I am saying control api is just for the stream config and its access mgmt.

The data plane is about the subject state change signals.

Your usecase is a subject state change which can be called into question and is clearly part of the duplexed data plane.

Phil

On Mar 5, 2017, at 4:20 PM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:
Hi Phil

I’m not following your logic below. Let me know what is wrong in the following:

When Amazon sends Google an event, we only want them to put that into their risk analysis. It is just bad design to have the event have another, unintended, or unknown side effect.

When Amazon sends Google a control signal to start or stop sending messages, I expect them to stop or start sending messages.

Mixing those two concepts is going to lead to lots of confusion on expectations of what will happen. For example, if for reasons unknown to Amazon, we just stop getting messages from Google, that sounds super difficult to debug, particularly at scale.

>>>>

If your real concern is that you don’t want to write a specification for the control plane, that is a different discussion. I’m certain we can find someone else to do the work, and I appreciate that if it is not important to Oracle, then you would have little incentive to do that work. No worries.

/Dick

On 3/4/17, 12:42 PM, someone claiming to be "Phil Hunt" <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:

Dick,

The idea that an issuer might have been compromised/tricked/whatever by a bad actor is exactly is why commands through the control plane are bad.

Receivers have to assume that Events simply state changes that have occurred within the issuer (e.g. Amazon). The receiver is always free to question the event (e.g. was amazon fooled, was it a symptom).  I believe the controller of an identity information (a transmitter) is always responsible to the user on disclosure and needs to have consent and act based on its own conclusions.  If Amazon sent Google (or anyone else) a signal, I would expect Google to accept the event and make a risk judgement independently.  They might:

* Process the event and adjust feeds
* Process the event and mark the account at risk for a period of time
* Ignore the event
* Seek confirmation from the user directly first
* Wait a period of time before actually removing the user from the feed in case recovery is needed or subsequent suspicious activity occurs.

This is the kind of event-sequence scenario that I expect the RISC WG will be sorting through.

Because of the fact that receivers must make judgement calls, it is better not to issue commands.  The receiver must always reconcile the event based on what it knows of the subject and take independent action.  This is the very thing that makes an event different from a command.  An event signals something that has occurred within the context of the issuer, and the receiver takes independent action upon notification.  IMO, that’s exactly what your case demands.


Phil

Oracle Corporation, Identity Cloud Services & Identity Standards
@independentid
www.independentid.com<http://www.independentid.com>
phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>






On Mar 2, 2017, at 6:16 PM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:

If we were not dealing with bad guys, then this could work, but we are. Let me explain.

The bad guy gets access to the user’s account, and the first thing he does is disable sharing between Amazon and Google.

Amazon sends an event to Google saying that the user has disabled sharing. This is a very useful signal to Google for detecting account take over, as this is a behavior that may happen when an account is taken over.

According to your design though, at this time, Google will no longer send events to Amazon, and Amazon should no longer send events to Google since we have made the control signal of stopping sharing (control plane) to be implicit in this security event signal (data plane).

Now, Amazon no longer sees any events from Google, and will no longer send events to Google – at PRECISELY the time when the two of them need to be sharing security events since the account has been compromised.

If we have a separate control plane, then when the user disables sharing, Amazon can tell the user they will stop sharing in X time to enable Amazon to continue to protect the user for that period in case disabling was unauthorized. Amazon will send Google the message that sharing was disabled on the data plane, and X time later will send Google a control plane message to disable sharing.

/Dick




On 3/2/17, 1:55 PM, someone claiming to be "Phil Hunt" <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:

So, in both cases, what Adam says works with eventing principles.  In your case, you would issue an event along the lines of Subject personal identifier added or removed.

For example, if phil.hunt at oracle.com<mailto:phil.hunt at oracle.com> registered with Amazon, you would figure out that Oracle,com will want to know, if the user (me) gave Amazon the consent, my profile would be added to the Amazon->Oracle feed.  Amazon then immediately sends the identifier (or account) added event to Oracle.com<http://oracle.com/>.   Notice that the event is simply a notification that a subject has changed state AT amazon. It is in no way a command.

Then, upon receiving the event from Amazon, Oracle.com<http://oracle.com/> is informed that the Subject personal identifier (phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>) was added at Amazon. The Oracle system consults local policy, obtains consent if necessary and then adds phil.hunt at oracle.com<mailto:phil.hunt at oracle.com> to the reciprocating feed for Amazon.

When I close my account at Amazon, the exact same process occurs. Amazon issues an account closed notification (or just identifier removed).  Oracle clears the subject from its reciprocating feed if appropriate.  Oracle may also make other conclusion.

AN IMPORTANT OBSERVATION:  Adam has talked about how the addition of an identifier (e.g. an email address) is also itself a security event because hackers will often do this.  So in this example, Oracle (the IDP for phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>) may also mark my account as potentially under attack for a period of time in its own security system.

This is an example of the power of eventing.  Rather than sending a command from Amazon to Oracle, Amazon simply states a fact that has occurred in its own domain and the receiver and draw its own conclusions to act upon it. In this case, the relationship is identified and the feeds are updated, but ALSO the security systems are notified in case phil.hunt at oracle.com<mailto:phil.hunt at oracle.com> has been hijacked.

Have I got this right Adam?


Phil

Oracle Corporation, Identity Cloud Services & Identity Standards
@independentid
www.independentid.com<http://www.independentid.com/>
phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>






On Mar 2, 2017, at 1:04 PM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:

Sorry I did not include my use cases and am making you dig for them.

You have described the two use cases:

1)       User has opted out of Amazon and Google exchanging information. We want to tell Google we will no longer be sending signals, and ask Google to no longer send us signals.
2)       User has removed the email address from their Amazon account. Again, we want to let Google know we will no longer be sending signals, and that we no longer want Google to send us signals.

As for why do we need to tell Google to not send us signals, we do not want to receive information we should not see. A tenant of security is to not have access to something you don’t need. We would prefer to not receive the signal, rather than have to filter it out and drop it. We want to minimize the information we get. There are nuances about why that are not appropriate for discussion publicly.

/Dick

On 3/2/17, 12:01 AM, someone claiming to be "Adam Dawes" <adawes at google.com<mailto:adawes at google.com>> wrote:


On Wed, Mar 1, 2017 at 7:32 PM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:
If Amazon says it no longer wants any events from oracle on subject X, that is clearly a command.

I'm trying to understand that that really means. Amazon agrees that it will no longer look for any 3rd party signals related to account security for that user? Does that mean Amazon is no longer interested in password dumps that are on the internet to try to better secure the account? That doesn't seem to make any sense.

I understand you are trying to get at some privacy choice expressed by the user on Amazon. I think that's the wrong model. The privacy event happens with the Transmitter and that's where the user's preference to not disclose to 3rd parties should take place. I think the actual RISC event of interest that corresponds to your use case Dick, is email address changed or account deleted at Amazon. Those are totally valid RISC signals and it would be fully appropriate for the Transmitter to no longer send info about that user to Amazon anymore.

I understand that we're kind of mixing the control plane and data plane here. But going back to past conversations, the idea was that both Transmitters and Receivers weren't compelled to do anything in particular. I think this is more feature than bug.

/Dick

On 3/1/17, 7:06 PM, someone claiming to be "Phil Hunt (IDM)" <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:

Depends on what you are expressing. If you are saying amazon has an interest in subject x, it is an event compatible with data plane.

If you are saying amazon wants oracle to deliver events on subject x, that is a command and must be part of control.

The problem is that no party should be forced to disclosed events because a third party says so. They must get consent from their subject. We should get legal to confirm this.

My thought is that the event causes the receiver to subsequently confirm with the user for permission.

Phil

On Mar 1, 2017, at 4:46 PM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:
Mixing control plane and data plane is very concerning to me.

That is considered an anti-pattern in AWS. It complicates development, security and operations.

/Dick

On 2/28/17, 10:24 PM, someone claiming to be "Adam Dawes" <adawes at google.com<mailto:adawes at google.com>> wrote:

Thanks for bringing this up Dick. I think you're worried about, when alice at gmail.com<mailto:alice at gmail.com> signs up for an account at Amazon, how would Amazon register to get events from Google. I think we can deal with this if Amazon sends a SET token to google with an "account created" event which would then create a registration at google for Amazon to receive events about alice at .

I think it is totally reasonable to think of account creation as a notifiable event. And in typical RISC fashion, it is up to the recipient to do what it will with the events. From Google's perspective, we would white list a set of partners where we have contracts to enable implicit registration. I think we should work out some response codes to make it clear to the sender whether the registration succeeded.

We didn't talk a lot about this in the F2F but is an idea that I had in my deck and I think it came up in Phil and my conversation last week. Phil, does the above give you any concerns?

On Tue, Feb 28, 2017 at 9:12 AM, Phil Hunt (IDM) <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:
RISC use case is typically bi-directional so events can be used. It also works better because usually a receiver may add only or drop only depending on implicit or explicit federation.

Adam argued for all other update items to be done OOB.

That just left error signalling for the receiver to find out why events were not coming.

We left it that scim can be quickly added for those that want full automated CRUD (oracle does). Buy it would not be required in core.

Phil

On Feb 28, 2017, at 8:32 AM, Hardt, Dick <dick at amazon.com<mailto:dick at amazon.com>> wrote:
Perhaps I am missing it, but I don’t see a mechanism for the receiver to add / delete which subjects the receiver is interested in. Is this not included, or am I misunderstanding what is below?

Or is that out of scope? If so, that seems odd as there is a control plane API in (3)

/Dick


On 2/28/17, 12:53 AM, someone claiming to be "Openid-specs-risc on behalf of Adam Dawes" <openid-specs-risc-bounces at lists.openid.net<mailto:openid-specs-risc-bounces at lists.openid.net> on behalf ofadawes at google.com<mailto:adawes at google.com>> wrote:

I think this is great Phil. Thanks again for the detailed conversation where we were able to arrive at this.

On Mon, Feb 27, 2017 at 1:35 PM, Phil Hunt <phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>> wrote:
Please confirm if you agree with the following:

I had previously promised to break up the distribution draft into components. I ran into some difficulty as to how subscribers (receivers) of events find out if the publisher is having problems delivering events.

After some discussion with the RISC WG folks and Adam Dawes, I would like to propose that I break out a SET Transmission draft that includes the following:

1.  Basic HTTPS POST profile to a specified endpoint.  It is up to the receiver to provide fault tolerance and high-availability that meets its own delivery assurance requirements.
2.  A set of metadata that describes the endpoints, the encryption methods (eg. keys for signing and encrypting JWTs) etc.
3.  A simple control plane API that allows a subscriber (receiver) to perform an HTTPS GET to obtain the current configuration and subscription (stream) status.  While compatible with SCIM, it will NOT require SCIM to be implemented.
4.  Configuration of subscriptions (streams) is done through out-of-scope administrative processes offered by event publishers.
5.  In the initial profile, subscribers will not be able to “pause” streams automatically unless offered through the administrative interface of the publisher.

If people have a need for automated management, the basic idea is that you implement the POST and PATCH methods of SCIM and you are good to go. We don’t need to spend a lot of time on it as there is nothing special to do once the metadata for streams is defined.

Does this work for everyone?

Phil

Oracle Corporation, Identity Cloud Services & Identity Standards
@independentid
www.independentid.com<http://www.independentid.com/>
phil.hunt at oracle.com<mailto:phil.hunt at oracle.com>







_______________________________________________
Id-event mailing list
Id-event at ietf.org<mailto:Id-event at ietf.org>
https://www.ietf.org/mailman/listinfo/id-event



--
Adam Dawes | Sr. Product Manager | adawes at google.com<mailto:adawes at google.com> | +1 650-214-2410<tel:(650)%20214-2410>




--
Adam Dawes | Sr. Product Manager | adawes at google.com<mailto:adawes at google.com> | +1 650-214-2410<tel:(650)%20214-2410>




--
Adam Dawes | Sr. Product Manager | adawes at google.com<mailto:adawes at google.com> | +1 650-214-2410

_______________________________________________
Id-event mailing list
Id-event at ietf.org<mailto:Id-event at ietf.org>
https://www.ietf.org/mailman/listinfo/id-event


_______________________________________________
Id-event mailing list
Id-event at ietf.org<mailto:Id-event at ietf.org>
https://www.ietf.org/mailman/listinfo/id-event
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-risc/attachments/20170306/768e6264/attachment-0001.html>


More information about the Openid-specs-risc mailing list