One document matched: draft-ietf-karp-routing-tcp-analysis-04.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<rfc category="info" docName="draft-ietf-karp-routing-tcp-analysis-04.txt"
ipr="trust200902">
<front>
<title abbrev="BGP, LDP, PCEP and MSDP Analysis">Analysis of BGP, LDP,
PCEP and MSDP Issues According to KARP Design Guide</title>
<author fullname="Mahesh Jethanandani" initials="M."
surname="Jethanandani">
<organization>Ciena Corporation</organization>
<address>
<postal>
<street>1741 Technology Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95110</code>
<country>USA</country>
</postal>
<phone>+ (408) 436-3313</phone>
<email>mjethanandani@gmail.com</email>
</address>
</author>
<author fullname="Keyur Patel" initials="K." surname="Patel">
<organization>Cisco Systems, Inc</organization>
<address>
<postal>
<street>170 Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>USA</country>
</postal>
<phone>+1 (408) 526-7183</phone>
<email>keyupate@cisco.com</email>
</address>
</author>
<author fullname="Lianshu Zheng" initials="L." surname="Zheng">
<organization>Huawei</organization>
<address>
<postal>
<street>No. 3 Xinxi Road, Hai-Dian District</street>
<city>Beijing</city>
<region></region>
<code>100085</code>
<country>China</country>
</postal>
<phone>+86 (10) 82882008</phone>
<facsimile></facsimile>
<email>verozheng@huawei.com</email>
<uri></uri>
</address>
</author>
<date day="6" month="July" year="2012" />
<area>Network</area>
<workgroup>Routing Working Group</workgroup>
<keyword>Internet-Draft</keyword>
<abstract>
<t>This document analyzes BGP, LDP, PCEP and MSDP according to
guidelines set forth in section 4.2 of <xref target="RFC6518">Keying and
Authentication for Routing Protocols Design Guidelines </xref>.</t>
<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">RFC 2119</xref>..</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>In March 2006 the Internet Architecture Board (IAB) in its "Unwanted
Internet Traffic" workshop documented in <xref target="RFC4948">Report
from the IAB workshop on Unwanted Traffic March 9-10, 2006</xref>
described an attack on core routing infrastructure as an ideal attack
with the most amount of damage. Four main steps were identified for that
tightening:</t>
<t><list style="numbers">
<t>Create secure mechanisms and practices for operating routers.</t>
<t>Clean up the Internet Routing Registry [IRR] repository, and
securing both the database and the access, so that it can be used
for routing verifications.</t>
<t>Create specifications for cryptographic validation of routing
message content.</t>
<t>Secure the routing protocols' packets on the wire.</t>
</list></t>
<t>This document looking at the last bullet performs an initial analysis
of the current state of BGP, LDP, PCEP and MSDP according to the
requirements of <xref target="RFC6518">KARP Design Guidelines </xref>.
This draft builds on several previous analysis efforts into routing
security. The OPSEC working group published <xref
target="RFC6039">Issues with existing Cryptographic Protection Methods
for Routing Protocols </xref> an analysis of cryptographic issues with
routing protocols and <xref
target="draft-ietf-karp-ospf-analysis-03">Analysis of OSPF Security
According to KARP Design Guide</xref>.</t>
<t>Section 2 of this document looks at the current state of security for
the four routing protocols. Section 3 examines what the optimal state
would be for the four routing protocols according to <xref
target="RFC6518">KARP Design Guidelines </xref> and Section 4 does a
analysis of the gap between the existing state and the optimal state of
the protocols and suggests some areas where improvement is needed.</t>
<section title="Contributing Authors">
<t>Anantha Ramaiah, Mach Chen</t>
</section>
<section title="Abbreviations">
<t>BGP - Border Gateway Protocol</t>
<t>DoS - Denial of Service</t>
<t>KARP - Key and Authentication for Routing Protocols</t>
<t>KDF - Key Derivation Function</t>
<t>KEK - Key Encrypting Key</t>
<t>KMP - Key Management Protocol</t>
<t>LDP - Label Distribution Protocol</t>
<t>LSR - Label Switch Routers</t>
<t>MAC - Message Authentication Code</t>
<t>MKT - Master Key Tuple</t>
<t>MSDP - Multicast Source Distribution Protocol</t>
<t>MD5 - Message Digest algorithm 5</t>
<t>OSPF - OPen Shortest Path First</t>
<t>PCEP - Path Computation Element Protocol</t>
<t>TCP - Transmission Control Protocol</t>
<t>UDP - User Datagram Protocol</t>
</section>
</section>
<section title="Current State of BGP, LDP, PCEP and MSDP">
<t>This section looks at the current state of transport protocol and any
authentication mechanisms used by the protocol. It describes the current
security mechanisms if any used by BGP, LDP, PCEP and MSDP.</t>
<section title="Transport layer">
<t>At a transport layer, routing protocols are subject to a variety of
DoS attacks as outlined in <xref target="RFC4732">Internet
Denial-of-Service Considerations</xref>. Such attacks can cause the
routing protocol to become congested with the result that routing
updates are supplied too slowly to be useful. In extreme cases, these
attacks prevent routes from converging after a change.</t>
<t>Routing protocols use several methods to protect themselves. Those
that use TCP as a transport protocol use access lists to accept
packets only from known sources. These access lists also help protect
edge routers from attacks originating from outside the protected
domain. In addition for edge routers running eBGP, TCP LISTEN is run
only on interfaces on which its peers have been discovered or via
which routing sessions are expected (as specified in router
configuration databases).</t>
<t><xref target="RFC5082">GTSM</xref> describes a generalized Time to
Live (TTL) security mechanism to protect a protocol stack from
CPU-utilization based attacks.<xref target="RFC5961"> TCP
Robustness</xref> recommends some TCP level mitigations against
spoofing attacks targeted towards long-lived routing protocol
sessions.</t>
<t>Even when BGP, LDP, PCEP and MSDP sessions use access lists they
are subject to spoofing and man in the middle attacks. Authentication
and integrity checks allow the receiver of a routing protocol update
to know that the message genuinely comes from the node that purports
to have sent it, and to know whether the message has been modified.
Sometimes routers can be subjected to a large number of authentication
and integrity requests, exhausting connection resources on the router
in a way that deny genuine requests.</t>
<t><xref target="RFC2385">TCP MD5</xref> deprecated, but widely used,
specifies a mechanism to protect BGP and other TCP based routing
protocols via the TCP MD5 option. TCP MD5 option provides a way for
carrying an MD5 digest in a TCP segment. This digest acts like a
signature for that segment, computed using information known only to
the connection end points. The MD5 key used to compute the digest is
stored locally on the router. This option is used by routing protocols
to provide for session level protection against the introduction of
spoofed TCP segments into any existing TCP streams, in particular TCP
Reset segments. TCP MD5 does not provide a generic mechanism to
support key roll-over.</t>
<t>The Message Authentication Codes (MACs) used by the TCP MD5 option
is considered too weak both because of the use of the hash function
and because of the way the secret key used by TCP MD5 is managed.
<xref target="RFC5925">TCP-AO </xref> and its companion document <xref
target="RFC5926">Crypto Algorithms for TCP-AO</xref> describe steps
towards correcting both the MAC weakness and the management of secret
keys. For MAC it specifies two MAC algorithms that MUST be supported.
They are HMAC-SHA-1-96 as specified in <xref
target="RFC2104">HMAC</xref> and AES-128-CMAC-96 as specified in <xref
target="NIST-SP800-38B">NIST-SP800-38B</xref>. Cryptographic research
suggests that both these MAC algorithms defined are fairly secure.
TCP-AO allows additional MACs to be added in the future.</t>
</section>
<section title="Keying mechanisms">
<t>For <xref target="RFC5925">TCP-AO</xref> there is no Key Management
Protocol (KMP) used to manage the keys that are employed to generate
the Message Authentication Code (MAC). TCP-AO allows for a master key
to be configured manually or for it to be managed via a out of band
mechanism. </t>
<t>It should be noted that most routers configured with static keys
have not seen the key changed ever. The common reason given for not
changing the key is the difficulty in coordinating the change between
pairs of routers when using TCP MD5. It is well known that longer the
same key is used, higher is the chance that it can be guessed or
exposed e.g. when an administrator with knowledge of the keys leaves
the company.</t>
<t>For point-to-point key management <xref
target="RFC5996">IKEv2</xref> provides for automated key exchange
under a SA and can be used for a comprehensive Key Management Protocol
(KMP) solution.</t>
</section>
<section title="LDP">
<t>Section 5 of <xref target="RFC5036">LDP</xref> states that LDP is
subject to two different types of attacks: spoofing, and denial of
service attacks. In addition, labels are distributed in the clear,
enabling hackers to see what labels are being exchanged that could
then be used to launch an attack.</t>
<section title="Spoofing attacks">
<t>A spoofing attack against LDP can occur both during the discovery
phase and during the session communication phase.</t>
<section title="Discovery exchanges using UDP">
<t>Label Switching Routers (LSRs) indicate their willingness to
establish and maintain LDP sessions by periodically sending Hello
messages. Receipt of a Hello message serves to create a new "Hello
adjacency", if one does not already exist, or to refresh an
existing one.</t>
<t>Unlike all other LDP messages, the Hello messages are sent
using UDP. This means that they cannot benefit from the security
mechanisms available with TCP. <xref target="RFC5036">LDP</xref>
does not provide any security mechanisms for use with Hello
messages except for some configuration which may help protect
against bogus discovery events. These configurations include
directly connected links and interfaces. Routers that do not use
directly connected links have to use Extended Hello messages.</t>
<t>Spoofing a Hello packet for an existing adjacency can cause the
adjacency to time out and result in termination of the associated
session. This can occur when the spoofed Hello message specifies a
small Hold Time, causing the receiver to expect Hello messages
within this interval, while the true neighbor continues sending
Hello messages at the lower, previously agreed to frequency.</t>
<t>Spoofing a Hello packet can also cause the LDP session to be
terminated. This can occur when the spoofed Hello specifies a
different Transport Address from the previously agreed one between
neighbors. Spoofed Hello messages are observed and reported as
real problem in production networks.</t>
</section>
<section title="Session communication using TCP">
<t>LDP like other TCP based routing protocols specifies use of the
TCP MD5 Signature Option to provide for the authenticity and
integrity of session messages. As stated above, MD5 authentication
is considered too weak for this application. A stronger hashing
algorithm e.g SHA1, which is supported by <xref
target="RFC5925">TCP-AO</xref> could be deployed to take care of
the weakness.</t>
<t>Alternatively, one could move to using TCP-AO which provides
for stronger MACs, makes it easier to setup manual keys and
protects against replays.</t>
</section>
</section>
<section title="Privacy Issues">
<t>LDP provides no mechanism for protecting the privacy of label
distribution. The security requirements of label distribution are
similar to other routing protocols that need to distribute routing
information and as such LDP is vulnerable to the same extent as
other routing protocols that distribute their routing information in
the clear.</t>
</section>
<section title="Denial of Service Attacks">
<t>LDP is subject to Denial of Service (DoS) attacks both in its
discovery mode and in session mode.</t>
<t>The discovery mode attack is similar to the spoofing attack
except that when the spoofed Hello messages are sent with a high
enough frequency, it can cause the adjacency to time out.</t>
</section>
</section>
<section title="PCEP">
<t>Attacks on <xref target="RFC5440">PCEP</xref> may result in damage
to active networks. These include computation responses, which if
changed can cause protocols like LDP to setup sub-optimal or
inappropriate LSPs. In addition, PCE itself can be attacked by a
variety of DoS attacks. Such attacks can cause path computations to be
supplied too slowly to be of any value particularly as it relates to
recovery or establishment of LSPs.</t>
<t>As the RFC states, PCEP could be the target of the following
attacks.</t>
<t><list style="symbols">
<t>Spoofing (PCC or PCE implementation)</t>
<t>Snooping (message interception)</t>
<t>Falsification</t>
<t>Denial of Service</t>
</list>According to the RFC, inter-AS scenarios when PCE-to-PCE
communication is required, attacks may be particularly significant
with commercial as well as service-level implications.</t>
<t>Additionally, snooping of PCEP requests and responses may give an
attacker information about the operation of the network. By viewing
the PCEP messages an attacker can determine the pattern of service
establishment in the network and can know where traffic is being
routed, thereby making the network susceptible to targeted attacks and
the data within specific LSPs vulnerable.</t>
<t>Ensuring PCEP communication privacy is of key importance,
especially in an inter-AS context, where PCEP communication end-points
do not reside in the same AS. An attacker that intercepts a PCE
message could obtain sensitive information related to computed paths
and resources.</t>
</section>
<section title="MSDP">
<t>Similar to BGP and LDP, MSDP uses <xref target="RFC2385">TCP
MD5</xref> to protect TCP sessions via the TCP MD5 option. But with a
weak MD5 authentication, TCP MD5 is not considered strong enough for
this application.</t>
<t>MSDP also advocates imposing a limit on number of source address
and group addresses (S,G) that can be stored within the protocol and
thereby mitigate state explosion due to any denial of service and
other attacks.</t>
</section>
</section>
<section title="Optimal State for BGP, LDP, PCEP, and MSDP">
<t>The ideal state for BGP, LDP, PCEP and MSDP protocols are when they
can withstand any of the known types of attacks.</t>
<t>Additionally, Key Management Protocol (KMP) for the routing sessions
should help negotiate unique, pair wise random keys without
administrator involvement. It should also negotiate Security Association
(SA) parameter required for the session connection, including key life
times. It should keep track of those lifetimes and negotiate new keys
and parameters before they expire and do so without administrator
involvement. In the event of a breach, including when an administrator
with knowledge of the keys leaves the company, the keys should be
changed immediately.</t>
<t>The DoS attacks for BGP, LDP, PCEP and MSDP are attacks to the
transport protocol, TCP for the most part and UDP in case of discovery
phase of LDP. TCP and UDP should be able to withstand any of DoS
scenarios by dropping packets that are attack packets in a way that does
not impact legitimate packets.</t>
<t>The routing protocols should provide a mechanism to authenticate the
routing information carried within the payload.</t>
<section title="LDP">
<t>For spoofing attacks that LDP is vulnerable to during the discovery
phase, LDP should be able to determine the authenticity of the
neighbors sending the Hello message.</t>
<t>There is currently no requirement to protect the privacy of label
distribution as labels are carried in the clear like other routing
information.</t>
</section>
</section>
<section title="Gap Analysis for BGP, LDP, PCEP and MSDP">
<t>This section outlines the differences between the current state of
the routing protocol and the desired state as outlined in section 4.2 of
<xref target="RFC6518">KARP Design Guidelines </xref>. As that document
states, these routing protocols fall into the category of one-to-one
peering messages and will use peer keying protocol. It covers issues
that are common to the four protocols in this section, leaving protocol
specific issues to sub-sections.</t>
<t>At a transport level the routing protocols are subject to some of the
same attacks that TCP applications are subject to. These include DoS and
spoofing attacks. <xref target="RFC4732">Internet Denial-of-Service
Considerations</xref> outlines some solutions. <xref
target="RFC4953">Defending TCP Against Spoofing Attacks</xref>
recommends ways to prevent spoofing attacks. In addition <xref
target="RFC5961"> Improving TCP's Robustness to Blind In-Window
Attacks.</xref> should also be followed and implemented to strengthen
TCP.</t>
<t>From a security perspective there is lack of comprehensive KMP. As an
example <xref target="RFC5925">TCP-AO</xref>, talks about coordinating
keys derived from MKT between endpoints, but the MKT itself has to be
configured manually or through a out of band mechanism. Also TCP-AO does
not address the issue of connectionless reset, as it applies to routers
that do not store MKT across reboots.</t>
<t>Authentication, tamper protection, and encryption all require the use
of keys by sender and receiver. An automated KMP therefore has to
include a way to distribute MKT between two end points with little or no
administration overhead. It has to cover automatic key rollover. It is
expected that authentication will cover the packet, i.e. the payload and
the TCP header and will not cover the frame i.e. the link layer 2
header.</t>
<t>There are two methods of automatic key rollover. Implicit key
rollover can be initiated after certain volume of data gets exchanged or
when a certain time has elapsed. This does not require explicit
signaling nor should it result in a reset of the TCP connection in a way
that the links/adjacencies are affected. On the other hand, explicit key
rollover requires a out of band key signaling mechanism. It can be
triggered by either side and can be done anytime a security parameter
changes e.g. an attack has happened, or a system administrator with
access to the keys has left the company. An example of this is <xref
target="RFC5996">IKEv2</xref> but it could be any other new mechanisms
also.</t>
<t>As stated earlier <xref target="RFC5925">TCP-AO</xref> and its
accompanying document <xref target="RFC5926">Crypto Algorithms for
TCP-AO </xref> suggest that two MAC algorithms that MUST be supported
are HMAC-SHA-1-96 as specified in <xref target="RFC2104">HMAC</xref> and
AES-128-CMAC-96 as specified in <xref
target="NIST-SP800-38B">NIST-SP800-38B</xref>.</t>
<t>There is a need to protect authenticity and validity of the
routing/label information that is carried in the payload of the
sessions. However, that is outside the scope of this document at this
time and is being addressed by SIDR WG. Similar mechanisms could be used
for intra-domain protocols.</t>
<section title="LDP">
<t>As described in <xref target="RFC5036">LDP</xref>, the threat of
spoofed Basic Hellos can be reduced by accepting Basic Hellos on
interfaces that LSRs trust, employing <xref
target="RFC5082">GTSM</xref> and ignoring Basic Hellos not addressed
to the "all routers on this subnet" multicast group. Spoofing attacks
via Extended Hellos are potentially a more serious threat. An LSR can
reduce the threat of spoofed Extended Hellos by filtering them and
accepting Hellos from sources permitted by an access lists. However,
performing the filtering using access lists requires LSR resource, and
the LSR is still vulnerable to the IP source address spoofing.
Spoofing attacks can be solved by being able to authenticate the Hello
messages, and an LSR can be configured to only accept Hello messages
from specific peers when authentication is in use.</t>
<t><xref target="draft-zheng-mpls-ldp-hello-crypto-auth-04">LDP Hello
Cryptographic Authentication</xref> suggest a new Cryptographic
Authentication TLV that can be used as an authentication mechanism to
secure Hello messages.</t>
</section>
<section title="PCEP">
<t>PCE discovery according to its RFC is a significant feature for the
successful deployment of PCEP in large networks. This mechanism allows
a PCC to discover the existence of suitable PCEs within the network
without the necessity of configuration. It should be obvious that,
where PCEs are discovered and not configured, the PCC cannot know the
correct key to use. There are different approaches to retain some
aspect of security, but all of them require use of a keys and a keying
mechanism, the need for which has been discussed above.</t>
</section>
</section>
<section title="Transition and Deployment Considerations">
<t>As stated in <xref target="RFC6518">KARP Design Guidelines</xref> it
is imperative that the new authentication and security mechanisms
defined support incremental deployment, as it is not feasible to deploy
the new routing protocol authentication mechanism overnight.</t>
<t>Typically authentication and security in a peer-to-peer protocol
requires that both parties agree to the mechanisms that will be used. If
an agreement is not reached the setup of the new mechanism will fail or
will be deferred. Upon failure, the routing protocols can fallback to
the mechanisms that were already in place e.g. use static keys if that
was the mechanism in place. It is usually not possible for one end to
use the new mechanism while the other end uses the old. Policies can be
put in place to retry upgrading after a said period of time, so a manual
coordination is not required.</t>
<t>If the automatic KMP requires use of public/private keys to exchange
key material, the required CA root certificates may need to be installed
to verify authenticity of requests initiated by a peer. Such a step does
not require coordination with the peer except to decide what CA
authority will be used.</t>
</section>
<section title="Security Requirements">
<t>This section describes requirements for BGP, LDP, PCEP and MSDP
security that should be met within the routing protocol.</t>
<t>As with all routing protocols, they need protection from both on-path
and off-path blind attacks. A better way to protect them would be with
per-packet protection using a cryptographic MAC. In order to provide for
the MAC, keys are needed.</t>
<t>Once keys are used, mechanisms are required to support key rollover.
This should cover both manual and automatic key rollover. Multiple
approaches could be used. However since the existing mechanisms provide
a protocol field to identify the key as well as management mechanisms to
introduce and retire new keys, focusing on the existing mechanism as a
starting point is prudent.</t>
<t>Finally, replay protection is required. The replay mechanism needs to
be sufficient to prevent an attacker from creating a denial of service
or disrupting the integrity of the routing protocol by replaying
packets. It is important that an attacker not be able to disrupt service
by capturing packets and waiting for replay state to be lost.</t>
</section>
<section title="Acknowledgements">
<t>We would like to thank Brian Weis for encouraging us to write this
draft and providing comments on it.</t>
</section>
</middle>
<back>
<references title="Normative References">
<reference anchor="draft-ietf-karp-threats-reqs">
<front>
<title>KARP Threats and Requirements</title>
<author fullname="Gregory M. Lebovitz" initials="G"
surname="Lebovitz">
<organization>Juniper Networks, Inc</organization>
</author>
<author fullname="Manav Bhatia" initials="M" surname="Bhatia">
<organization>Alcatel-Lucent</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<phone></phone>
<facsimile></facsimile>
<email></email>
<uri></uri>
</address>
</author>
<date day="09" month="March" year="2012" />
</front>
</reference>
<?rfc include='reference.RFC.6518'?>
<?rfc include="reference.RFC.2385"?>
<?rfc include='reference.RFC.5926'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.2104'
?>
<?rfc include='reference.RFC.2119'
?>
<?rfc include='reference.RFC.2409'?>
<?rfc include='reference.RFC.3547'?>
<?rfc include="reference.RFC.4271"
?>
<?rfc include='reference.RFC.4732'?>
<?rfc include='reference.RFC.4948'?>
<?rfc include='reference.RFC.4953'?>
<?rfc include="reference.RFC.5036"
?>
<?rfc include='reference.RFC.5082'?>
<?rfc include='reference.RFC.5440'?>
<?rfc include='reference.RFC.5925'?>
<?rfc include='reference.RFC.5961'?>
<?rfc include='reference.RFC.5996'?>
<?rfc include='reference.RFC.6039'?>
<reference anchor="draft-ietf-karp-ospf-analysis-03">
<front>
<title>Analysis of OSPF Security According to KARP Design
Guide</title>
<author fullname="Sam Hartman" initials="S" surname="Hartman">
<organization></organization>
</author>
<date day="12" month="March" year="2012" />
</front>
</reference>
<reference anchor="NIST-SP800-38B">
<front>
<title>Recommendation for Block Cipher Modes of Operation: The CMAC
Mode for Authentication</title>
<author fullname="Morris Dworking" surname="Dworking">
<organization>National Institute of Standards and
Technology</organization>
</author>
<date month="May" year="2005" />
</front>
</reference>
<reference anchor="draft-zheng-mpls-ldp-hello-crypto-auth-04">
<front>
<title>LDP Hello Cryptographic Authentication</title>
<author fullname="Lianshu Zheng" surname="Zheng">
<organization>Huawei Technologies, Ltd</organization>
</author>
<date day="10" month="May" year="2012" />
</front>
</reference>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 17:41:45 |