negoex
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Project Moonshot |
Confirmed
|
Wishlist
|
Sam Hartman |
Bug Description
Currently we have the mechanism-side information to provide for NegoEX.
We're the first standardized mechanism for which negoex will be used; it is basically not used for krb5.
Discussions with Microsoft about how to address issued raised against the negoex spec suggested that there may be some protocol restrications about how it is used when standardized by the IETF. Examples include:
* Key derivation possibly/probably using gss_pseudo_random to produce the integrity key required by negoex
* derivation of the guid from the oid in some algorithmic manner.
Obviously mechanism glue layers would need to have ways to bypass these for people implementing existing proprietary mechanisms.
However, we may not be able to get that to fly in a standard.
We should either stub out making our negoex accessible or have confidence that the IETF is happy with how we do things prior to the service pilot.
Nico and others rasied concerns about some issues in negoex
* key derivation for the RFC 3961 key used for integrity
(* use of guids
A proposal has been on the table for fixing these at least for standards track mechanisms
* Specify key derivations in terms of a call to gss_pseudo_random
* derive guids from the OID
Clearly mechglues would need to be able to bypass that for existing proprietary mechanisms.
However, we're the first standardized mechanism that is going to use negoex. So we need to figure out what the IETf will allow us to standardze.
We need to either stub out our negoex or convince ourselves it is OK prior to service pilot.
Note that we could also just convince ourselves we have a transition strategy to supporting our old stuff and whatever the IETF comes up with.
Changed in moonshot: | |
assignee: | nobody → Sam Hartman (hartmans) |
Changed in moonshot: | |
importance: | Undecided → Low |
Changed in moonshot: | |
importance: | Low → Wishlist |
One note is that our current NegoEx implementation uses the presence of a mechanism's gss_query_ mechanism_ info() to determine whether it supports NegoEx or not. If we infer the GUID and the key derivation function, then we either need to:
* advertise all mechanisms via NegoEx (with some hard-coded exceptions for SPNEGO, Kerberos, NTLM)
* use a mechanism attribute to determine which are to be advertised
* something else