<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="exp" docName="draft-zhang-karp-rapd-00" ipr="trust200902">
  <front>
    <title abbrev="RAPD">Routing Authentication Policy Database</title>

    <author fullname="Dacheng Zhang" initials="D." surname="Zhang">
      <organization>Huawei</organization>

      <address>
        <email>zhangdacheng@huawei.com</email>
      </address>
    </author>

    <author fullname="Sam Hartman" initials="S." surname="Hartman">
      <organization>Painless Security</organization>

      <address>
        <email>hartmans@painless-security.com</email>
      </address>
    </author>

    <author fullname="William Atwood" initials="W." surname="Atwood">
      <organization>Concordia University/CSE</organization>

      <address>
        <postal>
          <street>1455 de Maisonneuve Blvd, West</street>

          <city>Montreal</city>

          <region>QC</region>

          <code>H3G 1M8</code>

          <country>Canada</country>
        </postal>

        <phone>+1(514)848-2424 ext3046</phone>

        <email>william.atwood@concordia.ca</email>

        <uri>http://users.encs.concordia.ca/~bill</uri>
      </address>
    </author>

    <date day="21" month="October" year="2013"/>

    <abstract>
      <t>This document proposes a conceptual database, the Routing
      Authentication Policy Database (RAPD), which cooperates with the key
      table to provide the configuration information for the automated key
      management protocols in generating key materials for routing protocols.
      Additionally, the RAPD also provides authorization policies so as to
      guarantee that the keying material for securing routing protocol
      exchanges is distributed only to the appropriate peers.</t>
    </abstract>

    <note title="Requirements Language">
      <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>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>This specification introduces a conceptual database, the Routing
      Authentication Policy Database (RAPD). The RAPD compliments the key
      table <xref target="I-D.ietf-karp-crypto-key-table"/>, which provides
      manually configured keys, while the RAPD provides policies for automated
      key management.</t>

      <t>According to the key table, in order to request a key to send a
      message, a routing protocol implementation needs to specify the
      information of "peer" and "protocol". The peer is either the identity of
      a unicast peer or of a group. The form of the peer identifier is
      specified by the specific routing protocol in question. The peer and
      protocol values are sufficient to find an existing key. If no proper key
      exists, the RAPD will be consulted. In this case, the peer and protocol
      values are also used to locate the appropriate automated key management
      policies from the RAPD.</t>

      <t>During the authentication and key distribution with a remote peer,
      the RAPD is also used by the key management application to obtain the
      authentication and authorization information necessary for the key
      management. In this case, the key management application needs to
      provide the RAPD with the IKE identity of the peer.</t>

      <t>The critical functions embodied by the RAPD are listed as
      follows:<list style="symbols">
          <t>Identifying the peers or groups of peers that are authorized for
          a particular routing protocol</t>

          <t>Judging whether automated key management is expected for a
          particular routing protocol peer or group</t>

          <t>Specifying the key management protocols that this router needs to
          participate in and on what interfaces</t>

          <t>Provisioning the identities and credentials used to authenticate
          to a remote key-management peer</t>

          <t>Constraining the acceptable identities and credentials when a
          remote key-management peer authenticates to the local system</t>

          <t>Specifying the parameters and transforms used for a particular
          security association</t>
        </list></t>

      <t>The services that the RAPD provides are analogus to the services that
      the Security Policy Database (SPD) and the Peer Authorization Database
      (PAD) provide to IKEv2 <xref target="RFC4301"/>.</t>

      <t>This document requires the support of the IKEv2 extension specified
      in <xref target="I-D.mahesh-karp-rkmp"/>. To benefit the discussion, in
      this document, the IKEv2 extension is used as an example to describe how
      the RAPD can be applied in securing unicast routing protocol
      packets.</t>
    </section>

    <section title="Contents of an RAPD Entry">
      <t>The RAPD contains an entry for each peer or group of peers to which
      automated key management mechanisms will be applied by the local system
      in securing the routing protocol exchanges.</t>

      <t>An RAPD entry also includes the information identifying the expected
      automated key management protocol and provides associated information
      used for authentication by the automated key management protocol.</t>

      <t>For instance, in order to establish an IKE SA, the following
      information is needed:<list style="symbols">
          <t>Identity of the local system to use</t>

          <t>Identities acceptable for the remote endpoint</t>

          <t>Credential to use for the local system</t>

          <t>Authentication information for the remote system; see <xref
          target="rapd.auth"/>.</t>

          <t>Lifetime information</t>

          <t>Acceptable transforms</t>
        </list></t>

      <t>In order to establish a routing SA keyed by an IKE SA, the following
      information is needed: <list style="symbols">
          <t>Peer and protocol</t>

          <t>Acceptable transforms</t>
        </list></t>

      <t>Additional information is required for multicast policy.</t>
    </section>

    <section anchor="rapd.auth"
             title="RAPD Authentication Information for IKEv2">
      <t>An RAPD entry needs to include enough authentication information so
      that the remote peer can be authenticated according to the pre-specified
      policies. The required information tends to break down along the same
      lines as the credential types discussed in section 4 of <xref
      target="I-D.ietf-karp-ops-model"/>.</t>

      <t>For pre-shared keys, mutual authentication is obtained by using the
      same key in both directions. In this case the credential for outbound
      authentication is a pre-shared key. For inbound authentication, multiple
      acceptable credentials can be provided.</t>

      <t>For public keys used outside of authentication, authentication needs
      to happen in each direction. Each peer needs a private key and
      potentially a certificate to send as a credential. Each peer also needs
      a set of acceptable fingerprints for the remote key-management peer's
      key or certificate.</t>

      <t>When a PKI is used, each peer needs a private key and a certificate
      as a credential. In addition, trust anchors and constraints on how to
      validate whether an asserted identifier is appropriate for the presented
      certificate are required. An entry used with certificate-based
      authentication MAY include additional data to facilitate certificate
      revocation status, e.g., a pointer to a CRL repository or the name of an
      Online Certificate Status Protocol (OCSP) server.</t>
    </section>

    <section title="Organization and Lookup">
      <t>One open question is how to organize the RAPD.</t>

      <t>As described in Section 1, when processing an outgoing packet, the
      local system will try to find the proper key table entry using the peer
      and protocol information first. If no proper key material can be found
      in the key table, the local system will try to use the same information
      to find a proper RAPD entry.</t>

      <t>When an incoming packet belongs a automated key management exchange,
      the RAPD may be consulted by the automated key management mechanism to
      find out the necessary knowledge to perform authentication and
      authorization. Use IKEv2 as an example. When a local system receives an
      IKE_INIT packet, it needs to perform the IKE_INIT exchange with its
      remote peer without consulting the RAPD, since at this stage, the
      incoming packet does not contain any information to prove the peer's
      identity. Then, when receiving an IKE_AUTH packet, the local system can
      use the remote peer's IKE ID from the Identification Payload, the
      protocol ID in the Proposal, and the peer information from the Traffic
      Selector. Therefore, the automated key management mechanism can use peer
      and protocol information to look up the associated policies in the key
      table. Note that it is not mandated in the key table to use the protocol
      IDs specified in <xref target="I-D.mahesh-karp-rkmp"/> to present
      security or routing protocols in the protocol field. Therefore, the
      automated key management mechanism needs to transfer the information
      into the key table compatible format before using them to find the RAPD
      entry.</t>

      <t>One approach to organizing the RAPD could be to separate incoming and
      outgoing policies and use two different databases. This is highly
      undesirable from an operational standpoint. In general it is not
      possible to know ahead of time which router will initiate a key
      management exchange. For this reason, it is strongly desired that the
      policy be symmetric. That is, an association SHOULD successfully
      authenticate and be authorized independent of which party initiates the
      association. There are exceptions; for example, in a multicast
      association, one router MAY be configured not to take on the role of a
      Group Controller/Key Server (GCKS) and such a router could not respond
      to key-management associations.</t>

      <t>The second approach is to have a single database indexed by the tuple
      containing peer and protocol as well as the set of acceptable remote
      identifiers.</t>

      <t>The third approach is to have two databases. One contains the peer,
      protocol, unicast key management endpoint and a policy identifier. The
      second database contains the remaining information along with a policy
      identifier. It is indexed by the policy identifier and by the set of
      acceptable remote identifiers. This layout is very similar to the
      breakdown between IPsec's SPD and PAD.</t>

      <t>All of these approaches assume that the set of acceptable remote
      identifiers is enumerated in the policy database. In a PKI this may be
      undesirable.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t/>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-karp-crypto-key-table'?>

      <?rfc include='reference.I-D.mahesh-karp-rkmp'?>

      <?rfc include='reference.I-D.ietf-karp-ops-model'?>

      <?rfc include='reference.RFC.4301'?>
    </references>
  </back>
</rfc>
