<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc4271 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY rfc5101 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5101.xml">
<!ENTITY rfc5102 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5102.xml">
<!ENTITY rfc5226 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY ietf-sidr-pfx-validate SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sidr-pfx-validate-01.xml">
<!ENTITY ietf-sidr-origin-validation-signaling SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sidr-origin-validation-signaling-00.xml">
<!ENTITY ietf-pkix-cmc-serverkeygeneration SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-pkix-cmc-serverkeygeneration-00.xml">
<!ENTITY ietf-sidr-bgpsec-threats SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sidr-bgpsec-threats-02.xml">
<!ENTITY ietf-sidr-bgpsec-reqs SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-sidr-bgpsec-reqs-03.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc category="std" docName="draft-rogaglia-sidr-bgpsec-rollover-01"
     ipr="trust200902" updates="">
  <front>
    <title abbrev="BGPSEC rollover">BGPSEC router key rollover as an
    alternative to beaconing</title>

    <author fullname="Roque Gagliano" initials="R.G.M." surname="Gagliano">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>Avenue des Uttins 5</street>

          <city>Rolle</city>

          <region>VD</region>

          <code>1180</code>

          <country>Switzerland</country>
        </postal>

        <email>rogaglia@cisco.com</email>
      </address>
    </author>

    <author fullname="Keyur Patel" initials="K.P." surname="Patel">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>170 W. Tasman Driv</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>CA</country>
        </postal>

        <email>keyupate@cisco.com</email>
      </address>
    </author>

    <author fullname="Brian Weis" initials="B.W." surname="Weis">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>170 W. Tasman Driv</street>

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>CA</country>
        </postal>

        <email>bew@cisco.com</email>
      </address>
    </author>

    <date month="June" year="2012"/>

    <abstract>
      <t>The current BGPSEC draft documents do not specifies a key rollover
      process for routers. This document describes a possible key rollover
      process and explores its impact to mitigate replay attacks and eliminate
      the need for beaconing in BGPSEC.</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>In BGPSEC, a key rollover (or re-keying) is the process of changing
      the router's key pair, issuing the correspondent new End-Entity
      certificates and revoke the old certificate. This process will need to
      happen at regular intervals normally due to local policies at each
      network.</t>

      <t>During a rollover process, a router needs to generate BGP UPDATE
      messages in order to signal the new key to be used to its neighbors. So,
      intuitively, a frequent key rollover process has similar effects as the
      beaconing process proposed by the BGPSEC base documents to protect a
      BGPSEC attribute against a re-play attack. However, there are a number
      of operational details to be considered if the expire time field in the
      BGPSEC attribute is removed.</t>

      <t>This document details a possible key rollover process in BGPSEC and
      explores the operational environment where key rollovers could be used
      as a protection against a re-play attach against BGPSEC</t>
    </section>

    <section anchor="BGPSEC" title="Key rollover in BGPSEC">
      <t>The key rollover process in BGPSEC has not been well defined yet.
      However, this will be a mandatory process due to some of the following
      causes: <list hangIndent="6" style="hanging">
          <t hangText="BGPSEC scheduled rollover:">BGPSEC certificates have an
          expiration date (NotValidAfter). Although it is possible to generate
          a new certificate without changing the key pair, it is normally good
          practice to adopt the policy of using a new key pair in every
          rollover event.</t>

          <t hangText="BGPSEC certificate fields changes:">A BGPSEC
          certificate field's information (such as the ASN or the Subject) may
          need to be changed. The normal process requires the rollover of the
          old certificate with a new key pair and the revocation of the old
          certificate.</t>

          <t hangText="BGPSEC emergency rollover">Some special circumstances
          (such as a compromised key) may require the rollover of a BGPSEC
          certificate.</t>
        </list></t>

      <t>It should be clear at this point that a key rollover process is
      required for BGPSEC. The next section describes how this process may be
      implemented.</t>

      <section anchor="re-keying"
               title="A proposed process for BGPSEC key rollover">
        <t>The BGPSEC key rollover process should be very tighten to the key
        provisioning mechanisms that would be in place. The key provisioning
        mechanisms for BGPSEC are not yet documented. We will assume that such
        an automatic provisioning mechanism will be in place (a possible
        provisioning mechanism when the private key lives only inside the BGP
        speaker is the Enrollment over Secure Transport (EST). This protocol
        will allow BGPSEC code to include automatic re-keying scripts with
        minimum development cost.</t>

        <t>When the same private key is shared by different routers, a
        mechanism to distribute the private key will need to be implemented. A
        possible solution may include the transmission of the private key over
        a secure channel. The PKIX WG has started work on this sense by
        adopting <xref target="I-D.ietf-pkix-cmc-serverkeygeneration"/></t>

        <t>If we work under the assumption that an automatic mechanism will
        exist to rollover a BGPSEC certificate, a possible process could be:
        <list style="numbers">
            <t>New Certificate Pre-Publication: The first step in the rollover
            mechanism is to pre-publish the new public key. In order to
            accomplish this goal, the new key pair and certificate will need
            to be generated and published on the correspondent RPKI
            repository. This process will vary in every environment as it will
            depend on where the keys are located (either in every router or on
            a centralized server), if the RPKI CA is hosted at the ISP or at
            an external party (i.e. needs to use the RPKI provisioning
            protocol) and finally if the repository is also local or hosted
            (i.e. will need to use the RPKI-Repository protocol.)</t>

            <t>Stage Period: A stage period will be required from the time a
            new certificate is published in the RPKI global repository until
            the time it is fetched by RPKI caches around the globe. The exact
            minimum staging time is not clear and will require experimental
            results from RPKI. Design documents mention a lower limit of 24
            hours. If rollovers will be done frequently and we want to avoid
            the stage period in case of emergency rollover needs, an
            administrator can always provision two certificate for every
            router. In this case when the rollover operation is needed, the
            cache servers around the globe would already have the new
            keys.</t>

            <t>Twilight: At this moment, the BGP speaker that uses the key
            been rolled-over will stop using the OLD key for signing and start
            using the NEW key. Also, the router will generate appropriate BGP
            UPDATES just as in the typical operation of refreshing out-bound
            BGP polices. This operation may generate a great number of BGP
            UPDATE messages. In any given BGP SPEAKER, the Twilight moment may
            be different for every peer in order to distribute the system
            load.</t>

            <t>CRL Publication: As part of the rollover process, a CA MAY
            decide that it will publish the serial number of the OLD BGPSEC
            certificate on its CRL. It may also be the case that the CA will
            just let the certificate to expire and not update its CRL.</t>

            <t>RPKI-Router Protocol Withdrawal: Either due to the inclusion of
            the OLD certificate serial number or the expiration of the
            certificate's validation, the RPKI cache servers around the globe
            will need to communicate to its RTR peers that the OLD
            certificate's public key is not longer valid (rtr withdrawal
            message). It is not documented yet what will be a router's
            reaction to a RTR withdrawal message but it should include the
            removal of any RIB entry that includes a BGPSEC attribute signed
            with that key and the generation of the correspondent BGP
            WITHDRAWS (either implicit or explicit).</t>
          </list>The proposed rollover mechanism will depend on the existence
        of an automatic provisioning process for BGPSEC certificates, it will
        require a staging mechanism given by RPKI propagation time of around
        24hours and it will generate BGP UPDATES for all prefixes in the
        router been re-keying.</t>

        <t>The first two steps (New Certificate Pre-Publication and Stage
        Period) could happen ahead of time from the rest of the process as
        network operators could prepare itself to accelerate a future key
        roll-over.</t>
      </section>
    </section>

    <section anchor="replay"
             title="BGPSEC key rollover as a measure against replays attacks in BGPSEC">
      <t>There are two typical measures to mitigate replay attacks: addition
      of a timestamp or addition of a serial number. Currently BGPSEC offers a
      timestamp (expiration time) as a protection against re-play attacks of
      BGPSEC messages. The process requires all BGP Speakers that originate a
      BGP UPDATE to beaconing the message before its expiration time. This
      requirement changes a long standing BGP operation practice and the
      community have been searching for alternatives.</t>

      <section anchor="requirements"
               title="BGPSEC Re-play attack window requirement">
        <t>In <xref target="I-D.ietf-sidr-bgpsec-reqs"/> Sections 3.7 and 4.3,
        the replay attack requirements are set. One important comment is that
        during the windows of exposure, a replay attack is only effective if
        there was a downstream topology change that makes the signed AS path
        not longer current. In other words, if there has been no topology
        changes, no security threat comes from a replay of a BGP UPDATE
        message.</t>

        <t>The BGPSEC Ops document give some ideas of requirements for the
        re-play attack in BGPSEC. For the vast majority of the prefixes, the
        requirement will be in the order of days or weeks. For a very small
        fraction, but critical, of the prefixes, the requirement may be in the
        order of hours.</t>
      </section>

      <section anchor="proposal"
               title="BGPSEC key rollover as a mechanism to protect against replay attacks">
        <t>The question we would like to ask is: can key rollover provide us a
        similar protection against re-play attacks without the need for
        beaconing?</t>

        <t>The answer is that YES when the window requirement is in the order
        of days and the router re-keying is the edge router of the origin AS.
        By using re-keying, you are letting the BGPSEC certificate validation
        time as your timestamp against replay attacks. However, the use of
        frequent key rollovers comes with an additional administrative cost
        and risks if the process fails. As documented before, re-keying should
        be supported by automatic tools and for the great majority of the
        Internet it will be done with good lead time to correct any
        inconvenient in the process.</t>

        <t>For a transit AS that also originates its BGP UPDATES for its own
        prefixes, the key rollover process may generate a large number of
        UPDATE messages (even the complete DFZ). For this reason, it is
        recommended that routers in this scenario been provisioned with two
        certificates: one to sign BGP UPDATES in transit and a second one to
        sign BGP UPDATE for prefixes originated in its AS. Only the second
        certificate should be frequently rolled-over. Consequently, the
        transit BGPSEC certificate is expected to be longer living than the
        origin BGPSEC certificate.</t>

        <t>Advantage of Re-keying as re-play attack protection mechanism:
        <list style="numbers">
            <t>Does not require beaconing</t>

            <t>All timestamps policies are maintained in RPKI</t>

            <t>Additional administrative cost is paid by the provider that
            wants to protect its infrastructure</t>

            <t>Can be implemented in coordination with planned topology
            changes by either origin ASes or transit ASes (if I am changing
            providers, I rollover)</t>

            <t>Eliminates the discussion on who has the authority over the
            expiration time</t>
          </list></t>

        <t>Disadvantage of Re-keying as re-play attack protection mechanism:
        <list style="numbers">
            <t>More administrative load due to frequent rollover, although how
            frequent is still not clear.</t>

            <t>Minimum window size bounded by RPKI propagation time to RPKI
            caches. If pre-provisioning done ahead of time, it means 24 hours
            minimum in paper. However, more experimentation is needed when
            RPKI and cache servers are more massively deployed.</t>

            <t>Increases dynamic of RPKI repository</t>

            <t>More load on RPKI caches, but they are meant to do this
            work.</t>
          </list></t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>No IANA considerations</t>
    </section>

    <section title="Security Considerations">
      <t>No security considerations.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>We would like to acknowledge Randy Bush, Sriram Kotikalapudi, Stephen
      Kent and Sandy Murphy.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &rfc2119;

      &rfc4271;

      &rfc5101;

      &rfc5102;
    </references>

    <references title="Informative References">
      &rfc5226;

      &ietf-pkix-cmc-serverkeygeneration;

      &ietf-sidr-origin-validation-signaling;

      &ietf-sidr-pfx-validate;

      &ietf-sidr-bgpsec-threats;

      &ietf-sidr-bgpsec-reqs;
    </references>
  </back>
</rfc>
