[Search] [txt|pdfized|bibtex] [Tracker] [Email] [Nits]
Versions: 00 01                                                         
Internet Draft                                               R. Atkinson
<draft-li-isis-hmac-shs-00.txt>                         Extreme Networks
Category: Informational                                           T. Li
Expires 16 Aug 2007                                       cisco Systems
                                                               M. Fanto
                                                     Ford Motor Company
                                                       16 February 2007

                   IS-IS Authentication with HMAC-SHS
                    <draft-li-isis-hmac-shs-00.txt>

Status of this Memo

   Distribution of this memo is unlimited.

   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/1id-abstracts.html

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

Abstract

   This document describes how the NIST Secure Hash Standard
   family of algorithms are used for IS-IS authentication.

1. INTRODUCTION

      This document provides an update to IS-IS Cryptographic
   Authentication, which is specified in RFC-3567.  This document
   does not deprecate RFC-3567.  IS-IS as deployed in the Internet
   is defined by RFC-1195 and ISO 10589.

      This document adds support for all algorithms defined in the US
   NIST Secure Hash Standard (SHS) as defined in NIST FIPS 180-2.
   [FIPS-180-2] includes SHA-1, SHA-256, SHA-384, and SHA-512.  The
   HMAC authentication mode as defined in NIST FIPS 198 is used.
   [FIPS-198]

      This creation of this addition to IS-IS was driven by operator
   requests that they be able to use the NIST SHS family of algorithms,
   instead of being forced to use the MD5 algorithm.

      While there are no openly published attacks on the HMAC-MD5
   mechanism, some reports [Dobb96a, Dobb96b] create concern
   about the ultimate strength of the MD5 cryptographic hash
   function.

2. AUTHENTICATION PROCEDURES

      The authentication type used for any of the HMAC-SHS algorithms
   is 54 (0x36), which is the same authentication type used for the
   existing HMAC-MD5 algorithm.

      The length of the Authentication Value varies with the specific
   hashing algorithm used.  The length field in the TLV is the sum
   of the length of the Authentication Value field and the number 1.
   For example, when SHA-256 is in use, the length of the Authentication
   Value is 32 and the length field in the TLV is 33.

2.1 Authentication Process.


      When calculating the HMAC-SHS result for Sequence Number PDUs,
   Level 1 Sequence Number PDUs SHALL use the Area Authentication string
   as in Level 1 Link State PDUs.  Level 2 Sequence Number PDUs shall use
   the domain authentication string as in Level 2 Link State PDUs.
   IS-IS HELLO PDUs SHALL use the Link Level Authentication String,
   which MAY be different from that of Link State PDUs.  The HMAC-SHS
   result for the IS-IS HELLO PDUs SHALL be calculated after the Packet
   is padded to the MTU size, if padding is not disabled.  Implementations
   that support the optional checksum for the Sequence Number PDUs and
   IS-IS HELLO PDUs MUST NOT include the Checksum TLV.

2.2 Cryptographic Aspects

      In the algorithm description below, the following nomenclature,
   which is consistent with [FIPS-198], is used:

      H    is the specific hashing algorithm (e.g. SHA-256).
      K    is the password for the PDU type as per ISO 10589.
      Ko   is the cryptographic key used with the hash algorithm.
      B    is the block size of H, measured in octets rather than bits.
           Note that B is the internal block size, not the hash size.
              For SHA-1 and SHA-256:   B == 64
              For SHA-384 and SHA-512: B == 128
      L    is the length of the hash, measured in octets rather than bits.
      XOR  is the exclusive-or operation.
      Opad is the hexadecimal value 0x5c repeated B times.
      Ipad is the hexadecimal value 0x36 repeated B times.
      Apad is the hexadecimal value 0x878FE1F3 repeated (L/4) times.

   (1) PREPARATION OF KEY
     In this application, Ko is always L octets long.

     If the Authentication Key (K) is L octets long, then Ko is equal
     to K.  If the Authentication Key (K) is more than L octets long,
     then Ko is set to H(K).  If the Authentication Key (K) is less
     than L octets long, then Ko is set to the Authentication Key (K)
     with zeros appended to the end of the Authentication Key (K) such
     that Ko is L octets long.

   (2) FIRST HASH
     First, the IS-IS packet's Authentication Data field is filled
     with the value Apad and the Authentication Type field is set
     to 54.

     Then, a first hash, also known as the inner hash, is computed
     as follows:
           First-Hash = H(Ko XOR Ipad || (IS-IS Packet))

   (3) SECOND HASH
     Then a second hash, also known as the outer hash, is computed
     as follows:
           Second-Hash = H(Ko XOR Opad || First-Hash)

   (4) RESULT
     The result Second-Hash becomes the Authentication Data that is
     sent in the Authentication Data field of the IS-IS packet.  The
     length of the Authentication Data field is always identical to
     the message digest size of the specific hash function H that is
     being used.

     This also means that the use of hash functions with larger
     output sizes will also increase the size of the IS-IS packet
     as transmitted on the wire.

2.3 Accepting Authenticated IS-IS Packets

      To authenticate an incoming PDU, a system should save the value
   of the Authentication Value field, the Checksum, and the Remaining
   Lifetime fields.  Then set the Authentication Value equal to Apad
   and zero the Checksum and Remaining Lifetime fields.  The Authentication
   Value is then computed as described above, then the values of these
   three fields is restored.

      An implementation that implements HMAC-SHS authentication and
   receives HMAC-SHS Authentication Information MUST discard the PDU
   if the Authentication Value is incorrect.

      An implementation MAY have a transition mode where it includes
   HMAC-SHS Authentication Information in PDUs but does not verify
   the HMAC-SHS authentication information.  This is a transition aid
   for networks in the process of deploying authentication.

      An implementation MAY check a set of passwords when verifying the
   Authentication Value.  This provides a mechanism for incrementally
   changing passwords in a network.

      An implementation that does not implement HMAC-SHS authentication
   MAY accept a PDU that contains the HMAC-SHS Authentication Type.
   ISes (routers) that implement HMAC-SHS authentication and initiate
   LSP purges MUST remove the body of the LSP and add the authentication
   TLV.  ISes implementing HMAC-SHS authentication MUST NOT accept
   unauthenticated purges.  ISes MUST NOT accept purges that contain
   TLVs other than the authentication TLV.  These restrictions are
   necessary to prevent a hostile system from receiving an LSP, setting
   the Remaining Lifetime field to zero, and flooding it, thereby
   initiating a purge without knowing the authentication password.

2.4 Implementation Considerations

      There is an implementation issue just after password rollover
   on an IS-IS router that might benefit from additional commentary.
   Immediately after password rollover on the router, the router or
   IS-IS process may restart.  If this happens, this causes the LSP
   Sequence Number restarts from the value 1 using the new password.
   However, neighbors will reject those new LSPs because the Sequence
   Number is smaller.  The router can not increase its own LSP
   Sequence Number because it fails to authenticate its own old LSP
   that neighbors keep sending to it.  So the router can not update
   its LSP Sequence Number to its neighbors until all the neighbors
   time out all of the original LSPs.  One possible solution to this
   problem is for the IS-IS process to detect if any inbound LSP with
   an authentication failure has the local System ID and also has
   a higher Sequence Number than the IS-IS process has.  In this event,
   the IS-IS process SHOULD increase its own LSP Sequence Number
   accordingly and re-flood the LSPs.  However, as this scenario
   could also be triggered by an active attack by an adversary,
   it is recommended that a counter also be kept on this case
   to mitigate the risk from such an active attack.

3. SECURITY CONSIDERATIONS

      This document enhances the security of the IS-IS routing protocol
   by adding support for additional cryptographic hash functions.

      Because a routing protocol contains information that need not be kept
   secret, privacy is not a requirement.  However, authentication of the
   messages within the protocol is of interest, to reduce the risk of an
   adversary compromising the routing system by deliberately injecting
   false information into the routing system.

      The technology in this document provides an authentication mechanism
   for IS-IS.  The mechanism described here is not perfect and does not
   need to be perfect.  Instead, this mechanism represents a significant
   increase in the work function of an adversary attacking the IS-IS
   protocol, while not causing undue implementation, deployment, or
   operational complexity.

      This mechanism does not prevent replay attacks, however, in most
   cases, such attacks would trigger existing mechanisms in the IS-IS
   protocol that would effectively reject old information.  Denial of
   service attacks are not generally preventable in a useful networking
   protocol [VK83].

      Because of implementation considerations, including the need for
   backwards compatibility, this specification uses the same mechanism
   as specified in RFC-3567 and limits itself to adding support for
   additional cryptographic hash functions.  Network operators have
   indicated they strongly prefer to retain the basic mechanism
   defined in RFC-3567.

      If a stronger authentication were believed to be required, then the
   use of a full digital signature [RFC-2154] would be an approach that
   should be seriously considered.  It was rejected for this purpose
   at this time because the computational burden of full digital signatures
   is believed to be much higher than is reasonable given the current
   threat environment in operational commercial networks.

4. IANA CONSIDERATIONS

   There are no IANA considerations for this document.


5. ACKNOWLEDGEMENTS

      TBD

6. REFERENCES

6.1 Normative References

   [ISO-10589]  International Standards Organisation, "Intermediate
                System to Intermediate System Routing Information
                Exchange Protocol for use in Conjunction with the
                Protocol for Providing the Connectionless-mode
                Network Service (ISO 8473)", ISO/IEC 10589:2002,
                Second Edition, 2002.

   [FIPS-180-2]  US National Institute of Standards & Technology,
                 "Secure Hash Standard (SHS)", FIPS PUB 180-2,
                 August 2002.

   [FIPS-198] US National Institute of Standards & Technology,
              "The Keyed-Hash Message Authentication Code (HMAC)",
              FIPS PUB 198, March 2002.


6.2 Informative References

   [Dobb96a] Dobbertin, H, "Cryptanalysis of MD5 Compress",
             Technical Report, 2 May 1996. (Presented at the
             Rump Session of EuroCrypt 1996.)

   [Dobb96b] Dobbertin, H, "The Status of MD5 After a Recent
             Attack", CryptoBytes, Vol. 2, No. 2, Summer 1996.

   [RFC-1195]  Callon, R., "Use of OSI IS-IS for Routing in TCP/IP
               and Dual Environments", RFC 1195, December 1990.

   [RFC-2154]  Murphy, S., Badger, M. and B. Wellington,
               "OSPF with Digital Signatures", RFC 2154, June 1997.

   [VK83]  Voydock, V. and S. Kent, "Security Mechanisms in High-level
           Networks", ACM Computing Surveys, Vol. 15, No. 2, June 1983.


AUTHORS

   Randall J. Atkinson
   Extreme Networks
   3585 Monroe Street
   Santa Clara, CA 95051  USA

   Phone: +1 (408) 579-2800
   EMail: rja@extremenetworks.com


   Tony Li
   Cisco Systems
   San Jose, CA
   USA

   EMail: tli@cisco.com


   Matt Fanto
   Ford Motor Company
   Michigan
   USA

   EMail: tbd


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   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, THE IETF TRUST, 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.