RE: [TLS] the use cases for GSS-based TLS and the plea for integrating
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [TLS] the use cases for GSS-based TLS and the plea for integrating
Larry Zhu wrote on 7/25/07 12:48 -0700:
For use cases, please review my slides and the meeting minutes for the
TLS working group. I would like to recap the main points below:
I will look at them.
Methodology wise the way to deal with complexity is to build abstraction
layers. GSS-API is ideal for encapsulating the described complexity.
Abstraction layers can decrease complexity, increase complexity, cause "data
hiding" (good), and "data losing" (bad). How abstraction layers are hooked
together matters a great deal. There's an abstraction layer between
applications and TLS. There's an abstraction layer between applications and
SASL/GSSAPI. But what you're proposing shoves GSSAPI behind the TLS
abstraction, creating a clear case of "data losing" in the abstraction model.
That would require punching holes through the TLS abstraction layer so the
application can control both GSSAPI and any back channels GSSAPI uses to talk
to user authentication repositories or trusted third parties.
We strongly believe there is a confusing message in IETF. Our security
AD made a presentation in the TLS working group yesterday and the
message is that we want everyone to use TLS for everything.
A bit of a confused message is inevitable in a rough consensus organization.
We're participating as individuals and have different perspectives and
positions as individuals. The work to form a rough consensus can be messy.
But I hear your complaint and will talk to Tim to see if the two of us can
agree on a more unified message.
For starters, I would agree that when a security services layer is needed in an
application protocol stack that TLS is likely the right mechanism to provide
that layer. I'm not convinced the "SL" portion of "SASL" has any value in
practice.
No one wants to design their protocols
once with Kerberos and once with TLS, no one want to review their
protocols twice. Experience has clearly shown that requiring two set of
mechanisms (one for Kerb and one for TLS) adds a lot of unnecessary
complexity to what is already too complex.
I'd agree that implementers only want to integrate one security services layer.
But some implementers want their security services layer and identity stack to
be as cleanly separated as possible so a tight binding between the two is not
desirable. TLS only provides certificate-based identity today, a mechanism
that is very different from other user identity services because it does not
require the TLS stack to perform a user identity network lookup in the middle
of the TLS handshake. Doing that means the TLS stack suddenly has to
communicate problems talking to the identity lookup service through the TLS
stack and back to the application.
Not to mention the burden to
test two sets of mechanisms. We the IETF really should build a better
building block for future IETF standard protocols and deliver a coherent
strategy/solution.
It's more important to build a strategy/solution that can be deployed and
sustained in the real world with multiple independent interoperable
implementations.
Non-IETF protocols that do not have a SASL variant do not even have a
choice, we have to integrate Kerberos into the TLS stack to get Kerberos
to work, not to mention the practical reasons due to firewalls and NAT
traversal.
An application protocol that needs user-level authentication and fails to
include an authentication framing mechanism in the protocol is designed
incorrectly, and the fact some non-IETF protocols have that problem is not a
reason to add complexity to IETF protocols. HTTP has such a framing mechanism,
SSH has one, also SASL, GSSAPI and EAP include protocol abstractions that could
be used to provide such a mechanism in any other application protocol.
If you try to solve the general application-layer user authentication problem
in the TLS stack, that adds a bunch of requirements to TLS that it probably
shouldn't have if there's a desire to keep the stack simple. An example would
be error messages suitable for end-user consumption and the language
negotiation necessary for such messages (SSH does this, for example).
- Chris
_______________________________________________
TLS mailing list
TLS at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.