The primary goal of the BGP MD5 signature option is to protect the TCP substrate from introduction of spoofed TCP segments such a TCP RSTs. These segments could easily be injected from anywhere on the Internet. Lots of service providers employ the TCP MD5 signature option stuff to protect both internal and external BGP sessions in their networks. It really doesn't matter if the neighbors are directly connected or not, BGP rides on IP and is therefore vulnerable to "packet bombs" and the like from anywhere, regardless of whether the peer is internal, external or external multi-hop. Expoliting such a vulernability is trivial, actually, in any of these configurations. All one needs to know is a tiny amount of information associated with the BGP session. Though MD5 clearly isn't perfect, it does make is considerably more difficult. Using MD5 stuff with IP-based protocols such as BGP & OSPF is strongly advised. Obviously, IS-IS and similar protocols are less vulnerable. -danny
BGP is a TCP based protocol and is normally run only to an adjacent peer. This combination makes it very hard to break into. You have to have another system on the shared media send a spoofed packet with bogus information that fits the TCP stream and the BGP status for that peering (and many BGP connections are point-to-point, making even this impossible).
Multi-hop BGP is a different beast and much more likely to be subject to attack, but it's also pretty rare and such an attack would still be very difficult.
Speaking of the MD5 signature option.. is anyone aware of a (working) implementation in an OS? There's some code for it in OpenBSD, but I've been told it's broken/unfinished. Thanks, Shane Wright
participants (2)
-
Danny McPherson
-
Shane Wright