<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc PUBLIC "-//IETF//DTD RFC 2629//EN" "rfc2629.dtd" [
	  <!ENTITY rfc1510 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1510.xml'>
	  <!ENTITY rfc2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
	  <!ENTITY rfc3961 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3961.xml'>
	  <!ENTITY rfc4120 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4120.xml'>
	  <!ENTITY rfc5226 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml'>
	  ]>
<rfc category="std"
     ipr="trust200902"
     docName="draft-ietf-kitten-kerberos-iana-registries-02"
     updates="rfc4120">

  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="no" ?>
  <?rfc compact="yes" ?>
  <?rfc symrefs="yes" ?>
  <?rfc sortrefs="yes"?>
  <?rfc iprnotified="no" ?>
  <?rfc strict="yes" ?>

  <front>
    <title abbrev="Kerberos IANA registries">
      Move Kerberos protocol parameter registries to IANA
    </title>

    <author fullname="Tom Yu" initials="T." surname="Yu">
      <organization>MIT Kerberos Consortium</organization>
      <address>
	<postal>
	  <street>77 Massachusetts Ave</street>
	  <city>Cambridge</city>
	  <region>Massachusetts</region>
	  <country>USA</country>
	</postal>
	<email>tlyu@mit.edu</email>
      </address>
    </author>

    <date month="July" year="2013"/>
    <abstract>
      <t>
	The Keberos 5 network authentication protocol has several
	numeric protocol parameters.  Most of these parameters are not
	currently under IANA maintenance.  This document requests that
	IANA take over the maintenance of the remainder of these
	Kerberos parameters.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Requirements Notation">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
	"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
	and "OPTIONAL" in this document are to be interpreted as
	described in <xref target="RFC2119"/>.</t>
    </section>

    <section title="Introduction">
      <t>
	The Keberos 5 network authentication protocol<xref
	  target="RFC4120"></xref><xref target="RFC1510"></xref>
	has several numeric protocol parameters.  This document
	requests that IANA take over the maintenance of the Kerberos
	protocol parameters that are not currently under IANA
	maintenance.  Several instances of number conflicts in
	Kerberos implementations could have been prevented by having
	IANA registries for those numbers.  This document updates
	<xref target="RFC4120"></xref>.
      </t>
    </section>

    <section title="General registry format">
      <t>
	Unless otherwise specified, each Kerberos protocol number
	registry will have the following fields: "number", "name",
	"reference", and "comments".
      </t>
      <t>
	The name must begin with a lowercase letter, and must consist
	of ASCII letters, digits, and hyphens.	Two or more hyphens
	must not appear directly adjacent to each other.  A hyphen
	must not appear at the end of a name.  It is preferred that
	words in a name be separated by hyphens, and that all of the
	letters be lowercase.
      </t>
      <t>
	(These rules are consistent with the lexical rules for an
	ASN.1 valuereference or identifier.  Where the constraints are
	stricter than the ASN.1 lexical rules, they make it easier to
	systematically transform the names for use in implementation
	languages.)
      </t>
      <t>
	Names for numeric parameter values have no inherent meaning in
	the Kerberos protocol, but they can guide choices for internal
	implementation symbol names and for user-visible non-numeric
	representations.  When written in English prose in
	specifications, or when used as symbolic constants in
	implementation languages (e.g., C preprocessor macros), it is
	common to transform the name into all uppercase letters, and
	possibly to replace hyphens with underscores.
      </t>
    </section>

    <section title="General registration procedure">
      <t>
	This document requests that the IESG establish a pool of
	Kerberos experts who will manage the Kerberos registries using
	these guidelines.  The IESG may wish to consider including the
	set of designated IANA experts for existing Kerberos IANA
	registries as candidates for this pool.
      </t>
      <t>
	IANA will select an expert from this pool for each
	registration request.  The expert will review the registration
	request and may approve the registration, decline the
	registration with comments, or recommend that the registration
	request should follow a specific alternative process.  The
	alternative processes that the expert may recommend are the
	IETF review process and the standards action process.
      </t>
      <t>
	Initially, the expert reviewers will use a permissive
	process, generally approving registrations that are
	architecturally consistent with Kerberos and the protocol
	parameter in question.	Over time, with input from the
	community, the experts may refine the requirements that
	registrations are expected to meet.  The experts will maintain
	a current version of these guidelines in a manner that is
	generally accessible to the entire community.  As the
	guidelines evolve, experts may consider the technical quality
	of specifications, security impacts of the registrations,
	architectural consistency, and interoperability impact.
	Experts may require a publicly available specification in
	order to make certain registrations.
      </t>
      <t>
	[ For the individual registries, include "Registrations in
	this registry are managed by the expert review process <xref
	target="RFC5226"></xref> or in exceptional cases by IESG
	approval. See section x for guidelines for the experts to be
	used with this registry." ]
      </t>
    </section>

    <section title="Integer assignments">
      <t>
	Names for integer assignments must be unique across all
	Kerberos integer parameter registries.	This is normally
	accomplished by including a name prefix that identifies the
	registry.
      </t>
      <t>
	Assignments for integers parameters will follow the general
	registration procedure outlined above, except as otherwise
	noted in the section that contains the description of the
	parameter.  Kerberos integer parameters take on signed 32-bit
	values (-2147483648 to 2147483647).  Negative values are for
	private or local use.
      </t>

      <section title="Address types">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Address types</t>
	    <t hangText="Assignment policy:">
	      General registration procedure
	    </t>
	    <t hangText="Valid values:">Signed 32-bit integers</t>
	  </list>
	</t>
	<t>
	  Address types historically align with numeric constants used
	  in the Berkeley sockets API.	Future address type
	  assignments should conform to this historical practice when
	  possible.  The name prefix for address types is "addrtype-".
	</t>
      </section>

      <section title="Authorization data types">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Authorization data types</t>
	    <t hangText="Assignment policy:">
	      General registration procedure
	    </t>
	    <t hangText="Valid values:">Signed 32-bit integers</t>
	  </list>
	</t>
	<t>
	  The name prefix for authorization data types is "ad-".
	</t>
      </section>

      <section title="Error codes">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Error codes</t>
	    <t hangText="Assignment policy:">
	      Standards action
	    </t>
	    <t hangText="Valid values:">Signed 32-bit integers</t>
	  </list>
	</t>
	<t>
	  Assignments for error codes require standards action due to
	  their scarcity: assigning error codes greater than 127 could
	  require significant changes to certain implementations. The
	  name prefixes for error codes are "kdc-err-", "krb-err-",
	  and "krb-ap-err-".
	</t>
      </section>

      <section title="Key usages">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Key usages</t>
	    <t hangText="Assignment policy:">
	      General registration procedure
	    </t>
	    <t hangText="Valid values:">Unsigned 32-bit integers</t>
	  </list>
	</t>
	<t>
	  Key usages are unsigned 32-bit integers (0 to
	  4294967295). Zero is reserved and may not be assigned.
	</t>
	<t>
	  The name prefix for key usages is "ku-".
	</t>
      </section>

      <section title="Name types">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Name types</t>
	    <t hangText="Assignment policy:">
	      General registration procedure
	    </t>
	    <t hangText="Valid values:">Signed 32-bit integers</t>
	  </list>
	</t>
	<t>
	  The name prefix for name types is "nt-".
	</t>
	<texttable>
	  <ttcol>number</ttcol>
	  <ttcol>name</ttcol>
	  <ttcol>reference</ttcol>
	  <ttcol>comment</ttcol>

	  <c>0</c>
	  <c>nt-unknown</c>
	  <c>RFC4120</c>
	  <c>Name type not known</c>

	  <c>1</c>
	  <c>nt-principal</c>
	  <c>RFC4120</c>
	  <c>Just the name of the principal as in DCE, or for
	    users</c>

	  <c>2</c>
	  <c>nt-srv-inst</c>
	  <c>RFC4120</c>
	  <c>Service and other unique instance (krbtgt)</c>

	  <c>3</c>
	  <c>nt-srv-hst</c>
	  <c>RFC4120</c>
	  <c>Service with host name as instance (telnet,
	    rcommands)</c>

	  <c>4</c>
	  <c>nt-srv-xhst</c>
	  <c>RFC4120</c>
	  <c>Service with host as remaining components</c>

	  <c>5</c>
	  <c>nt-uid</c>
	  <c>RFC4120</c>
	  <c>Unique ID</c>

	  <c>6</c>
	  <c>nt-x500-principal</c>
	  <c>RFC4120</c>
	  <c>Encoded X.509 Distinguished name [RFC2253]</c>

	  <c>7</c>
	  <c>nt-smtp-name</c>
	  <c>RFC4120</c>
	  <c>Name in form of SMTP email name (e.g.,
	    user@example.com)</c>

	  <c>10</c>
	  <c>nt-enterprise</c>
	  <c>RFC4120</c>
	  <c>Enterprise name - may be mapped to principal name</c>

	  <c>11</c>
	  <c>nt-wellknown</c>
	  <c>RFC6111</c>
	  <c>Well-known principal name</c>

	  <c>12</c>
	  <c>nt-srv-hst-domain</c>
	  <c>RFC5179</c>
	  <c>Domain-based names</c>
	</texttable>
      </section>

      <section title="Pre-authentication and typed data">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Pre-authentication and typed data</t>
	    <t hangText="Assignment policy:">
	      General registration procedure
	    </t>
	    <t hangText="Valid values:">Signed 32-bit integers</t>
	  </list>
	</t>
	<t>
	  This document requests that IANA modify the existing
	  Kerberos Pre-authentication and typed data registry to be
	  consistent with the procedures in this document.
	</t>
	<t>
	  The name prefix for pre-authentication type numbers is
	  "pa-". The name prefix for typed data numbers is "td-".
	  Pre-authentication and typed data numbers are in the same
	  registry, but a pre-authentication number may be also be
	  assigned to a related typed data number.
	</t>
      </section>

    </section>

    <section title="Named bit assignments">
      <t>
	Assignments for named bits require standards action, due to
	their scarcity: assigning bit numbers greater than 31 could
	require significant changes to implementations.	 Names for
	named bit assignments must be unique within a given named bit
	registry, and typically do not have name prefixes that
	identify which registry they belong to.
      </t>

      <section title="AP-REQ options">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">AP-REQ options</t>
	    <t hangText="Assignment policy:">
	      Standards action
	    </t>
	    <t hangText="Valid values:">ASN.1 bit numbers 0 through 31</t>
	  </list>
	</t>
      </section>

      <section title="KDC-REQ options">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">KDC-REQ options</t>
	    <t hangText="Assignment policy:">
	      Standards action
	    </t>
	    <t hangText="Valid values:">ASN.1 bit numbers 0 through 31</t>
	  </list>
	</t>
      </section>

      <section title="Ticket flags">
	<t>
	  <list style="hanging" hangIndent="20">
	    <t hangText="Registry name:">Ticket flags</t>
	    <t hangText="Assignment policy:">
	      Standards action
	    </t>
	    <t hangText="Valid values:">ASN.1 bit numbers 0 through 31</t>
	  </list>
	</t>
      </section>

    </section>

    <section title="Numbers that will not be registered">
      <t>
	ASN.1 application tag numbers (which are always equal to the
	"msg-type" field in Kerberos messages where they appear) will
	not be registered.  Any Kerberos protocol change that requires
	a new application tag number will be a sufficiently major
	change that the specification of the change MUST define a new
	ASN.1 module and MUST be Standards Track.
      </t>
      <t>
	Transited encoding values will not be registered.  There is
	only one transited encoding type for the Kerberos protocol.
	The interoperability concerns inherent to the cross-realm
	operation of Kerberos mean that specifications of new
	transited encoding types are very unlikely.  Any specification
	of new transited encoding types MUST be Standards Action.
      </t>
      <t>
	Protocol version number (pvno) values will not be registered.
	The location of the "pvno" value in Kerberos messages is not
	in a place that implementations can meaningfully use to
	distinguish among different variants of the Kerberos protocol.
      </t>
    </section>
    <section title="Contributors">
      <t>
	Sam Hartman proposed the text of the expert review guidelines.
	Love Hornquist Astrand wrote a previous document
	(draft-lha-krb-wg-some-numbers-to-iana-00) with the same goals
	as this document.
      </t>
    </section>

    <section title="Acknowledgments">
      <t>
	Thanks to Tom Petch for providing useful feedback on previous
	versions of this document.
      </t>
    </section>

    <section title="Security Considerations">
      <t>
	Assignments of new Keberos protocol parameter values can have
	security implications.	In cases where the assignment policy
	calls for expert review, the reviewer is responsible for
	evaluating whether adequate documentation exists concerning
	the security considerations for the requested assignment.  For
	assignments that require IETF review or standards action, the
	normal IETF processes ensure adequate treatment of security
	considerations.
      </t>
    </section>

    <section title="IANA Considerations">
      <t>
	This document requests that IANA create several registries for
	Kebreros protocol parameters:
	<list style="symbols">
	  <t>Address types</t>
	  <t>Authorization data types</t>
	  <t>Error codes</t>
	  <t>Key usages</t>
	  <t>Name types</t>
	  <t>AP-REQ options</t>
	  <t>KDC-REQ options</t>
	  <t>Ticket flags</t>
	</list>
      </t>
      <t>
	This document requests that IANA modify the existing
	"Pre-authentication data and typed data" registry to contain
	an additional reference to this document, and to transform
	existing names in that registry to the lowercase-and-hyphens
	style.
      </t>
    </section>

    <section title="Open issues">
      <t>
	Do we make a registry for application tag numbers (equal to
	message type numbers)?	We've said that we would replace the
	entire ASN.1 module in that case, but Nico's recent proposal
	doesn't do that, and if we want to accommodate that sort of
	proposal, it would probably be best to establish a registry.
	(It should require standards action for registrations.)
      </t>
      <t>
	Do transited encodings need a registry?	 They would probably
	require standards action, even if there were a registry.
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &rfc2119;
      &rfc3961;
      &rfc4120;
      &rfc5226;
    </references>
    <references title="Informative References">
      &rfc1510;
    </references>
  </back>
</rfc>
