Sam Hartman wrote: > > * During the course of implementing GSSAPI and GSSAPI mechanisms, > significant problems in the clarity of the base specification and C > bindings have been found. KITTEN will identify these problems and > will propose changes to the specifications to address issues of > clarity.
Strange--I'm not aware of any such problems; and I'm sure I would know if there were any real problem with it. I remember that coming up with a different language binding requires discussion (the JAVA guys realized that), however the C-Bindings itself is sufficiently clear. Could you elaborate on this? > > * The handling of channel bindings in the base specification and C > bindings has proven problematic. The structure of channel bindings > is defined more in the C bindings than in the base specification. > This has forced mechanism specifications and protocol documents to > refer to the C bindings specification. In addition, there is a > desire in several areas of the IETF for more complex channel bindings > than IP addresses and more thought to be put into how channel > bindings work. KITTEN will clarify specification of channel bindings > to meet current needs of the IETF. Channel bindings are actually non-portable anyway, many gss-api mechanisms don't implement them (even Microsoft's Kerberos doesn't) and portable applications don't use them anyway. Routing&multihoming issues, NATs and all that interfere in all sorts of ways. So far I've primarily seen clear breaches of the abstraction when IPv4 channel bindings where used with Kerberos and the Kerberos gssapi mechanism did not only verify the channel bindings at both ends with the application provided values, but also peeked inside the channel bindings and matched them up against credentials. > > * Experience with GSSAPI naming has caused implementers and > application authors to wish to look at ways of improving naming. > KITTEN will examine proposals in this area. You got it backwards. Experience with GSSAPI naming has shown that implementors of gssapi mechanisms (aka Kerberos) invented name-games in a fashion that is incompatible with GSS-API and completely breaks name-based authentication, the architectural foundation of GSS-API. > > * Experience is the Kerberos working group has caused individuals in > the Kerberos community to question the assumption behind > gss_export_name--that names can reasonably have a single canonical > form fixed for some period of time. KITTEN will consider this issue > and the general issue of GSSAPI authorization and how it relates to > naming. It is not gss_export_name() which is a problem. That is absolutely required to implement ACLs for the name-based authentication of GSS-API which can be efficiently checked/matched. The real problem is with certain extensions of the gssapi mechanisms that are incomplete (e.g. name canonicalization). The GSS-API spec describes in very details and with an ASCII arts diagram how gss_canonicalize_name() must be implemented. So in order for a Kerberos 5 gssapi mechanism to offer name canonicalization at the KDC, it must implement a name canonicalization functionality independent of a security context establishment which needs to be done everytime when gss_canonicalize_name() is used. gss_export_name() is close to zero work after that. > > [Martin, yes I know you would object very strongly to dropping > gss_export_name. I'm fairly sure there are enough of us who want to > revisit the issue that it is important to include in the charter. I > fully realize that we do not yet have any consensus for any specific > change.] Fortunately you cannot change GSS-API v2, and I will do all that I can to prevent a spec from entering the standards track that calls itself a revision of GSS-API v2 does not have gss_canonicalize_name() and gss_export_name() fully backwards compatible with current GSS-API v2. > > * The Global Grid Forum has advanced several proposals for extensions > to GSSAPI. KITTEN will consider these proposals and see if there > are mechanisms acceptable to the IETF for accomplishing the same > goals as these proposals. Haven't looked at those lately. When I looked at it a few years ago they looked like dirty hacks due to insufficient abstraction. But once you start shipping there's a strong reluctance to change. A few years ago the IESG was quite explicit that the IETF is not a rubber-stamping authority. If you want something standardized you must be prepared for changes to the (initial) proposal. I hope the IESG still lives up to its standards. > > * Mechanism implementers have complained that GSSAPI is too > complicated and thus they prefer to write SASL mechanisms rather than > GSSAPI mechanisms. KITTEN will produce a document describing how to > write a GSSAPI mechanism specification. Well, there is a SASL-scheme to use GSS-API mechanisms for performing the actual work. I don't see a problem. Most of those that say GSS-API is too complicated are all interested in a quick hack rather than a robust and scalable solution for a real-world sized Single Sign-On infrastructure. So far, GSS-API is an extremely useful abstraction. And if you're really serious about implementing a GSS-API mechanism, then reading and understanding the specs and implementing it correctly really isn't that much work. It is certainly magnitudes easier than reading, understanding and implementing Kerberos5. I'm not counting the SPNEGO spec here that some people think of as GSS-API. It's polluted with ASN.1 and even *I* would have a really hard time to implement it. But normally you don't need SPNEGO. We don't need it, none of our >20 gssapi providers has it or needs it, none of our customer needs it. The gsskrb5.dll wrapper code that I wrote and which my company provides as OpenSource should be one possible example on how to do it. Initially I wanted to implement a really *generic* gssapi mechanism in order to verify the consistency of the gssapi spec. Lacking time, I only implemented those features that our application actually used (and this does not include channel_bindings btw.), and when Microsoft started shipping SSPI with the NTLM SSP I re-used that code to build the gssntlm.dll wrapper, and later on I re-used the code once again to provide gsskrb5.dll wrapper. Internally the code is layered, and both wrappers do not only build from the same source, but also link most of the same objects. You can even build it as a multi-mechanism (I just never really tested that part). The code includes hooks to print all parameters of all gssapi calls on call entry and on call exit. It works, but so far it's a compile time feature, still lacking dynamic runtime configurability. We also provide gsstest, an extensive automated gssapi mechanism validation tool for free. So there is really not much one needs to do to create and ship a gssapi mechanism. -Martin -++**==--++**==--++**==--++**==--++**==--++**==--++**== This message was posted through the Stanford campus mailing list server. If you wish to unsubscribe from this mailing list, send the message body of "unsubscribe ietf-cat-wg" to [EMAIL PROTECTED]