-----Original Message-----
From: Benjamin Kaduk <[email protected]> 
Sent: Thursday, January 9, 2020 1:22 PM
To: Jim Schaad <[email protected]>
Cc: 'Olaf Bergmann' <[email protected]>;
[email protected]; [email protected]
Subject: Re: [Ace] AD review of draft-ietf-ace-dtls-authorize-09

On Thu, Jan 09, 2020 at 12:52:56PM -0800, Jim Schaad wrote:
> 
> 
> -----Original Message-----
> From: Benjamin Kaduk <[email protected]>
> Sent: Thursday, January 9, 2020 12:17 PM
> To: Olaf Bergmann <[email protected]>
> Cc: Jim Schaad <[email protected]>; [email protected]; 
> [email protected]
> Subject: Re: [Ace] AD review of draft-ietf-ace-dtls-authorize-09
> 
> On Thu, Jan 09, 2020 at 12:32:40PM +0100, Olaf Bergmann wrote:
> > Hi Jim,
> > 
> > Jim Schaad <[email protected]> writes:
> > 
> > > -----Original Message-----
> > > From: Ace <[email protected]> On Behalf Of Olaf Bergmann
> > > Sent: Monday, January 6, 2020 2:03 AM
> > > To: Jim Schaad <[email protected]>
> > > Cc: [email protected]; 'Benjamin Kaduk' <[email protected]>; 
> > > [email protected]
> > > Subject: Re: [Ace] AD review of draft-ietf-ace-dtls-authorize-09
> > >
> > > Jim,
> > >
> > > Jim Schaad <[email protected]> writes:
> > >
> > > [Ben's review]
> > >> We also are potentially in violation of the framework's 
> > >> requirements
> with respect to the independent selection of profiles for client/AS 
> and client/RS interactions -- at present, when DTLS+RPK is used for 
> client/RS, we require that DTLS+RPK is also used for client/AS, in 
> order to prove possession of the key.  We could perhaps weasel our way 
> out by saying that the framework's requirement applies at the profile 
> granularity, and with symmetric PSK we can be fully independent, but 
> we still need to say something about this property and the interaction 
> with the framework's requirements.
> > >>
> > >> [JLS] I am missing where it is saying this.   Can you give a pointer?
> I don't believe that the POP of the RPK is required at the time that 
> the token is obtained.
> > >
> > > The problem is that AS must bind the Access Token to the RPK that 
> > > the
> Client has presented, and the Client must use the very same RPK to 
> establish the DTLS channel with RS. Otherwise, RS cannot be sure that 
> AS has issued the Token to the same entity that is currently communicating
with RS.
> > >
> > > [JLS]  What if I do the following sequence of events:
> > > 1.  The AS is configured with RPK1 for the client and the client 
> > > is
> configured with RPK2 for the AS.
> > > 2.  The client and the AS run some type of POP algorithm, not 
> > > currently
> specified, to configure RPK3 into the AS for a second RPK to work with 
> some set of audiences (AUD1).
> > > 3.  The client then uses RPK1 to authenticate to the AS and asks 
> > > for a
> new token for AUD1 and provides (explicitly or implicitly RPK3).  The 
> AS knows that it is tied to the client due to what happened in step 2.  
> The AS then creates a new token for AUD1 which contains RPK3 for the 
> client (and
> RPK4 for the RS) and returns it.
> > >
> > > The AS does a current POP for RPK1 when the token is being asked for.
> > > The AS did a POP for RPK3 when it was placed into the system.
> > > The AS has not done a POP for RPK4 - that was simply configured 
> > > without
> that step ever being done.  The ACE framework has no ability for the 
> AS to do the POP on RPK4 and ensure that it current.  The client would 
> do a POP when the TLS session is created but has to rely on the AS 
> that it is for the correct RS.
> > >
> > > Note that the client can never generate a brand new RPK9 and send 
> > > it to
> the AS in the token request because the AS will never have seen this 
> before and would need to run the POP algorithm of step 2 in order to 
> assure that it is bound to the correct client and not pulled out of 
> thin air.  RPK9 could not be used to authenticate the token request 
> because the AS has no idea what client it is tied to.
> > 
> > okay, I see you have a valid point here. I will try to come up with 
> > some text that says that the AS must ensure that (in your scenario)
> > RPK1 and
> > RPK3 are bound to the same entity.
> 
> Jim's proposal seems broadly reasonable (though I think in general 
> there needs to be some AS contributory nature in order to get proof of 
> current possession of RPK3 at the time of (2).  I think I would phrase 
> it as "in possession of the same entity" rather than "bound to the 
> same entity", though.
> 
> [JLS] If I was to write this out as a real protocol, it would end up 
> something along the lines of  Sign(RPK1, Sign(RPK3,  RPK1 || RPK3 || 
> AS Nonce || Client Nonce ))  so that we know that both keys are in the 
> possession of a single entity (or a cabal collaborating) and it is 
> current to the run of the POP protocol.

With a fixed protocol/context string to indicate the intent of what's being
signed, of course :)

I am too distracted to do a proper analysis right now but seem to recall
that usually an indication of "both parties/keys agree to <X>" involves
three signatures, so that each party certifies the signature of the other
over the operation (in addition to the operation itself).

[JLS] Yea I think you are right - I would need to go read CMC and make sure
that I got everything right as I spent about 2 years doing the analysis
there

-Ben

_______________________________________________
Ace mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ace

Reply via email to