Network Working Group                                     S. Viswanathan
Internet-Draft                                                   B. Weis
Intended status: Informational                             Cisco Systems
Expires: April 12, 2007                                        R. Bonica
                                                        Juniper Networks
                                                                A. Lange
                                                                 Alcatel
                                                              O. Wheeler
                                                                      BT
                                                         October 9, 2006


    Authentication-Key Rollover mechanism for Routing and Management
                               Protocols
                        draft-viswanathan-keyrollover-00.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 12, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).







Viswanathan, et al.      Expires April 12, 2007                 [Page 1]


Internet-Draft                Key Rollover                  October 2006


Abstract

   This memo discusses the authentication for routing and management
   protocols based on preconfigured keys,the need and basis for key
   rollover, and an mechanism to seamlessly rollover the authentication
   keys.  It is intended for an application where secure administrative
   access to all the end-points of the protocol connection is normally
   available.

   The strategy described herein improves upon the current practice
   where a key is preconifigured at all endpoints and the key rollover
   is done manually within a short synchronized window to avoid
   connection drops due to key mismatch.


Table of Contents

   1.  Conventions Used In This Document  . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   5.  Key Chain Attributes . . . . . . . . . . . . . . . . . . . . .  7
   6.  Key rollover criteria  . . . . . . . . . . . . . . . . . . . .  9
   7.  Active Key Selection . . . . . . . . . . . . . . . . . . . . . 10
   8.  Key Eligibility  . . . . . . . . . . . . . . . . . . . . . . . 11
   9.  Clock Synchronization  . . . . . . . . . . . . . . . . . . . . 12
     9.1.  Overlapping lifetime . . . . . . . . . . . . . . . . . . . 12
     9.2.  Accept tolerance . . . . . . . . . . . . . . . . . . . . . 12
   10. Application Considerations . . . . . . . . . . . . . . . . . . 13
   11. Implications . . . . . . . . . . . . . . . . . . . . . . . . . 14
     11.1. Performance  . . . . . . . . . . . . . . . . . . . . . . . 14
   12. Operational Considerations . . . . . . . . . . . . . . . . . . 15
   13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 16
   14. Security Considerations  . . . . . . . . . . . . . . . . . . . 17
   15. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 18
   16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
     16.1. Normative References . . . . . . . . . . . . . . . . . . . 19
     16.2. Informative References . . . . . . . . . . . . . . . . . . 19
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
   Intellectual Property and Copyright Statements . . . . . . . . . . 22











Viswanathan, et al.      Expires April 12, 2007                 [Page 2]


Internet-Draft                Key Rollover                  October 2006


1.  Conventions Used In This Document

   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 RFC2119 [RFC2119].














































Viswanathan, et al.      Expires April 12, 2007                 [Page 3]


Internet-Draft                Key Rollover                  October 2006


2.  Terminology

   The following terms are used in this document:

   key-list - A data structure used by the routing or management
   protocols.The key-list is a list of keys.

   Key identifier - An identifier that signifies the key attributes
   associated with the authentication.

   key - A member of the key-list.  Each key contains an identifier,
   information that can be used to authenticate the protocol message,
   information that determines when the key can be used to authenticate
   an outbound message and information that determines when the key can
   be used to authenticate an inbound protocol message.

   key lifetime - Denotes the window when a key remains in active state.

   active key - A key used to generate authentication information for an
   outbound protocol message.  Each key chain contains exactly one
   active key.  The "active flag" on a key indicates whether a
   particular key qualifies to be active.

   eligible key - Each key-list contains zero or more eligible keys.
   The receiving stattion uses the shared secret from a key to
   authenticate an incoming protocol message only if that key is
   eligible.  The "eligible flag" on a key indicates whether a
   particular key is eligible.























Viswanathan, et al.      Expires April 12, 2007                 [Page 4]


Internet-Draft                Key Rollover                  October 2006


3.  Introduction

   Many routing protocols authenticate messages by including a message
   authentication code (MAC) in message.  To spoof a message, an
   attacker would not only have to approximate a valid message, but
   would also have to obtain the key that was used to calculate the MAC.
   This key never appears in the message stream.

   RFC 3562 addresses key management considerations regarding one such
   MD5 based authentication scheme.  Based upon the strength of the MD5
   hashing algorithm, RFC 3562 recommends that keys be changed at least
   every 90 days.

   Unfortunately, the authentication mechanisms described above permit
   keys to be changed during the lifetime of a routing adjacency only so
   long as the change is synchronized at both ends.  This limitation has
   proven to be a significant deterrent to the effective deployment.
   This memo addresses that limitation.

   Using other out-of-band key negotiation protocols like IKE present a
   different set of overheads and requirements that is out-of-scope for
   this document.

   The need for an automated mechanism to rollover the keys at both
   endpoints is critical, and this document addresses a scheme to meet
   this requirement using the preconfigured keys.

























Viswanathan, et al.      Expires April 12, 2007                 [Page 5]


Internet-Draft                Key Rollover                  October 2006


4.  Proposal

   This memo proposes an authentication-key rollover mechanism for
   routing and management applications by extending the pre-configured
   key usage to a key-list as follows:

   Network operators associate a key-list with each protected protocol
   connection.  Each key-list includes a list of keys.Each key is
   associated with a unique identifier and several other data items that
   are described in Section 5 of this document.

   The key identifier and the associated key used for computing the
   digest from the sending station must be identically configured on all
   the authenticating receiving stations.  Whenever the protocol
   generates an outbound message,it searches the key-list for an active
   key.  Section 6 of this document describes the active key selection
   criteria.  If it does not find an active key, it discards the
   outbound message.  However, if the protocol finds an active key, it
   calculates a MAC using information from the active key as per the
   protocol specification for authentication.

   The receiving application associates its inbound message with a local
   key-list based upon its configuration.  It then searches the
   associated key-list for a key whose identifier matches that which was
   specified by the incoming protocol message option.  If it finds such
   a key and that key satisfies the eligibility criteria described in
   Section 7 of this document, the application uses the information from
   that key to calculate and verify the MAC as per its authentication
   handling specification.  If no matching eligible key is found then it
   MUST declare an authentication failure and discard the protocol
   message.




















Viswanathan, et al.      Expires April 12, 2007                 [Page 6]


Internet-Draft                Key Rollover                  October 2006


5.  Key Chain Attributes

   This section describes information requirements for the key-list.  It
   does not mandate any specific implementation.

   A keychain is a set of keys, where each key is {A[i], K[i], V[i],
   S[i], T[i], S'[i], T'[i],F[i], F'[i]}:

   For the purpose of this document, key[i] is defined as the key whose
   identifer is equal to i.

   i - Key identifier, integer.  The key identier range depends on the
   procotol specifics.
   AK - Active key, integer.  Indicates the choice of the key[i] amongst
   all the keys in the key-list to generate MAC by the sender.
   AT - Accept tolerance, integer.  It indicates the level of tolerance
   of clock skews.

   A[i] - Authentication algorithm to use with key[i].
   K[i] - Shared secret to use with key[i].
   V[i] - A vector that determines whether key[i] is to be used to
   generate MACs for inbound protocol messages, outbound protocol
   messages, or both.
   S[i] - Start time from which key[i] can be used by the sender.
   T[i] - End time after which key[i] cannot be used by the sender.
   S'[i] - Start time from which key[i] can be used by the receiver.
   T'[i] - End time after which key[i] cannot be used by the receiver.
   F[i] - Active flag that denotes the choice of the key for generating
   MACs for the outbound protocol messages.  Only one key from the
   entire key-list is chosen as the active key.
   F'[i]- Elibile flag that denotes the eligibility of the key for
   generating MACs for the verification of inbound protocol messages.

   A[i] and K[i] MUST be configured symmetrically on all peers.  That
   is, if key[i] is configured on two peer systems, A[i] and K[i] must
   be configured identically on each system.

   S[i], T[i], S'[i] and T'[i] are measured from a defined epoch that
   must have a known relationship to UTC.  For the purposes of
   discussion, times are assumed to be measured in seconds since that
   epoch, although this is not a requirement.

   The range of values that can be specified for S[i], T[i], S'[i] and
   T'[i] includes two special values.  The first special value is called
   NOW, and it represents the system time when the key is examined (as
   opposed to when the key is configured).  The second special value,
   called INFINITY, represents a time beyond the end of the epoch.




Viswanathan, et al.      Expires April 12, 2007                 [Page 7]


Internet-Draft                Key Rollover                  October 2006


   S[i] and T[i] define a time-window during which a key can be used for
   sending.  S'[i] and T'[i] define a time-window during which a key can
   be used for receiving.

   AT, the accept tolerance defines the connection's tolerance to clock-
   skew on either system.  The accept tolerance can be measured in the
   order of seconds, though a special tag for INFINITY can be
   provisioned.

   Within a key-list, time-windows for sending can overlap.  Likewise,
   within a key-list, time-windows for receiving can overlap.
   Typically, network operators will configure key-lists so that there
   are no gaps between time-windows for either sending or receiving.
   Implementations should issue a warning when network operators
   configure key-lists with gaps between time-windows.  A gap of
   sufficient length can cause the the protocol connection/session to
   fail due to timeout.

   The active flag F[i] is set when the system time >= the S[i] and is
   reset when the the system time equals or exceeds T[i].

   In general, network operators should avoid reusing shared secrets.
   The degree to which an operator can reuse keys is defined by local
   security policy.

   During the lifetime of a protocol connection/session, network
   operators may add and delete keys from the keychain.  However, the
   network operator must ensure that an active key is always configured
   on all endpoints.

   Implementations are free to implement key chains in any manner that
   satisfies the above stated information requirements.  For example,
   implementations can translate the above stated information
   requirements directly into a data structure.  Alternatively, they can
   implement one key-list for sending and another for receiving.  In
   this case, the implementation may omit data items that do not apply
   to either the sending or receiving key-list.

   Likewise, implementations can implement S[i] and T[i] as a start-time
   and an end-time.  Alternatively, implementations can implement S[i]
   and T[i] as a start-time and a duration, or they can infer the T[i]
   from the S[i] of the next key.









Viswanathan, et al.      Expires April 12, 2007                 [Page 8]


Internet-Draft                Key Rollover                  October 2006


6.  Key rollover criteria

   The key usage is strictly bound by the lifetime specification.  It
   can only be used between S[i] and T[i], or between S'[i] and T'[i].
   However, there may be a need to rollover a key while will within its
   active lifetime window.  The authenticating protocol semantics(like
   sequence number wrap arounds) may also dictate a rollover based on
   the volume of data authenticated using the key K[i] triggering a
   rollover to the next active key.










































Viswanathan, et al.      Expires April 12, 2007                 [Page 9]


Internet-Draft                Key Rollover                  October 2006


7.  Active Key Selection

   The following paragraphs describe how the sending application selects
   the active key from its key-list.  Implementations SHOULD support
   this key selection process; implementations MAY also support other
   active key selection mechanisms as a configurable option.

   First, the application identifies all candidate keys that meet the
   following requirements:

   - V[i] specifies that the key can be used for either sending or
   sending and receiving.
   - the system time >= S[i]
   - the system time < T[i]
   - Active flag F[i] is set

   Because the time-windows specified by S[i] and T[i] can overlap, it
   is possible that multiple keys will satisfy the above stated
   criteria.  When this occurs, TCP chooses between the candidate keys
   by applying following rules in the order that they are listed below:

   - prefer the youngest key (i.e., the key whose value for S[i] is
   greatest)
   - When there is a tie based upon the above stated criterion, select
   the key whose identifier is numerically smallest.

   In the case that an active key has already been deemed rolledover due
   the volume based criteria imposed by the application, then that key's
   active flag is reset, and the active key selection process is
   repeated.

   The selection process described above is guaranteed to return zero or
   one active keys.  If no active key is returned, the protocol discards
   the outbound message.

















Viswanathan, et al.      Expires April 12, 2007                [Page 10]


Internet-Draft                Key Rollover                  October 2006


8.  Key Eligibility

   When the application receives a protocol message that includes the
   Authentication Option, it searches that connection's key-list for a
   key whose identifier is identical to Key ID specified by the incoming
   authentication Option.  It uses that key to authenticate the incoming
   protocol message providing that the key is eligible to be used.

   Implementations SHOULD support the following process for determining
   key eligibility; implementations MAY also support other eligible key
   selection mechanisms as a configurable option.

   A key is eligible if all of the following criteria are met:

   - V[i] specifies that the key can be used for either receiving or
   sending and receiving.
   - A[i] is equal to the algorithm specified by the Authentication
   Option from the incoming protocol message
   - the system time >= S'[i]
   - the system time < T'[i]

   If the protocol does not find a key whose identifier is identical to
   the Key ID specified by the incoming authentication Option, it MUST
   declare an authentication failure and discard the message.  Likewise,
   it MUST declare an authentication failure if it finds the key but the
   key is not eligible.

























Viswanathan, et al.      Expires April 12, 2007                [Page 11]


Internet-Draft                Key Rollover                  October 2006


9.  Clock Synchronization

9.1.  Overlapping lifetime

   Clocks do not need to be synchronized accurately between the sending
   and receiving systems.  The only requirements are that the key used
   to generate the MAC on the sending system is also configured on the
   receiving system and that the time ovelap between sender's active key
   and the receiver's eligible key is great enough to compensate for
   clock skew.

   Receipt of a protocol message whose authentication data was generated
   using a key other than the one that is currently active on the
   receiving system does not constitute an error.  It may indicate only
   that clocks are not synchronized between the sending and receiving
   systems.

9.2.  Accept tolerance

   To overcome the issues due to clock skews at the endpoints without
   needing to configure overlapping lifetime, a configurable tolerance
   level that the operator perceives to be acceptable is proposed.  The
   tolerance level indicates the window of tolerance where-in a key is
   still considered eligible.  In other words, a key is considered
   eligible from AT seconds prior to S'[i], upto AT seconds after T'[i].


























Viswanathan, et al.      Expires April 12, 2007                [Page 12]


Internet-Draft                Key Rollover                  October 2006


10.  Application Considerations

   The mechanisms described in this memo are intended for use with
   routing and management applications that manipulate key set contents.
   The Key identifier is the critical component in handling keyrollover
   detection optimally.  Protocols specifications that do not carry the
   key identifier in their authentication option header present an
   overhead in rollover detection.  Depending on the number of eligible
   keys that are configured, the MAC computation and verification may
   need to be done on one or more of those.









































Viswanathan, et al.      Expires April 12, 2007                [Page 13]


Internet-Draft                Key Rollover                  October 2006


11.  Implications

11.1.  Performance

   The performance hit in calculating digests may inhibit the use of
   authentication option.  Performance will vary depending upon
   processor type, authentication algorithm, packet size and number of
   MAC calculations per second.Protocols that do not carry the key
   identifier in its authentication option may at worst need to repeat
   the MAC caluculations for all keys that are eligble, thereby
   affecting performance.








































Viswanathan, et al.      Expires April 12, 2007                [Page 14]


Internet-Draft                Key Rollover                  October 2006


12.  Operational Considerations

   Network operators may experience an operational need to make a key
   become both active and eligible immediately.  In order to satisfy
   this need, the network operator should execute the following
   sequence:

   Configure the key on both TCP peers with i equal to the lowest free
   value.  On both systems, set S[i] and T[i] to INFINITY.  This will
   cause the key to be perpetually inactive (for sending).  Also set
   S'[i] to NOW and T'[i] to INFINITY.  This will cause the key to be
   perpetually eligible (for receiving).

   Once the above step has been completed, on both systems, set S[i] to
   NOW.  This will cause the key[i] to become active.  Now it is safe to
   remove or deactivate all other keys.



































Viswanathan, et al.      Expires April 12, 2007                [Page 15]


Internet-Draft                Key Rollover                  October 2006


13.  Contributors

   The following individuals contributed to this document:

   Chandrashekhar Appanna (achandra@cisco.com)

   Anantha Ramaiah (ananth@cisco.com)

   David McGrew (mcgrew@cisco.com)

   Satish Mynam (mynam@cisco.com)

   Andy Heffernan (ahh@juniper.net)

   Kapil Jain (kapil@juniper.net)




































Viswanathan, et al.      Expires April 12, 2007                [Page 16]


Internet-Draft                Key Rollover                  October 2006


14.  Security Considerations

   Management of authentication keys has been a significant operational
   problem, both in terms of key synchronization and key selection.  For
   example, current guidance [RFC3562] warns against sharing RFC 2385
   keys between systems, and recommends changing keys according to a
   schedule.  The same general operational issues are relevant for the
   management of MAC keys.











































Viswanathan, et al.      Expires April 12, 2007                [Page 17]


Internet-Draft                Key Rollover                  October 2006


15.  IANA Considerations

   None.
















































Viswanathan, et al.      Expires April 12, 2007                [Page 18]


Internet-Draft                Key Rollover                  October 2006


16.  References

16.1.  Normative References

   [RFC0793]  Postel, J., "Transmission Control Protocol", STD 7,
              RFC 793, September 1981.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.

16.2.  Informative References

   [I-D.bonica-tcp-auth]
              Bonica, R., Weis, B., Viswanathan, S., Lange, A., and O.
              Wheeler, "Authentication for TCP-based Routing and
              Management Protocols, draft-bonica-tcp-auth-05 (work in
              progress)", July 2006.

   [RFC2385]  Heffernan, A., "Protection of BGP Sessions via the TCP MD5
              Signature Option", RFC 2385, August 1998.

   [RFC3562]  Leech, M., "Key Management Considerations for the TCP MD5
              Signature Option", RFC 3562, July 2003.

























Viswanathan, et al.      Expires April 12, 2007                [Page 19]


Internet-Draft                Key Rollover                  October 2006


Authors' Addresses

   Sriram Viswanathan
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   US

   Phone: +1 408-527-8830
   Email: sriram_v@cisco.com


   Brian Weis
   Cisco Systems
   170 W. Tasman Drive
   San Jose, CA  95134
   US

   Phone: +1 408-526-6198
   Email: rbonica@juniper.net


   Ronald Bonica
   Juniper Networks
   2251 Corporate Park Drive
   Herndon, VA  20171
   US

   Email: bew@cisco.com


   Andrew Lange
   Alcatel
   710 E. Middlefield Road
   Mountain View, CA  94043
   US

   Email: andrew.lange@alcatel.com













Viswanathan, et al.      Expires April 12, 2007                [Page 20]


Internet-Draft                Key Rollover                  October 2006


   Owen N. Wheeler
   BT
   British Telecommunications plc
   Adastral Park
   Martlesham Heath
   IPSWICH, Suffolk  IP5 3RE
   GB

   Email: owen.wheeler@bt.com










































Viswanathan, et al.      Expires April 12, 2007                [Page 21]


Internet-Draft                Key Rollover                  October 2006


Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Viswanathan, et al.      Expires April 12, 2007                [Page 22]