home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / 93mar / aac-minutes-93mar.txt < prev    next >
Text File  |  1993-05-12  |  15KB  |  343 lines

  1.  
  2. CURRENT_MEETING_REPORT_
  3.  
  4.  
  5. Reported by Clifford Neuman/Information Sciences Institute
  6.  
  7. Minutes of the Authorization and Access Control BOF (AAC)
  8.  
  9. The third meeting of the Authorization and Access Control BOF was held
  10. at the March IETF. This should be the last BOF meeting as the Charter
  11. has already been submitted to the IESG and is currently under review.
  12.  
  13. Agenda
  14.  
  15.  
  16.    o Review the AAC Charter as submitted to the IESG for review.
  17.  
  18.    o Identify common characteristics of evolving distributed
  19.      authorization mechanisms and begin discussion on how best to
  20.      encourage interoperability across mechanisms.
  21.  
  22.    o Review the authorization API from the last meeting, in light of the
  23.      DCE and Sesame documents made available by Piers McMahon, and
  24.      consider characteristics as identified in the preceding item.
  25.  
  26.    o Assign work items to generate an access control API Internet-Draft
  27.      and assign other items to be accomplished before the Amsterdam
  28.      IETF.
  29.  
  30.  
  31. The draft Charter, past Minutes, mailing list discussions, and other
  32. documents mentioned in these Minutes are available by anonymous FTP from
  33. prospero.isi.edu in the directory /pub/aac.
  34.  
  35. Review of Charter
  36.  
  37. The Working Group Charter, discussed at the previous meeting, was
  38. submitted to the IESG for approval.  Based on several comments from IESG
  39. members, the Charter was revised to make the relationship with other
  40. working groups clearer.  A new version was provided to the IESG and
  41. distributed to the AAC mailing list.  Everyone at the meeting seemed
  42. comfortable with the revised Charter and no additional changes were
  43. suggested.  The Charter is once again in the hands of the IESG, which
  44. seems reluctant to form new groups without understanding the ``big
  45. picture'' of how all the groups in an area fit together.  Steve Crocker,
  46. the Security Area Director, will provide the IESG with such a statement.
  47.  
  48. Evolving Distributed Authorization Mechanisms
  49.  
  50. The goals of distributed authorization mechanisms include avoiding the
  51. need to duplicate common information about principals' access rights on
  52. each end-system and facilitating ease of management, often by enabling
  53.  
  54.                                    1
  55.  
  56.  
  57.  
  58.  
  59.  
  60. centralized maintenance of access control and revocation information.
  61. Evolving mechanisms for distributed authorization was discussed,
  62. including DCE, ECMA/Sesame, and restricted proxies (Kerberos V5).  In
  63. each of these mechanisms, a certificate grants privileges to a
  64. principal, either by explicitly enumerating privileges, or by
  65. restricting privileges.  Positive privileges are represented in the
  66. latter case as the set of rights available to the issuer of the
  67. certificate which are not explicitly restricted.
  68.  
  69. Clifford Neuman argued that the restricted forms of credentials are more
  70. general since they allow the addition of restrictions during delegation,
  71. and also because the rights of the issuer of a certificate naturally
  72. limit what can be granted, rather than requiring a separately maintained
  73. list of which principals are authorized to grant particular privileges.
  74. Piers McMahon and John Linn suggested that the term restriction is a
  75. confusing term for permission.  It also wasn't clear to them how one
  76. could compose privileges from different sources.  Cliff responded that
  77. the permissions are granted by certificates which provide all rights
  78. possessed by the signer and that the restrictions apply to what is
  79. granted by a particular certificate, limiting the permissions.  By
  80. providing multiple certificates one gets a sum of products; i.e., the
  81. sum of the remaining rights from each of the restricted certificates.
  82. There was some skepticism about this role of restrictions in the
  83. representation of what appear to be positive rights; the issue will be
  84. revisited later.
  85.  
  86. It would improve interoperability across mechanisms if there were a
  87. common set of restrictions or privileges.  This would make it easier to
  88. translate from one mechanism to another (i.e., the translation would be
  89. syntactic, rather than semantic).  Clifford Neuman will compile a list
  90. of restrictions sufficient to represent privileges supported by DCE,
  91. Sesame, restricted proxies, and any other mechanisms brought to the
  92. Group's attention.  He will also accept input from application
  93. developers on the restrictions and privileges they require.  Submissions
  94. can be in either form, restrictions or permissions.  They will be
  95. represented at least initially as restrictions in the compiled list to
  96. asses the benefits of such a representation.
  97.  
  98. Example permissions/restrictions:
  99.  
  100.  
  101. DCE:      A way of specifying global userID and groups the user is in.
  102. DCE:      ``Optional'' restrictions.
  103. NAS:      A way of restricting the subnets to which a user may connect.
  104. Sesame:   A way to represent each of its privilege attributes.
  105. Others:   Roles.
  106.  
  107.  
  108. Authorization API (and more)
  109.  
  110.                                    2
  111.  
  112.  
  113.  
  114.  
  115.  
  116. The Working Group began refining the strawman ACL API presented at the
  117. Washington D.C. IETF. There is more than just an API involved.  In
  118. particular, it will be necessary to define the authorization information
  119. that can be stored.  The API will be designed to allow easy integration
  120. with distributed authorization methods, including support for the
  121. specification of restrictions on ACL entries.  Ted Ts'o suggested that
  122. since the API is not restricted to what people normally think of as
  123. ACLs, that it should be called an Authorization API, rather than an ACL
  124. API. This change in terminology was adopted.
  125.  
  126. The Group started to define the input and output arguments to the API.
  127. To set the stage for this discussion, Piers McMahon and Clifford Neuman
  128. described the anticipated flow of control for the end-server.  When a
  129. request is received, calls are made to the GSSAPI or other
  130. authentication routines.  The output of the GSSAPI is a Security Context
  131. which contains information about the client.  This might then be passed
  132. into additional function to verify authorization credentials.  The
  133. distributed authorization mechanisms might instead be handled as part of
  134. the GSSAPI itself.
  135.  
  136. The output of the combined GSSAPI and distributed authorization
  137. functions will be a Security Context which is fed into the authorization
  138. API. For simplicity at this point in the discussion, the authorization
  139. API will return a yes/no answer indicating whether a particular
  140. operation is allowed.  We need to define what needs to be part of the
  141. Security Context, an input to the authorization API. It might then be
  142. possible to extend the GSSAPI Security Context definition so that it can
  143. be used directly.  The diagram below shows the flow of control.
  144.  
  145.  
  146.                        This is the Security Context to be defined
  147.                              /
  148. -----+  +---------+  +-------X---------+ +-------> yes/no+restrictions
  149.      |  |         |  |                 | |
  150.      V  |         V  |                 V |
  151.     GSSAPI        Dist            Authorization
  152.               Authorization            API
  153. +----possibly combined----+
  154.  
  155.  
  156.  
  157. The authorization API will provide mechanisms to query a local
  158. authorization database to check authorization.
  159.  
  160.  
  161.      answer = check_authorization(sc, target, operation)
  162.  
  163.  
  164. SC is the Security Context, containing information about the identity of
  165. the client and about authorization credentials that have been received
  166. (and possibly verified).  Piers McMahon agreed to work on defining the
  167. form of the Security Context for our present needs, trying to define it
  168. in such a way that it will later be able to accommodate information from
  169.  
  170.                                    3
  171.  
  172.  
  173.  
  174.  
  175.  
  176. additional distributed authorization mechanisms.  Defining the Security
  177. Context will require interaction with those defining other parts of the
  178. API, and should include consultation with John Linn and the CAT Working
  179. Group to make sure that it is consistent with, and perhaps ultimately
  180. included in, the GSSAPI.
  181.  
  182. TARGET specifies the target of the attempted access.  If the
  183. authorization database were represented as a set of access control
  184. lists, the target would identify which list is to be consulted.  TARGET
  185. should have a two part name, one part identifying an application or set
  186. of applications that share the same set of objects, and the name of the
  187. individual object.  This is useful when the authorization database is
  188. maintained on a system wide basis (for example by an ACL manager) rather
  189. than by individual applications.  For now we will define TARGET to be
  190. two strings, an identifier for an application and an application
  191. specific object name.  This can be represented as a single string using
  192. a ``:''  as a separator (this means :  can not appear in the identifier
  193. of the application).
  194.  
  195. OPERATION identifies the operation to be performed on the target.  The
  196. definition of this field will correspond to the rights field in the ACLs
  197. in the authorization database.  The Group decided that this field would
  198. be an extensible bit vector of application specific rights, together
  199. with a tag identifying the application (the tag for the operation bit
  200. vector should be compared with the tag for the bit vector in the ACL to
  201. make sure the bits are interpreted correctly).
  202.  
  203. At this point it was felt that the Group needed to specify the form of
  204. the authorization database.  The access control list method was
  205. proposed, with rights specified as described in the preceding paragraph,
  206. but with the ACL entry extended so entries would include an optional
  207. list of restrictions that further specify the conditions under which the
  208. operation would be allowed.  Among these restrictions might be time of
  209. day restrictions, as well as application specific restrictions such as a
  210. netmask of network access servers, or perhaps a restriction for a
  211. mailing list server that allowed modification of a mailing list, but
  212. only to add or delete oneself.  These restrictions would exist in the
  213. same space as those defined for distributed authorization mechanisms.
  214. In fact, it should be possible to apply the restrictions returned from
  215. an authorization database directly to distributed authorization
  216. credentials issued by security servers (authorization servers, privilege
  217. attribute servers, etc).
  218.  
  219. If restrictions are supported, the value returned by check_authorization
  220. would no longer be yes/no, but instead a list of restrictions.  An
  221. answer of ``no'' would be represented by the restriction ``not
  222. authorized''.  An answer of ``yes'' would be represented as an empty
  223. list of restrictions.  A conditional yes would be represented by the
  224. list of conditions/restrictions.  Some restrictions, such as time of
  225. day, could be checked directly by the authorization API, while others
  226. would be returned by the API as unresolved.  These unresolved
  227. restrictions might be application specific, and they would be handled by
  228. a function wrapped around the API, avoiding the need for the
  229. authorization API to understand the needs of all potential applications.
  230.  
  231.                                    4
  232.  
  233.  
  234.  
  235.  
  236.  
  237. For example, consider the pseudo code to check authorization to use a
  238. network access server:
  239.  
  240.    check_nas_acl(sc, aclid) {
  241.       resp = check_authorization(sc, "nas:network", 0x1);
  242.       for restrict in resp {
  243.           case: net_mask;
  244.                 ...
  245.                 break;
  246.           case: toll_lines_only;
  247.                 ...
  248.                 break;
  249.           case: spare_capacity_only;
  250.                 ...
  251.                 break;
  252.           default:
  253.                 reject;
  254.       }
  255.       accept;
  256.    }
  257.  
  258. Technically, the principal identifier in an entry can be thought of as a
  259. restriction on who may use it, but we'll leave it as a separate field
  260. since that is what most people expect in an ACL entry.  Multiple
  261. principal identifiers will be supported for each ACL entry, allowing the
  262. specification of compound principals.  Principal identifiers will be
  263. typed.  We considered using the GSSAPI representation for the principal.
  264. John Linn pointed out that the opaque nature of GSSAPI names makes them
  265. difficult to store in a persistent and shared access control list.
  266. Naming issues have been a stumbling block in other groups, and wanting
  267. to avoid that issue for now, we decided that we will support typed
  268. names.  When the GSSAPI naming issues are resolved it might be one of
  269. the types.  For now, the type would indicate the namespace (which at the
  270. present time is closely tied to the authentication method) from which
  271. the name is drawn.
  272.  
  273. The definition of the get_acl call as an alternate interface to the
  274. authorization API was deferred until the authorization database itself
  275. is better defined.
  276.  
  277. Work Items
  278.  
  279.  
  280. Clifford Neuman            Compile a list of restrictions or privilege
  281.                            attributes addressing the needs of DCE,
  282.                            Sesame, restricted proxies, and various
  283.                            applications.
  284.                            Contact Russ Hobby for input on other
  285.                            application requirements.
  286. Piers McMahon              Define the information that needs to be part
  287.                            of the Security Context.
  288.  
  289.                                    5
  290.  
  291.  
  292.  
  293.  
  294.  
  295. Piers/Clifford             Work to further refine the form of the
  296.                            authorization database.
  297. Allan Rubens/John Vollbrecht Provide a description of the authorization
  298.                            needs for the network access server.
  299. Sam Sjogren                Provide the same for FTP.
  300.  
  301.  
  302. Thanks to Richard Graveman for his notes which were helpful in the
  303. preparation of these Minutes.
  304.  
  305. Attendees
  306.  
  307. Jim Barnes               barnes@xylogics.com
  308. John Campbell            jrcamp@nosc.mil
  309. Stephen Crocker          crocker@tis.com
  310. Dale Dougherty           dale@ora.com
  311. Jonathan Fellows         jonf@gdstech.grumman.com
  312. Antonio Fernandez        afa@thumper.bellcore.com
  313. Barbara Fraser           byf@cert.org
  314. James Galvin             galvin@tis.com
  315. Jisoo Geiter             geiter@mitre.org
  316. Richard Graveman         rfg@ctt.bellcore.com
  317. Richard Harris           rharris@atc.boeing.com
  318. Laurent Joncheray        lpj@merit.edu
  319. David Katinsky           dmk@pilot.njin.net
  320. John Linn                linn@gza.com
  321. Steven Lunt              lunt@bellcore.com
  322. Cynthia Martin           martin@spica.disa.mil
  323. P.V. McMahon             p.v.mcmahon@rea0803.wins.icl.co.uk
  324. Clifford Neuman          bcn@isi.edu
  325. Radia Perlman            perlman@dsmail.enet.dec.com
  326. Christopher Provenzano   proven@csi.compuserve.com
  327. Robert Raisch            raisch@ora.com
  328. April Richstein          amr@tycho.ncsc.mil
  329. Allan Rubens             acr@merit.edu
  330. Paul Sangster            sangster@reston.ans.net
  331. Wolfgang Schneider       schneider@gmd.de
  332. Sam Sjogren              sjogren@tgv.com
  333. Stuart Stubblebine       stubblebine@isi.edu
  334. Louisa Thomson           louisa@whitney.hac.com
  335. Klaus Truoel             truoel@gmd.de
  336. Theodore Ts'o            tytso@mit.edu
  337. John Vollbrecht          jrv@merit.edu
  338. James Weatherford        weatherf@nosc.mil
  339.  
  340.  
  341.  
  342.                                    6
  343.