Internet DRAFT - draft-etienne-ripv2-auth-flaws

draft-etienne-ripv2-auth-flaws





Network Working Group                                         J. Etienne
Internet-Draft                                                  May 2001
Expires: October 30, 2001                                               


                 Flaws in RIPv2 packet's authentication
                 draft-etienne-ripv2-auth-flaws-00.txt

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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 October 30, 2001.

Copyright Notice

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

Abstract

   The current strongest authentication method for RIPv2 (RFC2453[6])
   is the MD5 authentication (RFC2082[5]) which uses shared secret key
   to authenticate the packets. This memo explains the different
   security flaws we found in the anti-replay and the MACs calculation.
   The second part presents practical exploitations of these
   weaknesses: an attacker directly connected to a link, can (i)  
   break neighborhood, (ii)  flap routes and (iii) inject obsolete
   routes. 







Etienne                 Expires October 30, 2001                [Page 1]

Internet-Draft         RIPv2 authentication flaws               May 2001


Table of Contents

   1.    Threat model . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.    Current authentications  . . . . . . . . . . . . . . . . . .  4
   2.1   Description  . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.2   Anti Replay Protection . . . . . . . . . . . . . . . . . . .  5
   2.2.1 a timestamp as sequence number . . . . . . . . . . . . . . .  5
   2.2.2 a counter as sequence number . . . . . . . . . . . . . . . .  5
   2.3   MAC calculation  . . . . . . . . . . . . . . . . . . . . . .  6
   2.3.1 secret-suffix method . . . . . . . . . . . . . . . . . . . .  6
   2.3.2 Unprotected IP header  . . . . . . . . . . . . . . . . . . .  6
   2.3.3 Unprotected UDP header . . . . . . . . . . . . . . . . . . .  6
   2.4   Summary  . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   3.    Exploits . . . . . . . . . . . . . . . . . . . . . . . . . .  8
   3.1   breaking neighborhood  . . . . . . . . . . . . . . . . . . .  8
   3.1.1 Higher sequence number . . . . . . . . . . . . . . . . . . .  8
   3.2   Route flapping . . . . . . . . . . . . . . . . . . . . . . .  8
   3.2.1 route flapping by repeatdely breaking the neighborhood . . .  9
   3.2.2 route flapping thanks to poisoned reverse  . . . . . . . . .  9
   3.3   Inject obsolete routes . . . . . . . . . . . . . . . . . . .  9
   3.3.1 higher sequence number . . . . . . . . . . . . . . . . . . . 10
   3.3.2 lower sequence number  . . . . . . . . . . . . . . . . . . . 10
   4.    Security considerations  . . . . . . . . . . . . . . . . . . 11
         References . . . . . . . . . . . . . . . . . . . . . . . . . 12
         Author's Address . . . . . . . . . . . . . . . . . . . . . . 12
         Full Copyright Statement . . . . . . . . . . . . . . . . . . 13

























Etienne                 Expires October 30, 2001                [Page 2]

Internet-Draft         RIPv2 authentication flaws               May 2001


1. Threat model

   In this memo, we assume the attacker can read and write packets on
   the network link. He hasn't the secret key and he is unable to
   produce a valid MAC without it.

   If the attacker knows the secret key of a link, he becomes an
   insider and the security of the whole routing domain is compromised.
   Resisting to insider's attacks requires deep modifications of the
   protocol and it is outside the scope of this memo.









































Etienne                 Expires October 30, 2001                [Page 3]

Internet-Draft         RIPv2 authentication flaws               May 2001


2. Current authentications

   The RIPv2's authentication is configured on a per-interface basis.
   Each router connected to a given link shares the same parameters
   (i.e. key value, key lifetime and authentication algorithm). RIP has
   3 authentication methods:

   1.  The NULL authentication which doesnt authenticate the packet.

   2.  The Simple password authentication (RFC2453.4.1[6]) uses a
       password sent in clear in each packet. If the attacker can read
       the packets, he has the password and can freely forge new
       packets.

   3.  The MD5 authentication(RFC2082[5]) which uses a shared secret
       key to include a MAC in each packet. 

   Because the null and the simple password authentication are already
   known to be weak, we focus on the MD5 authentication.

2.1 Description

   The MD5 authentication provides a secure way to authenticate the
   packet's generator as a key owner and some protections against
   packet's replay. The packets include a Message Authentication
   Code(MAC) calculated with the secret suffix method using MD5
   (RFC1321[3]). The MAC is obtained by applying MD5 over the payload
   and, then, the secret key : MAC = MD5( RIP payload | secret key ).
   An external attacker can't generate a valid MAC because we assume it
   ignores the secret key and it is believed to be infeasible to
   recompute the key from the MAC and the packet. 

   The anti-replay is handled by a sequence number set in sent packets
   and verified during packet reception. The sequence number must be
   non-decreasing and is suggested to be a counter, or a timestamp
   (RFC2082.3.2.1[5]). A received packet is accepted only if its
   sequence number is greater or equal to the last one accepted from
   the same source. 

   In brief, when a router sends a packet, it sets the sequence number,
   stores it in a routing entry with a special address family for
   compatibility reason(RFC2453.5.2[6]), then computes the MAC and
   appends it to the packet. When a router receives a packet, it is
   accepted only if the MAC and the sequence number are valid.
   Unfortunately, the MD5 authentication has flaws in the anti-replay,
   the MAC algorithm, and the MAC coverage. 





Etienne                 Expires October 30, 2001                [Page 4]

Internet-Draft         RIPv2 authentication flaws               May 2001


2.2 Anti Replay Protection

   The following features of the MD5 authentication allow a packet to
   be replayed: 

   o  A received packet is accepted if its sequence number is greater
      than or equal to the previous one (RFC2082.3.2.2[5]). For
      example, a packet can be replayed just after itself.

   o  The sequence numbers can be reused after a roll over or a boot
      (e.g. a packet counter RFC2082.3.2.1[5]).

   o  The keying is static and the sequence numbers aren't necessarily
      stored in a non-volatile memory. When a router goes off-line, its
      neighbors forget its sequence numbers and an attacker can replay
      its packets.

   Each reason is independently sufficient to permit a packet's replay.
   The sequence number is the base of the anti-replay mechanism, so we
   present the different possibilities. RFC2082.3.2.1[5] suggests to
   use a timestamp or a packet counter.

2.2.1 a timestamp as sequence number

   Using a timestamp as sequence number forces one to either accept
   several successive packets with the same sequence numbers or to
   assume that no more than one packet is sent during a clock period.It
   would unnecessarily create a dependency between the clock frequency
   and the network throughput. RIPv2 has chosen the former and this
   likely causes the "greater than or equal to" vulnerability
   (RFC2082.3.2.2[5]). 

   RFC2082[5] doesn't require to store the timestamp on a stable
   storage. If it is, it will roll over in the future. The
   implementations i have seen use the number of seconds since the
   first january 1970, so the roll over would happen in 2038. RIPv2
   will likely no more be used at this time. Nevertheless it is still
   possible to successfully replay a packet multiple times until the
   destination accepts a higher sequence number. This delay can be up
   to 30 seconds (default periodical update interval from
   RFC2453.3.8[6]) and more in case of packet loss. Not having the time
   on a stable storage, doesn't solve the previous vulnerability and
   adds a new one because sequences numbers are reused after each
   reboot.

2.2.2 a counter as sequence number

   With a timestamp, packets played in the same time slice (e.g. pkt1
   then pkt2) can be replayed in disorder (i.e. pkt2, then pkt1). Using


Etienne                 Expires October 30, 2001                [Page 5]

Internet-Draft         RIPv2 authentication flaws               May 2001


   a packet counter makes this impossible. Nevertheless the last packet
   (pkt2) can still be replayed.

   If the counter isn't stored on a stable storage it will be reused
   across reboot. Even if it is, a large router may send 2^32 RIP
   packets during its lifetime and the sequence number would roll over.
   So a packet counter still has flaws.

2.3 MAC calculation

   The MAC calculation of the MD5 authentication has two problems: it
   uses the secret-suffix method which is known to be weak and applies
   it only on the RIP payload, leaving the UDP and IP headers
   unprotected. Surprisingly, RFC2082[5] doesn't specify where the
   coverage starts but the implementations we checked start at the
   beginning of the RIP payload. We consider this behavior as a
   De-facto standard.

2.3.1 secret-suffix method

   [9] considers the secret-suffix method possibly weak. [8] and [7]
   explains that an attacker may search for MD5( RIP packet )
   collisions, and then use them for any key. This search is efficient
   because it can be parallelized and done off-line. Nevertheless, this
   weakness is theoretical and unlikely to be turned into an practical
   attack. 

2.3.2 Unprotected IP header

   The IP header(RFC0791.3.1[2]) isn't covered by the MAC so a
   modification would not be detected. If the protocol relies on its
   fields, it may be the base of an attack. We focus on the fields that
   may influence RIP and not prevent the packet from reaching the RIP
   layer (i.e. pass the UDP/IP layers). The matching fields are: 

   o  The source address indicates the origin of the packet and is used
      by RIP to know which neighbor sent the packet(RFC2453.3.9.2[6]).

   o  The destination address indicates the destination of the packet.
      The IP layer uses it to accept or reject the packets.

2.3.3 Unprotected UDP header

   An attacker can modify the UDP header (RFC0768[1]) without being
   detected as well. Nevertheless, the only field used by RIP is the
   length and any modification, shorter or longer, will cause the
   authentication verification to fail.




Etienne                 Expires October 30, 2001                [Page 6]

Internet-Draft         RIPv2 authentication flaws               May 2001


2.4 Summary

   In short, a RIPv2 packet authenticated by RFC2082[5], the current
   strongest method, can be replayed and it can be done between routers
   which aren't necessarily the original ones. The anti replay
   protection has several flaws (see Section 2.2) and the MAC don't
   cover the UDP and IP headers (see Section 2.3). The next section
   describes the attacks we found based on these vulnerabilities.











































Etienne                 Expires October 30, 2001                [Page 7]

Internet-Draft         RIPv2 authentication flaws               May 2001


3. Exploits

   Using the weaknesses described in Section 2.2 and in Section 2.3, an
   attacker directly connected to a single link, can (i)   break
   neighborhood (A neighborhood is the term we use to designate 2
   routers seeing each other), (ii)  flap routes and (iii) inject
   obsolete routes. 

3.1 breaking neighborhood

   The router's neighborhood is the base of the anti-replay of MD5
   authentication in RIPv2 and we present an attack able to break it
   using packet replay and ip address spoofing. An attacker can break
   the neighborhood between R1 and R2 by preventing R1 from seeing R2: 

   1.  The attacker obtains a packet with a sequence number higher than
       R2 one (see Section 3.1.1).

   2.  It replays it to R1 faking the R2 source address, R1 accepts it.

   3.  R1 no more accepts legitimates packets from R2 as their sequence
       numbers are lower than the last accepted one. 

   4.  R1 eventually breaks the neighborhood considering R2 unreachable.

3.1.1 Higher sequence number

   As this attack assumes the attacker has a packet with a higher
   sequence number, this section explains how to obtain such packet. 

   o  If the R2 sequence number is a time since a fixed date (typically
      number of second since 01/01/70), it will likely be much higher
      than sequences numbers reset at each reboot (e.g. packet counter
      or time since reboot). If R2 hasn't the highest time of the
      router connected to the link, an attacker can take a packet from
      a source with a time ahead from the R2 one. Else an attacker may
      hope the R2 clock will drift and the R2 administrator will adjust
      it, but it is unlikely.

   o  If the R2 sequence number is reset as each reboot (e.g. packet
      counter or time since reboot), the attacker may use a packet from
      a previous boot or from another router with a higher sequence
      number (e.g. longer boot or time since a fixed date). 

3.2 Route flapping

   It is possible to flap routes by (i) repeatdely breaking
   neighborhood (see Section 3.2.1) if the attacker has a packet with a
   higher sequence number or by (ii) using poisoned reverse (see


Etienne                 Expires October 30, 2001                [Page 8]

Internet-Draft         RIPv2 authentication flaws               May 2001


   Section 3.2.2) if all the routers have similar sequence numbers.

   The consequences of flapping a route is to have suboptimal routing.
   Moreover, in the AS(autonomous system), each trigger update consumes
   network when it is flooded, and CPU when it triggers a route
   recalculation. Outside the AS, the cost of this attack will depend
   on the protocols used. If the route is exported with BGP, it may be
   dampened (RFC1771.apx6[4]). 

3.2.1 route flapping by repeatdely breaking the neighborhood

   If an attacker uses the Section 3.1 method, it may break the
   neighborhood between R1 and R2, so all the R1 routes using R2 as
   next hop will be timed out and advertised as infinite. R1 will send
   triggered update on each of the connected links and the AS will try
   to converge to a slower route no more using R2. After a short moment
   (WORK: how long), R1 forgets the fake R2 sequence number, accepts
   again the R2 packets. As R2 offers a faster route, R1 uses it as
   next hop and sends a triggered update to announce the change. then
   the attacker breaks the neighborhood again and the route is
   flapping. 

3.2.2 route flapping thanks to poisoned reverse

   If the all routers have similar values of sequences number, an
   attacker can't use them for breaking a neighborhood but can still do
   route flapping thanks to the poisoned reverse(RFC2453.3.4.3[6]). 

   If the router R1 uses a router R2 as next hop for a route, it will
   advertise this route with a infinite metric on the link between R1
   and R2. It prevents from creating 2 hops loop. An attacker can
   replay the packet with infinite metric back to R1 and fakes the R2
   source address, so R1 will accept the packet and update its metric
   to infinite. The next periodic update from R2 will be accepted as
   well and R1 will update again with a real metric. If the attacker
   does it again, the route is flapping. 

3.3 Inject obsolete routes

   An attacker can inject obsolete routes by (i)   capturing a packet
   advertising a route with a given metric (say X), (ii)  then waiting
   for this route to be announced with a metric Y different than X, and
   (iii) replays the packet with the metric X. The effect of this
   attack depends on the sequence number of the replayed packet
   compared to the current one of the connected routers: (i)  if the
   replayed packet has a smaller sequence number, Y needs to be greater
   than X or (ii) if it has a greaters one, it can be done
   independantly of Y. 



Etienne                 Expires October 30, 2001                [Page 9]

Internet-Draft         RIPv2 authentication flaws               May 2001


3.3.1 higher sequence number

   If the sequence number of the replayed packet is greater than the
   current one of connected routers, the attacker sends the packet
   faking the source address of the current next hop. The packet will
   be accepted and the new metric will be used, even if it is higher
   than the former one.

3.3.2 lower sequence number

   If the sequence number of the replayed packet is lower, the attacker
   can still fake an unused source address. The destination will accept
   it because they have no memory of a sequence number. If the replayed
   metric X is lower than the current one Y, they will use the new fake
   router as next hop and the attacker can perform any man in the
   middle attacks (e.g. traffic analysis, black-holes). The attraction
   of the black-hole depends on the metric delta (i.e Y-X). 


































Etienne                 Expires October 30, 2001               [Page 10]

Internet-Draft         RIPv2 authentication flaws               May 2001


4. Security considerations

   This memo presents weaknesses in the current strongest method of
   authentication. The MD5 authentication anti-replay was known to be
   weak but its flaws were believed harmless. We found a new flaw in
   the MAC calculation which allows an attacker to fake the source and
   destination IP addresses. Combined, these weaknesses allow efficient
   DoS and the injection of obsolete routes. We present some of the
   attacks but we strongly suspect there are others as well.

   We have designed the "anti-replay authentication" (WORK: ref) that
   fixes these flaws, without, to the best of our knowledge, adding new
   ones. This method isn't described in this draft, because it isn't
   yet fully specified in the RIP context. The MAC covers the IP header
   preventing an attacker from forging it. This method provides a new
   way to handle anti-replay with static key which is safe across
   reset. Keeping the core structure of the MD5 authentication, it can
   be easily plugged in an existing implementation so we think it may
   be a good replacement of the MD5 authentication.
































Etienne                 Expires October 30, 2001               [Page 11]

Internet-Draft         RIPv2 authentication flaws               May 2001


References

   [1]  Postel, J., "User Datagram Protocol", STD 6, RFC 768, 28 August
        1980.

   [2]  Postel, J., "Internet Protocol", STD 5, RFC 791, Sep 1981.

   [3]  Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April
        1992.

   [4]  Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)",
        RFC 1771, March 1995.

   [5]  Baker, F. and R. Atkinson, "RIP-2 MD5 Authentication", RFC
        2082, January 1997.

   [6]  Malkin, G.S., "RIP Version 2", STD 56, RFC 2453, November 1998.

   [7]  Bellare, M., Canetti, R. and H. Crawczyk, "Keying hash function
        for Message Authentication", Advances in cryptology Crypto 96
        vol 1109, 1996.

   [8]  Preneel, B. and P. Van Oorshot, "MDX-MAC and building fast MACs
        from hash functions", Advances in cryptology Crypto 96 , 1995.

   [9]  Kaliski, B. and M. Robshaw, "Message authentication with MD5",
        Cryptobyte Vol1 no1, 1995.


Author's Address

   Jerome Etienne

   EMail: jme@off.net
   URI:   http://w3.arobas.net/~jetienne
















Etienne                 Expires October 30, 2001               [Page 12]

Internet-Draft         RIPv2 authentication flaws               May 2001


Full Copyright Statement

   Copyright (C) The Internet Society (2001). 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 assigns.

   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.



















Etienne                 Expires October 30, 2001               [Page 13]