<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc6113 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6113.xml">
<!ENTITY rfc4120 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4120.xml">
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc6711 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6711.xml">
<!ENTITY rfc7751 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7751.xml">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>

<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc autobreaks="yes"?>
<?rfc docmapping="yes"?>

<rfc category="std" docName="draft-ietf-kitten-krb-auth-indicator-05"
     ipr="trust200902" updates="7751">
  <front>
    <title abbrev="Authentication Indicator">Authentication Indicator in Kerberos Tickets</title>

    <author fullname="Anupam Jain" initials="A." surname="Jain">
      <organization>Georgia Tech</organization>

      <address>
        <postal>
          <street>225 North Ave NW</street>

          <city>Atlanta</city>

          <region>GA</region>

          <code>30332</code>

          <country>USA</country>
        </postal>

        <email>ajain323@gatech.edu</email>
      </address>
    </author>

    <author fullname="Nathan Kinder" initials="N." surname="Kinder">
      <organization>Red Hat, Inc.</organization>

      <address>
        <postal>
          <street>444 Castro St.</street>

          <street>Suite 500</street>

          <city>Mountain View</city>

          <region>CA</region>

          <code>94041</code>

          <country>USA</country>
        </postal>

        <email>nkinder@redhat.com</email>
      </address>
    </author>

    <author fullname="Nathaniel McCallum" initials="N." surname="McCallum">
      <organization>Red Hat, Inc.</organization>

      <address>
        <postal>
          <street>100 East Davie Street</street>

          <city>Raleigh</city>

          <region>NC</region>

          <code>27601</code>

          <country>USA</country>
        </postal>

        <email>npmccallum@redhat.com</email>
      </address>
    </author>

    <date month="January" year="2017" />

    <area>Security</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <abstract>
      <t>This document updates section "6. Assigned Numbers" of RFC 7751 in order to specify
      an extension in the Kerberos protocol. It defines a new authorization data type
      AD-AUTHENTICATION-INDICATOR. The purpose of introducing this data type is to include
      an indicator of the strength of a client's authentication in service tickets so that
      application services can use it as an input into policy decisions.</t>
    </abstract>
  </front>


  <middle>
    <section title="Introduction">
      <t><xref target="RFC4120">Kerberos</xref> allows secure interaction among users and
      services over a network. It supports a variety of authentication mechanisms using its
      <xref target="RFC6113">pre-authentication framework</xref>. The Kerberos authentication
      service has been architected to support password-based authentication as well as
      multi-factor authentication using one-time password devices, public-key cryptography and
      other pre-authentication schemes. Implementations that offer pre-authentication mechanisms
      supporting significantly different strengths of client authentication may choose to keep
      track of the strength of the authentication that was used, for use as an input into policy
      decisions.</t>

      <t>This document specifies a new authorization data type to convey authentication
      strength information to application services. Elements of this type appear within an
      <xref target="RFC7751">AD-CAMMAC</xref> container.</t>
    </section>

    <section title="Document Conventions">
      <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">
      RFC 2119</xref>.</t>
    </section>

    <section title="AD Type Specification">
      <t>The KDC MAY include authorization data of ad-type 97, wrapped in AD-CAMMAC, in initial
      credentials. The KDC MAY copy it from a ticket-granting ticket into service tickets.</t>

      <t>The corresponding ad-data field contains the DER encoding of the following ASN.1
      type:</t>

      <t>AD-AUTHENTICATION-INDICATOR ::= SEQUENCE OF UTF8String</t>

      <t>Each UTF8String value is a short string that indicates that a particular set of
      requirements was met during the initial authentication.  These strings are intended
      to be compared against known values. They are not intended to store structured data.
      Each string MUST be either:</t>

      <t>* A URI which references a <xref target="RFC6711">Level of Assurance Profile</xref></t>
      <t>* A site-defined string, which MUST NOT contain a colon, whose meaning is determined
      by the realm administrator.</t>

      <t>Authorization data elements of type AD-AUTHENTICATION-INDICATOR MUST be included in
      an AD-CAMMAC container so that their contents can be verified as originating from the
      KDC. Elements of type AD-AUTHENTICATION-INDICATOR MAY safely be ignored by applications
      and KDCs that do not implement this element.</t>
    </section>

    <section title="Security Considerations">
      <t>Elements of type AD-AUTHENTICATION-INDICATOR are wrapped in AD-CAMMAC
      containers. AD-CAMMAC supersedes AD-KDC-ISSUED, and allows both application services
      and the KDC to verify the authenticity of the contained authorization data.</t>

      <t>KDC implementations MUST use AD-CAMMAC verifiers as described in the the security
      considerations of <xref target="RFC7751">RFC 7751</xref> to ensure that
      AD-AUTHENTICATION-INDICATOR elements are not modified by an attacker.  Application
      servers MUST validate the AD-CAMMAC container before making authorization decisions
      based on AD-AUTHENTICATION-INDICATOR elements.  Application servers MUST NOT make
      authorization decisions based on AD-AUTHENTICATION-INDICATOR elements which appear
      outside of AD-CAMMAC containers.</t>

      <t>Using multiple strings in AD-AUTHENTICATION-INDICATOR may lead to ambiguity when a
      service tries to make a decision based on the AD-AUTHENTICATION-INDICATOR values.  This
      ambiguity can be avoided if indicator values are always used as a positive indication
      of certain requirements being met during the initial authentication. For example,
      if a "without-password" indicator is inserted whenever authentication occurs without
      a password, a service might assume this is an indication that a higher-strength
      client authentication occurred. However, this indicator might also be inserted
      when no authentication occurred at all (such as anonymous PKINIT).</t>

      <t>Service evaluation of site-defined indicators MUST consider the realm of original
      authentication in order to avoid cross-realm indicator collision. Failure to enforce
      this property can result in invalid authorization.</t>
    </section>

    <section title="IANA Considerations">
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>

  <back>
<?rfc rfcedstyle="no"?>
    <references title="Normative References">

      <!--Pre Authentication Framework-->

      &rfc6113;

      <!--Kerberos V5-->

      &rfc4120;

      <!--AD CAMMAC-->

      &rfc7751;

      <!--Key words for use in RFCs to Indicate Requirement Levels-->

      &rfc2119;

    </references>

    <references title="Informative References">

      <!--LOA Profiles-->

      &rfc6711;

    </references>

<?rfc rfcedstyle="yes"?>

    <section title="ASN.1 Module">
      <figure>
        <artwork><![CDATA[
KerberosV5AuthenticationIndicators {
        iso(1) identified-organization(3) dod(6) internet(1)
        security(5) kerberosV5(2) modules(4)
        authentication-indicators(9)
} DEFINITIONS EXPLICIT TAGS ::= BEGIN

AD-AUTHENTICATION-INDICATOR ::= SEQUENCE OF UTF8String

END
]]></artwork>
      </figure>
    </section>

    <section title="Acknowledgements">
      <figure>
        <artwork><![CDATA[
Dmitri Pal (Red Hat)
Simo Sorce (Red Hat)
Greg Hudson (MIT)
         ]]></artwork>
      </figure>

    </section>
  </back>
</rfc>
