[34] in GSSAPI Development

home help back first fref pref prev next nref lref last post

[Percy Tzelnic: Meeting notes: Athena/Kerberos - DEC/SPX; 4/17/91 ]

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Wed May 1 18:39:32 1991

Date: Wed, 1 May 91 18:39:23 -0400
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: gssapi-dev-mtg@menelaus.mit.edu
Reply-To: tytso@athena.mit.edu



------- Forwarded Message

Date: Wed, 1 May 91 12:05:20 PDT
From: Percy Tzelnic <tzelnic@pmaxpt.enet.dec.com>
To: jis@ATHENA.MIT.EDU, "jtkohl@athena.mit.edu"@Pa.dec.com,
        "jfc@athena.mit.edu"@Pa.dec.com, "tytso@athena.mit.edu"@Pa.dec.com,
        kahn@zendia.enet.dec.com, linn@zendia.enet.dec.com,
        wray@ultra.enet.dec.com, kannan@sejour.enet.dec.com,
        kaufman@kibitz.enet.dec.com, tzelnic@Pa.dec.com
Subject: Meeting notes: Athena/Kerberos - DEC/SPX;  4/17/91 

Cc: ultra::lipner, ultra::gasser, ultra::modeen, zendia::sanders,
	erlang::patel, tl::lauck, mailto::frampton, nac::kirby, erlang::wilde,
	nac::tardo, took::schimpf, smurf::ferson, lassie::lawler, smurf::hu,
	smurf::williams
 
 
I am pleased to distribute these notes, which mark our reaching an important
milestone in agreeing on a common API across multiple authentication 
mechanisms, in particular Kerberos and SPX. (This API is based on John Linn's 
GSSAPI, and on  John Wray's corresponding C-binding.)
 
My thanks to you all.
 
Percy 
 
-------
 
<Notes taken by Kannan Alagappan>
 
 
 
Participants: 	
-------------
 DEC - Kannan Alagappan, Charlie Kaufman, John Linn,
       Percy Tzelnic, John Wray
 MIT - John Carr, John Kohl, Jeff Schiller, Ted T'so
 
Meeting goals: 
--------------
 1. Reach agreement on GSSAPI naming issue
 
Agenda (proposed):
------------------
 1. Opening remarks (goals, agenda, etc.)
 2. Discuss two issues with naming (handouts provided at meeting)
	a)  Name representation
	b)  Importing application information
 3. Discussion; action items, closure of the GSSAPI topic
 4. Closure and summary
 
Brief summary:
--------------
 The three hour discussion on naming was very lively!  It helped
 all of us understand the issues better.  Thanks to a compromise
 solution proposed by Jeff Schiller, we managed to reach agreement
 on the naming issue, which would allow building of portable applications
 (such as telnet and rlogin).  The proposal is not in itself
 sufficient to support construction of a single GSSAPI implementation
 supporting both mechanisms, though hooks remain for future generalization
 towards this goal.
 
 The summary of the agreements:
 
 1) "import" would accept a null nametype and a string of the form
    "SERVICE:service@host-as-internet-name".  (Acceptance of null nametype
    is in addition to implementations' acceptance of any non-null nametypes
    they choose to register and support.)
 2) "display" would produce names of the form "KERBEROS:service.inst@realm" 
    in the case of Kerberos and "SPX:/C=US/.../CN=foo" for SPX.  (It was
    strongly argued at the meeting that identifiers of name types should be
    independent of mechanisms.)
 3) We will continue discussions of other possible nameforms at future 
    meetings.
 
Discussion:
-----------
 The discussion on name representation covered the following points:
 - It was observed that authentication names at some level (either as
   an input argument specified by a user or as a name on an ACL entry)
   need to be represented as printable strings.
 - Athena stated their strong preference for using printable string names
   across the API, emphasizing the simplicity and ease of implementation
   for their mechanism.  Cost and FTP availablility of X/Open standards was
   another Athena concern.
 - The current C-binding spec calls for names to be represented 
   only in the X/OPEN format, stressing that no canonical printable
   name representation exists and therefore the X/OPEN format makes
   sense - as an emerging standard.
 - An alternate proposal was submitted, for names to be represented as an
   opaque pointer and a tag, where the tag determines the structure
   pointed at.  Each mechanism could decide on which name types
   it was willing to support (if more than one.)  However, some
   participants found this solution unacceptable since it required
   an extra argument for every name.
 - Jeff Schiller proposed a compromise solution whereby names are
   represented as opaque structures without tagging.  The decision on
   how API-internal names are actually represented is left to each GSSAPI
   implementation.
 - As an implication of API-internal names' opacity, portable applications
   will be able to generate authenticable names only by invoking "import_name"
   and to examine them only by examining the output from "display_name."
   "compare_name" remains available as a means to compare API-internal names.
   No portable application will be able to depend on the structure of
   API-internal names.
 
 The discussion on importing application information covered a wide
 range of topics such as the need for a "name_glue" routine, the
 different types of names, and how authorization might work in the
 current spec.  Without summarizing the entire discussion, I would
 like to highlight the major points.
 - It was observed that Kerberos and SPX applications authenticate
   server principals with different granularity.  Therefore the
   initial conversation focused on how to represent this difference
   of authentication granularity at the interface.
 - The current C binding spec proposes a printable string and a name type
   OID, which determines the syntactic coding of the printable string, as
   input to the "import" function.
 - An alternate solution proposed that we hide the name type OID from
   application developers by explicitly passing the `generic' target
   information to a modified "import" function.  [Described in handout.]
 - Jeff Schiller proposed that the modified "import" function should
   actually be an additional alternative to "import_name", not a
   replacement for it.  Also, Jeff referred to it as a private, rather
   than a GSS routine.
 - It was observed that the authorization model in the current spec
   requires that each ACL entry be imported to an internal name format.
   Then, the internal name is compared with the name returned from an accept
   context call.  Jeff pointed out that two names which compare successfully
   may not be sufficient to authorize a user access to a service.  We agreed
   not to try to solve multiple trust paths issues at this time.
 - Jeff and Ted T'so stated that the name being passed into the "import"
   function should be a self-describing printable name in order for
   authorization to work.  Ted pointed out that the current C binding
   spec for "display_name" should be fixed to return an OID parameter
   to describe the type of the output name.  We discussed adding an input
   name_type OID parameter to "display_name", qualifying the translation
   from internal form, but no consensus was reached on this point.
 - Jeff expanded the discussion on self-describing printable names.  He
   observed that the GSSAPI should be able to import authentication names
   such as "SERVICE:service@host-as-internet-name" and "UID:uid".  Note that
   these names would be created by the application developer and they would
   not appear on ACLs.
 - Also, the GSSAPI should be able to import authentication names that
   appear on ACLs such as "KERBEROS:service.inst@realm" and
   "SPX:/C=US/.../CN=foo".  We should seek further agreements for
   self-descriptive printable forms (e.g., for X.500 names.)
 - Jeff Schiller proposed a compromise solution whereby the "import"
   function will accept a self-describing printable name and a NULL
   name type.  Specification of a NULL input_name_type to import_name will
   indicate that the input name's interpretation is not specified through
   the OID mechanism, thus it is a local matter based on interpretation of the
   input string.
 - In order to achieve SPX <-> Kerberos portability by working around the
   current mismatch between SPX node-granularity verifier credentials and
   conventional Kerberos service-granularity verifier credentials, we made
   an implementors' agreement that both implementations of import_name will
   be able to accept (along with a NULL input_name_type tag) the form:
   "SERVICE:service@host-as-internet-name."
   No restrictions on the output of display_name were defined.  Other API
   external name forms will be defined by mechanism designers, hopefully
   to converge in later agreements.
 
Action items:
-------------
    1. John Wray to issue a revised version of the spec.
 
    2. Develop a prototype of the GSSAPI and demonstrate application
       portability across Kerberos and SPX (Ted T'so and Kannan Alagappan.)
 
    3. Meet, after we have a working prototype, to discuss what we've
       learned from this work.

------- End Forwarded Message

home help back first fref pref prev next nref lref last post