RFC 3567 INFORMATIONAL ROUTING · AUTHENTICATION · IS-IS

IS-IS Auth: Intermediate System to Intermediate System (IS-IS) Cryptographic Authentication

How IS-IS routers can sign their routing messages with HMAC-MD5 so that forged ones are rejected.

On rfc-editor.org ↗
PUBLISHED
July 2003
AUTHORS
T. Li, R. Atkinson
STREAM
IETF
OBSOLETED BY
RFC 5304 — IS-IS HMAC-MD5 Auth
AUTHENTICATION TLV TYPE
10
HMAC-MD5 AUTHENTICATION TYPE
54 (0x36)
AUTHENTICATION VALUE LENGTH
16
TLV LENGTH FIELD
17
DOI
10.17487/RFC3567

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                              T. Li
Request for Comments: 3567                              Procket Networks
Category: Informational                                      R. Atkinson
                                                        Extreme Networks
                                                               July 2003


          Intermediate System to Intermediate System (IS-IS)
                      Cryptographic Authentication

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This document describes the authentication of Intermediate System to
   Intermediate System (IS-IS) Protocol Data Units (PDUs) using the
   Hashed Message Authentication Codes - Message Digest 5 (HMAC-MD5)
   algorithm as found in RFC 2104.  IS-IS is specified in International
   Standards Organization (ISO) 10589, with extensions to support
   Internet Protocol version 4 (IPv4) described in RFC 1195.  The base
   specification includes an authentication mechanism that allows for
   multiple authentication algorithms.  The base specification only
   specifies the algorithm for cleartext passwords.

   This document proposes an extension to that specification that allows
   the use of the HMAC-MD5 authentication algorithm to be used in
   conjunction with the existing authentication mechanisms.

1. Introduction

   The IS-IS protocol, as specified in ISO 10589 [1], provides for the
   authentication of Link State PDUs (LSPs) through the inclusion of
   authentication information as part of the LSP.  This authentication
   information is encoded as a Type-Length-Value (TLV) tuple.  The use
   of IS-IS for IPv4 networks is described in [3].

   The type of the TLV is specified as 10.  The length of the TLV is
   variable.  The value of the TLV depends on the authentication
   algorithm and related secrets being used.  The first octet of the
   value is used to specify the authentication type.  Type 0 is
   reserved, type 1 indicates a cleartext password, and type 255 is used
   for routing domain private authentication methods.  The remainder of
   the TLV value is known as the Authentication Value.

   This document extends the above situation by allocating a new
   authentication type for HMAC-MD5 and specifying the algorithms for
   the computation of the Authentication Value.  This document also
   describes modifications to the base protocol to ensure that the
   authentication mechanisms described in this document are effective.

   This document is a publication of the IS-IS Working Group within the
   IETF, and is a contribution to ISO IEC JTC1/SC6, for eventual
   inclusion with ISO 10589.

2. Authentication Procedures

   The authentication type used for HMAC-MD5 is 54 (0x36).  The length
   of the Authentication Value for HMAC-MD5 is 16, and the length field
   in the TLV is 17.

   The HMAC-MD5 algorithm requires a key K and text T as input [2].  The
   key K is the password for the PDU type, as specified in ISO 10589.
   The text T is the IS-IS PDU to be authenticated with the
   Authentication Value field inside of the Authentication Information
   TLV set to zero.  Note that the Authentication Type is set to 54 and
   the length of the TLV is set to 17 before authentication is computed.
   When LSPs are authenticated, the Checksum and Remaining Lifetime
   fields are set to zero (0) before authentication is computed.  The
   result of the algorithm is placed in the Authentication Value field.

   When calculating the HMAC-MD5 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-MD5 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.

   To authenticate an incoming PDU, a system should save the values of
   the Authentication Value field, the Checksum and the Remaining
   Lifetime field, set these fields to zero, compute authentication, and
   then restore the values of these fields.

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

   An implementation MAY have a transition mode where it includes HMAC-
   MD5 Authentication Information in PDUs but does not verify the HMAC-
   MD5 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-MD5 authentication MAY
   accept a PDU that contains the HMAC-MD5 Authentication Type.  ISes
   (routers) that implement HMAC-MD5 authentication and initiate LSP
   purges MUST remove the body of the LSP and add the authentication
   TLV.  ISes implementing HMAC-MD5 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.1 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.
   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 [4].

   Changes to the authentication mechanism described here (primarily:
   to add a Key-ID field such as OSPFv2 and RIPv2 have) were considered
   at some length, but ultimately were rejected.  The mechanism here was
   already widely implemented in 1999.  As of this writing, this
   mechanism is fairly widely deployed within the users interested in
   cryptographic authentication of IS-IS.  The improvement provided by
   the proposed revised mechanism was not large enough to justify the
   change, given the installed base and lack of operator interest in
   deploying a revised mechanism.

   If and when a key management protocol appears that is both widely
   implemented and easily deployed to secure routing protocols such as
   IS-IS, a different authentication mechanism that is designed for use
   with that key management schema could be added if desired.

   If a stronger authentication were believed to be required, then the
   use of a full digital signature [5] 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.

Acknowledgements

   The authors would like to thank (in alphabetical order) Dave Katz,
   Steven Luong, Tony Przygienda, Nai-Ming Shen, and Henk Smit for their
   comments and suggestions on this document.

Normative References

   [1]  ISO, "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.

   [2]  Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing
        for Message Authentication", RFC 2104, February 1997.

Informative References

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

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

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

Authors' Addresses

   Tony Li
   Procket Networks
   1100 Cadillac Ct.
   Milpitas, CA 95035  USA

   Phone: +1 (408) 635-7903
   EMail: tli@procket.net


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

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

Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMThe base IS-IS specification only defines cleartext passwords, which do not stop an attacker from injecting false routing information.
MECHANISMA new authentication type, 54, carries a 16-byte HMAC-MD5 value computed over the PDU, with rules for which fields are zeroed and which key is used per PDU type.
STATUS TODAYThis Informational memo has been obsoleted by RFC 5304, so it no longer describes the current method.

§1Authentication in IS-IS

IS-IS, specified in ISO 10589 with IPv4 extensions in RFC 1195, can authenticate its Link State PDUs by including an authentication TLV. That TLV has type 10 and a variable length. The first octet of its value is the authentication type: 0 is reserved, 1 is a cleartext password, and 255 is for routing domain private methods. The rest is the Authentication Value.

RFC 3567 adds a new authentication type for HMAC-MD5 (defined in RFC 2104) and specifies how to compute the value. It also changes some base protocol behaviour so the mechanism is effective. It comes from the IS-IS Working Group and is a contribution to ISO for eventual inclusion in ISO 10589.

IS-IS routers already had a spot for a password on each message, but only a plain, readable one. This memo adds a better, secret kind of stamp.

IS-IS AUTHENTICATION TYPES (RFC 3567)
  • 0Reserved — Not used.
  • 1Cleartext password — The base specification's only algorithm.
  • 54HMAC-MD5 — Added by this RFC; 16-byte value, TLV length 17.
  • 255Private — Routing domain private authentication methods.

§2Computing and Checking the HMAC-MD5 Value

The authentication type for HMAC-MD5 is 54 (0x36). The Authentication Value is 16 bytes long, so the TLV length field is 17. The key K is the password for the PDU type, and the text T is the whole PDU with the Authentication Value set to zero (and the type and length already set to 54 and 17). For LSPs the Checksum and Remaining Lifetime fields are also zeroed before computing. The result goes into the Authentication Value field.

Which password is used depends on the PDU. Level 1 Sequence Number PDUs use the Area Authentication string, Level 2 ones use the domain authentication string, and IS-IS HELLO PDUs use the Link Level Authentication String, which MAY differ from the LSP one. HELLO results are computed after padding to the MTU size, if padding is not disabled. Implementations MUST NOT include the Checksum TLV in these PDUs.

To check an incoming PDU, save the Authentication Value, Checksum and Remaining Lifetime, zero them, compute, and restore them. An implementation that supports HMAC-MD5 MUST discard a PDU whose value is wrong.

The sender mixes the message with a shared secret to make a short stamp. The receiver does the same mix and throws the message away if the stamps do not match.

§3Transition, Rollover and Purges

An implementation MAY have a transition mode that adds the HMAC-MD5 information but does not verify it, as an aid while authentication is being deployed. It MAY also check a set of passwords, which allows passwords to be changed step by step. One that does not implement HMAC-MD5 MAY accept a PDU containing this type.

Purges need special care. A system that implements HMAC-MD5 and starts an LSP purge MUST remove the body of the LSP and add the authentication TLV. It MUST NOT accept unauthenticated purges, nor purges with TLVs other than the authentication TLV. Otherwise a hostile system could take an LSP, set Remaining Lifetime to zero and flood it to start a purge without knowing the password.

The memo also describes a password rollover issue. If the IS-IS process restarts right after rollover, its LSP Sequence Number restarts at 1 and neighbours reject the new LSPs. The router cannot raise its number because it cannot authenticate its own old LSPs. A suggested fix is to raise the number when an inbound LSP with the local System ID fails authentication but has a higher Sequence Number, with a counter to limit abuse by an active attacker.

Routers can start by adding stamps without checking them, and can accept more than one secret while the secret changes. Messages that tell everyone to forget a route must be stamped too, or a troublemaker could erase real routes.

§4Security Considerations and Trade-offs

The memo says routing data does not need to be secret, but it should be authenticated so an adversary cannot inject false information. The mechanism is not perfect and does not need to be: it significantly raises the work an attacker must do without much implementation or operational complexity.

It does not prevent replay attacks, though in most cases existing IS-IS mechanisms would reject old information. Denial of service attacks are not generally preventable in a useful networking protocol.

The authors considered adding a Key-ID field, as OSPFv2 and RIPv2 have, but rejected it. The mechanism was already widely implemented in 1999 and widely deployed among interested users, and the improvement did not justify a change. Full digital signatures would be stronger but were rejected because of their computational burden.

The stamp makes forging much harder but does not stop someone from replaying an old, real message. The authors chose a simple design that people already used.

§5References