RFC 6720 PROPOSED STANDARD SECURITY · MPLS · ROUTING

GTSM for LDP: The Generalized TTL Security Mechanism (GTSM) for the Label Distribution Protocol (LDP)

Using the packet's TTL to prove that an LDP message came from the router next door.

On rfc-editor.org ↗
PUBLISHED
August 2012
AUTHORS
C. Pignataro, R. Asati
STREAM
IETF
BUILDS ON
RFC 5036 — LDP
UPDATED BY
RFC 7552 — LDP for IPv6
COMMON HELLO PARAMETERS TYPE
0x0400
EXPECTED TTL OR HOP LIMIT
255
HELLO MULTICAST ADDRESS
224.0.0.2
RECOMMENDED TTL FOR LINK HELLOS
1
SCOPE
IPv4 routing, single-hop LDP peering sessions
NEGOTIATION
Enabled by default, without configuration
DOI
10.17487/RFC6720

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                      C. Pignataro
Request for Comments: 6720                                      R. Asati
Updates: 5036                                              Cisco Systems
Category: Standards Track                                    August 2012
ISSN: 2070-1721


           The Generalized TTL Security Mechanism (GTSM) for
                 the Label Distribution Protocol (LDP)

Abstract

   The Generalized TTL Security Mechanism (GTSM) describes a generalized
   use of a packet's Time to Live (TTL) (IPv4) or Hop Limit (IPv6) to
   verify that the packet was sourced by a node on a connected link,
   thereby protecting the router's IP control plane from CPU
   utilization-based attacks.  This technique improves security and is
   used by many protocols.  This document defines the GTSM use for the
   Label Distribution Protocol (LDP).

   This specification uses a bit reserved in RFC 5036 and therefore
   updates RFC 5036.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6720.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1. Introduction ....................................................2
      1.1. Specification of Requirements ..............................3
      1.2. Scope ......................................................3
   2. GTSM Procedures for LDP .........................................4
      2.1. GTSM Flag in the Common Hello Parameter TLV ................4
      2.2. GTSM Sending and Receiving Procedures for LDP Link Hello ...5
      2.3. GTSM Sending and Receiving Procedures for LDP
           Initialization .............................................5
   3. LDP Peering Scenarios and GTSM Considerations ...................5
   4. Security Considerations .........................................6
   5. Acknowledgments .................................................7
   6. References ......................................................7
      6.1. Normative References .......................................7
      6.2. Informative References .....................................8

1.  Introduction

   LDP [RFC5036] specifies two peer discovery mechanisms, a Basic one
   and an Extended one, both using UDP transport.  The Basic Discovery
   mechanism is used to discover LDP peers that are directly connected
   at the link level, whereas the Extended Discovery mechanism is used
   to locate Label Switching Router (LSR) neighbors that are not
   directly connected at the link level.  Once discovered, the LSR
   neighbors can establish the LDP peering session, using the TCP
   transport connection.

   The Generalized TTL Security Mechanism (GTSM) [RFC5082] is a
   mechanism based on IPv4 Time To Live (TTL) or IPv6 Hop Limit value
   verification so as to provide a simple and reasonably robust defense
   from infrastructure attacks using forged protocol packets from
   outside the network.  GTSM can be applied to any protocol peering
   session that is established between routers that are adjacent.
   Therefore, GTSM can protect an LDP protocol peering session
   established using Basic Discovery.

   This document specifies LDP enhancements to accommodate GTSM.  In
   particular, this document specifies the enhancements in the following
   areas:

   1.  The Common Hello Parameter TLV of LDP Link Hello message

   2.  Sending and Receiving procedures for LDP Link Hello message

   3.  Sending and Receiving procedures for LDP Initialization message

   GTSM specifies that "it SHOULD NOT be enabled by default in order to
   remain backward compatible with the unmodified protocol" (see Section
   3 of [RFC5082]).  This document specifies a "built-in dynamic GTSM
   capability negotiation" for LDP to suggest the use of GTSM.  GTSM
   will be used as specified in this document provided both peers on an
   LDP session can detect each others' support for GTSM procedures and
   agree to use it.  That is, the desire to use GTSM (i.e., its
   negotiation mechanics) is enabled by default without any
   configuration.

   This specification uses a bit reserved in Section 3.5.2 of [RFC5036]
   and therefore updates [RFC5036].

1.1.  Specification of Requirements

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

1.2.  Scope

   This document defines procedures for LDP using IPv4 routing but not
   for LDP using IPv6 routing, since the latter has GTSM built into the
   protocol definition [LDP-IPV6].

   Additionally, the GTSM for LDP specified in this document applies
   only to single-hop LDP peering sessions and not to multi-hop LDP
   peering sessions, in line with Section 5.5 of [RFC5082].
   Consequently, any LDP method or feature (such as LDP IGP
   Synchronization [RFC5443] or LDP Session Protection [LDP-SPROT]) that
   relies on multi-hop LDP peering sessions would not work with GTSM and
   will require (statically or dynamically) disabling the GTSM
   capability.  See Section 3.

2.  GTSM Procedures for LDP

2.1.  GTSM Flag in the Common Hello Parameter TLV

   A new flag in the Common Hello Parameter TLV, named G flag (for
   GTSM), is defined by this document in a previously reserved bit.  An
   LSR indicates that it is capable of applying GTSM procedures, as
   defined in this document, to the subsequent LDP peering session, by
   setting the GTSM flag to 1.  The Common Hello Parameters TLV, defined
   in Section 3.5.2 of [RFC5036], is updated as shown in Figure 1.

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |0|0| Common Hello Parms(0x0400)|      Length                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |      Hold Time                |T|R|G|   Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    T, Targeted Hello
       As specified in [RFC5036].

    R, Request Send Targeted Hellos
       As specified in [RFC5036].

    G, GTSM
       A value of 1 specifies that this LSR supports GTSM procedures,
       where a value of 0 specifies that this LSR does not support GTSM.

    Reserved
       This field is reserved.  It MUST be set to zero on transmission
       and ignored on receipt.

           Figure 1: GTSM Flag in the Common Hello Parameter TLV

   The G flag is meaningful only if the T flag is set to 0 (which must
   be the case for Basic Discovery); otherwise, the value of the G flag
   is ignored on receipt.

   Any LSR not supporting GTSM for LDP as defined in this document
   (i.e., an LSR that does not recognize the G flag) would continue to
   ignore the G flag, independent of the values of the T and R flags, as
   per Section 3.5.2 of [RFC5036].  Similarly, an LSR that does
   recognize the G flag but that does not support GTSM (either because
   it is not implemented or because it is so configured) would not set
   the G flag (i.e., G=0) when sending LDP Link Hellos and would
   effectively ignore the G flag when receiving LDP Link Hello messages.

2.2.  GTSM Sending and Receiving Procedures for LDP Link Hello

   First, LSRs using LDP Basic Discovery [RFC5036] send LDP Hello
   messages to link-level multicast address (224.0.0.2 or "all
   routers").  Such messages are never forwarded beyond one hop and are
   RECOMMENDED to have their IP TTL or Hop Count = 1.

   Unless configured otherwise, an LSR that supports GTSM procedures
   MUST set the G flag (for GTSM) to 1 in the Common Hello Parameter TLV
   in the LDP Link Hello message [RFC5036].

   If an LSR that supports GTSM and is configured to use it recognizes
   the presence of the G flag (in the Common Hello Parameter TLV) with
   the value = 1 in the received LDP Link Hello message, then it MUST
   enforce GTSM for LDP in the subsequent TCP/LDP peering session with
   the neighbor that sent the Hello message, as specified in Section 2.3
   of this document.

   If an LSR does not recognize the presence of the G flag (in the
   Common Hello Parameter TLV of Link Hello message), or recognizes the
   presence of G flag with the value = 0, then the LSR MUST NOT enforce
   GTSM for LDP in the subsequent TCP/LDP peering session with the
   neighbor that sent the Hello message.  This ensures backward
   compatibility as well as automatic GTSM deactivation.

2.3.  GTSM Sending and Receiving Procedures for LDP Initialization

   If an LSR that has sent and received LDP Link Hello with G flag = 1
   from the directly connected neighbor, then the LSR MUST enforce GTSM
   procedures, as defined in Section 3 of [RFC5082], in the forthcoming
   TCP Transport Connection with that neighbor.  This means that the LSR
   MUST check for the incoming unicast packets' TTL or Hop Count to be
   255 for the particular LDP/TCP peering session and decide the further
   processing as per [RFC5082].

   If an LSR that has sent LDP Link Hello with G flag = 1, but received
   LDP Link Hello with G flag = 0 from the directly connected neighbor,
   then the LSR MUST NOT enforce GTSM procedures, as defined in Section
   3 of [RFC5082], in the forthcoming TCP Transport Connection with that
   neighbor.

3.  LDP Peering Scenarios and GTSM Considerations

   This section discusses GTSM considerations arising from the LDP
   peering scenarios used, including single-hop versus multi-hop LDP
   neighbors, as well as the use of LDP Basic Discovery versus Extended
   Discovery.

   The reason that the GTSM capability negotiation is enabled for Basic
   Discovery by default (i.e., G=1) but not for Extended Discovery is
   that the usage of Basic Discovery typically relates to a single-hop
   LDP peering session, whereas the usage of Extended Discovery
   typically relates to a multi-hop LDP peering session.  GTSM
   protection for multi-hop LDP sessions is outside the scope of this
   specification (see Section 1.2).  However, it is worth clarifying the
   following exceptions that may occur with Basic or Extended Discovery
   usage:

   a.  Two adjacent LSRs (i.e., back-to-back PE routers) forming a
       single-hop LDP peering session after doing an Extended Discovery
       (e.g., for Pseudowire signaling)

   b.  Two adjacent LSRs forming a multi-hop LDP peering session after
       doing a Basic Discovery, due to the way IP routing is set up
       between them (either temporarily or permanently)

   c.  Two adjacent LSRs (i.e., back-to-back PE routers) forming a
       single-hop LDP peering session after doing both Basic and
       Extended Discovery

   In the first case (a), GTSM is not enabled for the LDP peering
   session by default.  In the second case (b), GTSM is actually enabled
   by default and enforced for the LDP peering session; hence, it would
   prohibit the LDP peering session from getting established (note that
   this may impact features such as LDP IGP Synchronization [RFC5443] or
   LDP Session Protection [LDP-SPROT]).  In the third case (c), GTSM is
   enabled by default for Basic Discovery and enforced on the subsequent
   LDP peering, and is not for Extended Discovery.  However, if each LSR
   uses the same IPv4 transport address object value in both Basic and
   Extended Discoveries, then it would result in a single LDP peering
   session that would be enabled with GTSM.  Otherwise, GTSM would not
   be enforced on the second LDP peering session corresponding to the
   Extended Discovery.

   This document allows for the implementation to provide an option to
   statically (e.g., via configuration) and/or dynamically override the
   default behavior and enable/disable GTSM on a per-peer basis.  This
   would address all the exceptions listed above.

4.  Security Considerations

   This document increases the security for LDP, making it more
   resilient to off-link attacks.  Security considerations for GTSM are
   detailed in Section 5 of [RFC5082].

   As discussed in Section 3, it is possible that

   o  GTSM for LDP may not always be enforced on a single-hop LDP
      peering session, and LDP may still be susceptible to forged/
      spoofed protocol packets, if a single-hop LDP peering session is
      set up using Extended Discovery.

   o  GTSM for LDP may cause the LDP peering session to not get
      established (or may be torn down), if IP routing ever declares
      that the directly connected peer is more than one IP hop away.
      Suffice to say, use of cryptographic integrity (e.g., [RFC5925])
      is recommended as an alternate solution for detecting forged
      protocol packets (especially for the multi-hop case).

   The GTSM specification [RFC5082] says that protocol messages used for
   dynamic negotiation of GTSM support MUST be authenticated.  However,
   LDP discovery [RFC5036] uses UDP transport and does not have an
   authentication mechanism.  The GTSM specification further elaborates
   by saying that GTSM is not a substitute for authentication and does
   not secure against insider on-the-wire attacks.  LDP Basic Discovery
   uses link-level multicast address (224.0.0.2 or "all routers") that
   are never forwarded beyond the link, and this acts as a basic
   protection against off-the-wire attacks.

5.  Acknowledgments

   The authors of this document do not make any claims on the
   originality of the ideas described.  The concept of GTSM for LDP has
   been proposed a number of times and is documented in both the
   Experimental and Standards Track specifications of GTSM.  Among other
   people, we would like to acknowledge Enke Chen and Albert Tian for
   their document "TTL-Based Security Option for the LDP Hello Message".

   The authors would like to thank Loa Andersson, Bin Mo, Mach Chen,
   Vero Zheng, Adrian Farrel, Eric Rosen, Eric Gray, and Brian Weis for
   their thorough reviews and useful comments and suggestions.

6.  References

6.1.  Normative References

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

   [RFC5036]    Andersson, L., Minei, I., and B. Thomas, "LDP
                Specification", RFC 5036, October 2007.

   [RFC5082]    Gill, V., Heasley, J., Meyer, D., Savola, P., and C.
                Pignataro, "The Generalized TTL Security Mechanism
                (GTSM)", RFC 5082, October 2007.

6.2.  Informative References

   [LDP-IPV6]   Asati, R., Manral, V., Papneja, R., and C. Pignataro,
                "Updates to LDP for IPv6", Work in Progress, June 2012.

   [LDP-SPROT]  Cisco Systems, Inc., "MPLS LDP Session Protection",
                <http://www.cisco.com/en/US/docs/ios-xml/ios/mp_ldp/
                configuration/12-4m/mp-ldp-sessn-prot.html>.

   [RFC5443]    Jork, M., Atlas, A., and L. Fang, "LDP IGP
                Synchronization", RFC 5443, March 2009.

   [RFC5925]    Touch, J., Mankin, A., and R. Bonica, "The TCP
                Authentication Option", RFC 5925, June 2010.

Authors' Addresses

   Carlos Pignataro
   Cisco Systems
   7200-12 Kit Creek Road
   Research Triangle Park, NC  27709
   USA

   EMail: cpignata@cisco.com


   Rajiv Asati
   Cisco Systems
   7025-6 Kit Creek Road
   Research Triangle Park, NC  27709
   USA

   EMail: rajiva@cisco.com

ISO Plain Language

On this page
PROBLEMA router's LDP peering session is reachable from beyond its own link, so an attacker anywhere on the path can send it forged protocol messages and burn the router's CPU.
MECHANISMThe RFC adds a G flag to the Common Hello Parameters of the LDP Link Hello, so two adjacent routers can discover each other's support for the Generalized TTL Security Mechanism and then require arriving session packets to have a TTL of 255.
WHY IT MATTERSThe protection is negotiated by default, without configuration, and it keeps working with routers that do not know the flag, which simply means no protection for that peering.

§1Introduction

LDP specifies two peer discovery mechanisms, a Basic one and an Extended one, both using UDP transport. The Basic Discovery mechanism is used to discover LDP peers that are directly connected at the link level, whereas the Extended Discovery mechanism is used to locate routers that are not directly connected at the link level. Once discovered, the neighbours can establish the LDP peering session over a TCP transport connection.

The Generalized TTL Security Mechanism is a mechanism based on IPv4 Time To Live or IPv6 Hop Limit value verification, so as to provide a simple and reasonably robust defence from infrastructure attacks using forged protocol packets from outside the network. GTSM can be applied to any protocol peering session that is established between routers that are adjacent, and therefore it can protect an LDP protocol peering session established using Basic Discovery.

This document specifies LDP enhancements to accommodate GTSM: the Common Hello Parameters TLV of the LDP Link Hello message, the sending and receiving procedures for that message, and the sending and receiving procedures for the LDP Initialization message.

GTSM says it should not be enabled by default in order to remain backward compatible with the unmodified protocol. This document instead specifies a built-in dynamic GTSM capability negotiation for LDP, so that the desire to use GTSM, that is its negotiation mechanics, is enabled by default without any configuration. GTSM is used as specified provided both peers on an LDP session can detect each other's support for it and agree to use it. The document uses a bit reserved in the LDP specification and therefore updates it.

Two routers introduce themselves to their neighbours with a UDP message, then open a TCP session for the label protocol itself. This RFC makes that introduction say, one more thing: do I support checking the TTL on the session that follows?

THE PIECES OF LDP PEERING THIS RFC TOUCHES
  • Basic discoveryFinds LDP peers that are directly connected at the link level, using UDP.
  • Extended discoveryFinds routers that are not directly connected, so the peering can span several hops.
  • The peering sessionOnce discovered, the neighbours set up the LDP session over a TCP transport connection.
  • GTSMChecks the TTL or hop limit of arriving packets, which is only 255 if the packet came straight from the neighbour.

§1.2Scope

This document defines procedures for LDP using IPv4 routing but not for LDP using IPv6 routing, since the latter has GTSM built into the protocol definition.

Additionally, the GTSM for LDP specified here applies only to single-hop LDP peering sessions and not to multi-hop LDP peering sessions. Consequently, any LDP method or feature that relies on multi-hop LDP peering sessions would not work with GTSM and would require, statically or dynamically, disabling the GTSM capability. Two examples named are LDP IGP Synchronization and LDP Session Protection.

Two limits. It is for IPv4 routing, because the IPv6 version of the protocol already does this. And it only works between routers that are really next to each other, so features that need a peering across several routers cannot use it.

§2.1The G Flag in the Common Hello Parameters

A new flag in the Common Hello Parameters TLV, named the G flag for GTSM, is defined by this document in a previously reserved bit. A router indicates that it is capable of applying GTSM procedures to the subsequent LDP peering session by setting the GTSM flag to 1.

The T flag, for Targeted Hello, and the R flag, for Request Send Targeted Hellos, are as already specified in the LDP document. The G flag has a value of 1 to specify that this router supports GTSM procedures, and a value of 0 to specify that it does not. The reserved field must be set to zero on transmission and ignored on receipt.

The G flag is meaningful only if the T flag is set to 0, which must be the case for Basic Discovery; otherwise the value of the G flag is ignored on receipt. Any router that does not recognize the G flag continues to ignore it, independent of the values of the T and R flags. Similarly, a router that recognizes the G flag but does not support GTSM, either because it is not implemented or because it is configured that way, would not set the G flag when sending LDP Link Hellos and would effectively ignore the G flag when receiving them.

One bit in the hello message says whether the sender is willing to do the TTL check. It only counts when the hello was not targeted at one particular router, which is the case for the link-wide discovery that this scheme is built on.

THE COMMON HELLO PARAMETERS TLV WITH THE G FLAG
Common Hello Parameters TLV
FieldNameSizeValueDescription
TYPECommon Hello Parms type2 bytes0x04000x0400, preceded by two zero bits.
LENGTHLength2 bytesLength of the TLV value.
HOLD-TIMEHold Time2 bytesThe hold time of the LDP session.
T-FLAGT (Targeted Hello)1 bitsAs specified in the LDP document.
R-FLAGR (Request Send Targeted Hellos)1 bitsAs specified in the LDP document.
G-FLAGG (GTSM)1 bits1 means this router supports GTSM procedures, 0 means it does not.
RESERVEDReserved13 bitsMust be set to zero on transmission and ignored on receipt.

§2.2Hello and Initialization Procedures

First, routers using LDP Basic Discovery send LDP Hello messages to the link-level multicast address 224.0.0.2, or all routers. Such messages are never forwarded beyond one hop and are recommended to have their IP TTL or hop count set to 1.

Unless configured otherwise, a router that supports GTSM procedures must set the G flag to 1 in the Common Hello Parameters TLV in the LDP Link Hello message. If such a router, configured to use GTSM, recognizes the presence of the G flag with a value of 1 in a received LDP Link Hello message, then it must enforce GTSM for LDP in the subsequent TCP and LDP peering session with the neighbour that sent the hello. If a router does not recognize the presence of the G flag, or recognizes it with a value of 0, then it must not enforce GTSM in the subsequent peering session with that neighbour. This ensures backward compatibility as well as automatic GTSM deactivation.

If a router has sent and received an LDP Link Hello with the G flag set to 1 from the directly connected neighbour, then it must enforce GTSM procedures in the forthcoming TCP transport connection with that neighbour. This means that it must check for the incoming unicast packets' TTL or hop count to be 255 for that particular LDP and TCP peering session, and decide the further processing as the GTSM document specifies. If a router sent the Link Hello with the G flag set to 1 but received one with the G flag set to 0, then it must not enforce GTSM in the forthcoming connection.

Both ends say yes in their hello messages, and both then insist that every packet on the session has a TTL of exactly 255. If either end does not say yes, neither enforces the check, so an old router simply gets an unprotected session.

NEGOTIATING AND THEN ENFORCING GTSM
Router ARouter B
  1. LDP Link Hello, G = 1Sent to the all-routers multicast address, with a TTL of 1.
  2. LDP Link Hello, G = 1Both ends advertise that they support GTSM.
  3. LDP InitializationThe TCP connection is set up for the peering session.
  4. LDP Initialization
  5. LDP session messages, TTL 255GTSM is enforced: arriving unicast packets must have a TTL of 255.

§3Peering Scenarios and GTSM Considerations

The GTSM capability negotiation is enabled by default for Basic Discovery, that is with the G flag set to 1, but not for Extended Discovery, because Basic Discovery typically relates to a single-hop LDP peering session whereas Extended Discovery typically relates to a multi-hop one. GTSM protection for multi-hop LDP sessions is outside the scope of the specification. Three exceptions are worth clarifying.

In the first case, two adjacent routers forming a single-hop LDP peering session after doing an Extended Discovery, for example for pseudowire signalling, GTSM is not enabled for the LDP peering session by default. In the second case, two adjacent routers forming a multi-hop LDP peering session after doing a Basic Discovery, because of the way IP routing is set up between them, either temporarily or permanently, GTSM is actually enabled by default and enforced for the LDP peering session, and it would prohibit that session from being established. In the third case, two adjacent routers forming a single-hop LDP peering session after doing both Basic and Extended Discovery, GTSM is enabled by default for Basic Discovery and enforced on the subsequent LDP peering, and is not for Extended Discovery. However, if each router uses the same IPv4 transport address object value in both discoveries, the result is a single LDP peering session that is enabled with GTSM; otherwise GTSM is not enforced on the second peering session corresponding to the Extended Discovery.

The document allows an implementation to provide an option to statically, for example by configuration, and dynamically override the default behaviour and enable or disable GTSM on a per-peer basis, which would address all the exceptions listed above.

The rule is simple but the world is not. If two routers discover each other over the link but their traffic actually crosses more than one hop, the TTL check will fail and the session will not form. That is why the RFC allows an operator to switch the behaviour off for a particular neighbour.

WHAT GTSM DOES IN EACH PEERING SCENARIO
ScenarioGTSM by default
Single-hop session after Basic DiscoveryEnabled and enforced
Single-hop session after Extended DiscoveryNot enabled
Multi-hop session after Basic DiscoveryEnabled and enforced, which prevents the session from forming
Single-hop session after both Basic and Extended DiscoveryEnabled for the Basic Discovery session, and for the Extended one only if the same transport address is used

§4Security Considerations

This document increases the security for LDP, making it more resilient to off-link attacks. The security considerations for GTSM itself are detailed in the GTSM document.

Two limitations are recorded. GTSM for LDP may not always be enforced on a single-hop LDP peering session, and LDP may still be susceptible to forged or spoofed protocol packets, if a single-hop peering session is set up using Extended Discovery. And GTSM for LDP may cause the LDP peering session not to be established, or to be torn down, if IP routing ever declares that the directly connected peer is more than one IP hop away. Cryptographic integrity is recommended as an alternate solution for detecting forged protocol packets, especially for the multi-hop case.

The GTSM specification says that protocol messages used for dynamic negotiation of GTSM support must be authenticated. LDP discovery, however, uses UDP transport and does not have an authentication mechanism. The GTSM specification further says that GTSM is not a substitute for authentication and does not secure against insider on-the-wire attacks. LDP Basic Discovery uses the link-level multicast address 224.0.0.2, whose messages are never forwarded beyond the link, and this acts as a basic protection against off-the-wire attacks.

The check is a useful filter against attackers outside the network, but it is not authentication: the hello messages that agree to use it are not themselves protected, and someone already on the wire is not stopped. For peers that are not really adjacent, a cryptographic check is the better answer.

WHAT THE TTL CHECK DOES AND DOES NOT BUY
  • It filters off-link attacksForged packets that did not come from the neighbour's interface have a lower TTL and are discarded.
  • It is not authenticationThe hello messages that agree to use GTSM are not themselves protected, and the GTSM document says GTSM does not secure against insider attacks.
  • It can break a sessionIf routing ever says the neighbour is more than one hop away, the session fails to form or is torn down.
  • It does not cover every peeringA single-hop session set up with Extended Discovery is not protected at all.
  • Use cryptography where it mattersFor multi-hop peers, cryptographic integrity is the recommended alternative.

§7References