Hi Sam,

thanks for summarizing the discussion. We need to think about these aspects you've mentioned, and will provide feedback during the next weeks.

Regarding the Kerberos-based approach, would it be possible to get a more detailed description? I think I have a good idea of how it works when it is the RP the one that generates the ST, but I'd like to know more about agent you mention, and how it would interact with the end user and the KDC to provide the former with a TGT.

Finally, as a preliminary thought, ERP keys already include the RP's realm during the derivation process. That means that they should provide something similar to a channel binding, don't they?

The ERP derivation process is as follows.

1. EMSK -> DSRK. Performed by end user and home AAA. It involves RP
   realm's name in the derivation process.
2. DSRK -> DS-rRK. Performed by end user and home AAA, and distributed
   to the AAA proxy.
3. DS-rRK -> rMSK. Performed by end user and AAA proxy, and distributed
   to the RP. It is used as the MSK.

Therefore the rMSK includes the RP's realm into its derivation process. If the end user or the home AAA server differ on their view, the keys will differ as well, and the communication will fail.

Regards,
Alejandro

El 12/11/14 a las 16:00, Sam Hartman escribió:
Alejandro and I have been discussing fast-reauthentication over the last
couple of days including a very useful lunch discussion today.
Here's my thoughts:

There are fairly easy approaches for fast reauthentication to a service
you've recently talked to.  The Moonshot code includes one such approach
as a non-standardized extension.


There are a number of common problems when you want to do fast
re-authentication between services.

The biggest is deciding what realm the service belongs in.  In general,
you cannot trust the service to help you with this.  Consider.  evil.com
and example.com are both in a federation.  Your identity will work with
either.
Which realm does foo.example.net belong to?  Evil.com would be delighted
if they could convince you that it belonged to their realm.  They'd also
be delighted if they could MITM your connection and tell you that it
belonged to evil.com and have you believe it.

Today, we go all the way back to the home server and use EAP channel
binding to resolve this.
It works, but involves a performance penalty.

There are policy-related concerns beyond that.
We've been talking about policy based on gss-acceptor-host-name as well
as  a currently-moonshot-specific concept called community.  Community
can be thought of as a sub-federation governing policy rules.
Currently we've been assuming the EAP server could apply policy like
this.  Are we comfortable delegating all that to the visited realm?

There are privacy concerns related to realm discovery.  Typically when I
try fast reauthentication with a service, I will expose my home realm.
Indicating that you have an identity in a particular realm is a
privacy-sensitive decision.  It's something users often consent to, but
it does have privacy implications.  It also triggers another privacy
disclosure.  Then, the infrastructure, possibly including the home EAP
server, learns that a given user chooses to access a given service.

In cases where the client knows the acceptor realm name, it might be
reasonable to assume that two services in the same acceptor realm are in
the same realm for  fast re-reauthentication.
In practice, though we find clients basically never know the realm
name.  (gss-acceptor-realm-name specified by the client proves less
useful than we anticipated when we wrote the spec in existing
deployments)


There are two solutions that have been discussed:

Alejandro's draft on using ERP.  Advantages:

* Most consistent with the existing model

* There's some documentation

* He's working on it.

Needed standardization:

* Extend RFC 7055 to support ERP.  He's doing that.

* Extend ERP to support EAP channel bindings.  This proves kind of
   tricky because it's not clear that you'd trust the visited domain to
   actually validate channel bindings.  If you force ERP back to the home
   domain, you remove much of the value.

* Add ERP RADIUS support.  So far only defined for diameter

Disadvantages:

* RADIUS servers aren't going to support ERP today

* Requires RADIUS to maintain key state on all active authentication
   sessions

* Requires good EMSK key handling.

* Not clear how to handle server authentication.  Need to understand how
   the key hierarchy really works to evaluate this.  Need to consider how
   this interacts with channel binding.

Kerberos Approach

Advantages:

* An RFC 7055 implementation is likely to have an RFC 4121
   implementation around.

* We already have proof-of-concept code for the single server case

* Kerberos lets the client maintain state; RADIUS would not need to
   maintain per-session state.

* If you solve the realm discovery problem, Kerberos naming is close
enough to ABFAb naming that you can avoid channel bindings and solve
server authentication.

What needs doing:

* Specify the protocol

* Define some sort of agent that gets the initial server its key and the
   user a TGT.    My preferred embodyment of this is EAP
   preauthentication, but doing that is probably too complex for
   available energy

* Implement the agent and expand the existing code

Disadvantages:

* An extra round trip over ERP.  It will be a round trip entirely within
   the visited domain.

* The agent to get the TGT is kind of tricky and might need to involve
   changes or software running on the KDC.

* No one is working on this.

I'd like to see if we can make some progress on the hard problems of
realm discovery and policy that all solutions to this problem will have
in common.

--Sam

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

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

Reply via email to