<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-herberg-manet-nhdp-sec-threats-00" ipr="pre5378Trust200902">
	<front>
		<title abbrev="Security Threats for NHDP">Security Threats for NHDP</title>
		<author fullname="Ulrich Herberg" initials="U" surname="Herberg">
			<organization>LIX, Ecole Polytechnique</organization>
			<address>
				<postal>
					<street/>
					<city>91128 Palaiseau Cedex</city>
					<region/>
					<country>France</country>
				</postal>
				<phone>+33-1-6933-4126</phone>
				<email>ulrich@herberg.name</email>
				<uri>http://www.herberg.name/</uri>
			</address>
		</author>
		<author fullname="Thomas Heide Clausen" initials="T" surname="Clausen">
			<organization>LIX, Ecole Polytechnique</organization>
			<address>
				<postal>
					<street/>
					<city>91128 Palaiseau Cedex</city>
					<region/>
					<country>France</country>
				</postal>
				<phone>+33 6 6058 9349</phone>
				<email>T.Clausen@computer.org</email>
				<uri>http://www.thomasclausen.org/</uri>
			</address>
		</author>
		<date/>
		<area/>
		<workgroup>Mobile Ad hoc Networking (MANET)</workgroup>
		<keyword>MANET</keyword>
		<keyword>Draft</keyword>
		<abstract>
			<t>This document analyses common security threats of the Neighborhood Discovery Protocol (NHDP) and describes impacts for MANET routing protocols using NHDP.</t>
		</abstract>
	</front>
	<middle>
		<section title="Introduction">
			<t>The Neighborhood Discovery Protocol (NHDP) <xref target="NHDP"/> allows routers to exchange information about their one-hop and two-hop neighbors by means of HELLO messages. It is a common base protocol for several protocols in the MANET working group, such as OLSRv2 <xref target="OLSRv2"/> and SMF <xref target="SMF"/>. The neighborhood information, exchanged between routers using NHDP, serves these routing protocols as a baseline for calculating paths to all destinations in the MANET, relay set selection for network-wide transmissions etc.</t>
			
			<t>Due to the fact that NHDP is typically used in wireless environments, it is potentially exposed to different kinds of security threats, some of which are of particular significance as compared to wired networks. As wireless radio waves can be captured as well as transmitted by any wireless device within radio range, there is commonly no physical protection as for wired networks. The NHDP specification does not define any security means for protecting the integrity of the information it acquires, however suggests that this be addressed in a fashion appropriate to the deployment of the network.</t>
			
			<t>This document will describe these security attacks which NHDP is vulnerable to. In addition, the document outlines the consequences of such security attacks to NHDP for routing protocols using NHDP for neighborhood discovery. It is out of scope of this document to provide solutions to counteract security attacks to NHDP.</t>
		</section>
		
		
		<section title="Terminology">
			<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119">RFC 2119</xref>.</t>
			
			<t>Additionally, this document uses the terminology of <xref target="RFC5444"/> and <xref target="NHDP"/>.</t>
		</section>
		
		
		<section title="NHDP Threat Overview">
			<t>NHDP <xref target="NHDP"/> defines a message exchange protocol based on HELLO messages in order for each router to acquire topological information about 1-hop and 2-hop neighbors. It specifies information bases that store the information and the necessary message exchange. These information bases can be accesses by routing protocols such as OLSRv2 <xref target="OLSRv2"/> to construct routes to destinations in the MANET.</t>
			<t>Every router periodically transmits HELLO messages on each of its interfaces with a hop-limit of 1 (i.e. HELLOs are never forwarded by a router). In these HELLO messages, a router announces the IP addresses of heard, symmetric and lost neighbor interface addresses.</t>
			<t>An adversary has several ways of harming the neighbor discovery process: It can announce "wrong" information about its identity,  postulate non-existent links, and replay HELLO messages. These attacks are presented in detail in <xref target="threat_description"/>.</t>
			<t>The different ways of attacking an NHDP deployment will eventually lead to inconsistent information bases, not reflecting the correct topology of the MANET any more. This means that routers may be unable to detect links to their neighbors correctly (for NHDP), and thus corrupt the routing process of a routing protocol using the neighbor information of NHDP. These implications to protocols using the state of NHDP are in detail described in <xref target="impact"/>.</t>
		</section>



		<section anchor="threat_description" title="Detailed Description of Security Threats to NHDP">
			<t>In this section, the different kind of threats to NHDP are detailed. For every attack, a description of the mechanism of the attack is followed by the implications for the NHDP instance. Implications on routing protocols using NHDP are presented in <xref target="impact"/>.</t>
			<t>For simplicity, in all examples contained in the following sections, it is assumed that routers only have a single interface with a single IP address configured. All the attacks apply as well for routers with multiple interfaces and multiple addresses.</t>
			<section anchor="jamming" title="Jamming">
				<!-- how to do it -->
				<t>One vulnerability, common for all protocols operating a wireless ad hoc network, is that of "jamming" - i.e. that a router generates massive amounts of interfering radio transmissions, which will prevent legitimate traffic (e.g. control traffic as well as data traffic) on part of a network. This vulnerability cannot be dealt with at L3 (if at all), leaving the network without the ability to maintain connectivity. Jamming is somewhat similar to that of network overload and subsequent denial of service: a sufficiently significant amount of control traffic is lost, preventing HELLO messages to be correctly received.</t>
				<!-- consequences for NHDP -->
				<t>If a considerable amount of HELLO messages are lost or corrupted due to collisions, neighbor routers are able not any more to establish links between them. This effectively renders NHDP unusable for upper layer protocols, since no stable links can be used for sending out control packets, or for calculating routing information.</t>
			</section>
			<section anchor="incorrect_hello" title="Incorrect HELLO Message Generation">
				<t>Every router running NHDP performs mainly two tasks: Periodically generating HELLO messages and processing incoming HELLO messages from neighbor routers. This section describes two security attacks involving the HELLO generation.</t>
				<section anchor="identity_spoof" title="Identity Spoofing">
					<t>The so-called identity spoofing implies that a router sends HELLO messages pretending to have the identity of another router.  An attacker can accomplish this by using another router's IP address in an address block of a HELLO, and associating this address with a LOCAL_IF Address Block TLV. In addition, it may need to set the source address of the IP header that contains the control message.</t>
					<t>If a router receives such a forged HELLO message from a neighbor, it will assume that this HELLO comes from a router with the claimed interface address. As a consequence, it will add a Link Tuple to that neighbor with the spoofed address, and include it in its next HELLO messages as a heard neighbor (and possibly as symmetric neighbor after another HELLO exchange).</t>
					<t>Identity spoofing is particular harmful if a router spoofs the identity of another router that exists in the same routing domain. With respect to NHDP, such a duplicated, spoofed address can lead to an inconsistent state up to two hops from a router. <xref target="fig_identity_spoof_1hop"/>) depicts a simple example. In that example, router A is in radio range of C, but not of X. If X spoofs the address of A, that can lead to conflicts for upper-layer routing protocols, and therefore for wrong path calculations as well as incorrect data traffic forwarding.

					<figure anchor="fig_identity_spoof_1hop"><artwork>
,---.    ,---.    ,---.
| A |----| C |----| X |
'---`    '---`    '---`
					</artwork><postamble/></figure>

					<xref target="fig_identity_spoof_2hop"/>) depicts another  example. In this example, A is two hops away from router C, reachable through router B. If the attacker X spoofs the address of A, C may think that A is indeed reachable through router D.

					<figure anchor="fig_identity_spoof_2hop"><artwork>
,---.    ,---.    ,---.    ,---.    ,---.
| A |----| B |----| C |----| D |----| X |
'---`    '---`    '---`    '---`    '---`
					</artwork><postamble/></figure>
					</t>
				</section>
				<section title="Link Spoofing">
					<t>Similarly, link spoofing implies that a router sends HELLO messages, signaling an incorrect set of neighbors. This may take either of two forms: An attacker can postulate addresses of non-present neighbor routers in an address block of a HELLO, associated with LINK_STATUS TLVs.
					Alternatively, a compromised router can "ignore" existing neighbors by not advertizing them in its HELLO messages.</t>
					
					<t>The effect of link spoofing with respect to NHDP are twofold, depending on the two cases mentioned above: If the compromised router ignores existing neighbors, there may not be any connectivity to or from these routers to others routers in the MANET. If, on the other hand, the router advertizing non-existing links, this can lead wrong topological information in the information base, which may be used by routing protocols.</t>
				</section>
			</section>
			
			<section anchor="replay_attack" title="Replay attack">
				<t>A replay attack is, simply, where control traffic from one region of the network is recorded and replayed in a different region (this type of attack is also known as the Wormhole attack). This may, for example, happen when two routers collaborate on an attack, one recording traffic in its proximity and tunneling it to the other router, which replays the traffic. In a protocol where links are discovered by testing reception, this will result in extraneous link creation (basically, a link between the two ``attacking'' routers).
				
				While this may result from an attack, we note that it may also be intentional: if data-traffic too is relayed over the virtual link over the ``tunnel'', the link being detected is, indeed valid. This is, for instance, used in wireless repeaters. If data traffic is not carried over the virtual link, an imaginary, compromised, link has been created.

				Replay attacks can be especially damaging if coupled with spoofing and playing with sequence numbers in the replayed messages, potentially destroying some important topology information in routers all over the network.</t>
			
			</section>
		</section>
		
		<section anchor="impact" title="Impact of inconsisent Information Bases for Routing Protocols using NHDP">
			<t>The different security attacks on NHDP have been presented in <xref target="threat_description"/> which lead to an inconsistent state of the topology on the routers. This section describes the impact for routing protocols that use NHDP as underlying neighbor discovery protocol, in particular OLSRv2 <xref target="OLSRv2"/>, and SMF<!--xref target="SMF"/-->.</t>
			
			<section title="MPR Calculation">
				<!--
				<t>Both OLSRv2 <xref target="OLSRv2"/> and SMF <xref target="SMF"/> routers select a subset of their 1-hop neighbors as MPR, which reduce redundancy for TC flooding, while keeping connectivity to all 2-hop neighbors.</t>
				
				<t>If NHDP -- which is used in both above-mentioned routing protocols -- has an inconsistent information base, MPR 
				-->
				<t>TBD</t>
			</section>
			
			<section title="Routing Loops">
				<t>TBD</t>
			</section>
			
			<section title="Invalid or non-existing Paths to Destinations">
				<t>TBD</t>
			</section>
			
			<section title="Data Sinkhole">
				<t>TBD</t>
			</section>
		</section>
		
		<section anchor="IANA" title="IANA Considerations">
			<t>This document contains no actions for IANA.</t>
		</section>
		
		
		
		<section anchor="Security" title="Security Considerations">
			<t>This document does not specify a protocol or a procedure. The document, however, reflects on security considerations for NHDP and MANET routing protocols using NHDP for neighborhood discovery.</t>
		</section>
	</middle>
	
	
	<back>
		<references title="Normative References">
			<reference anchor="RFC2119">
				<front>
					<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
					<author initials="S." surname="Bradner" fullname="Scott Bradner">
						<organization>Harvard University</organization>
					</author>
					<date year="1997" month="March"/>
				</front>
				<seriesInfo name="BCP" value="14"/>
				<seriesInfo name="RFC" value="2119"/>
				<format type="TXT" octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt"/>
				<format type="HTML" octets="17491" target="http://xml.resource.org/public/rfc/html/rfc2119.html"/>
				<format type="XML" octets="5777" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml"/>
			</reference>
			
			
			<reference anchor="NHDP">
				<front>
					<title>MANET Neighborhood Discovery Protocol (NHDP)</title>
					<author initials="T.H." surname="Clausen" fullname="Thomas Heide Clausen">
						<organization abbrev="X">Ecole Polytechnique, France</organization>
					</author>
					<author initials="J.W." surname="Dean" fullname="Justin W. Dean">
						<organization abbrev="NRL">Naval Research Laboratory, USA</organization>
					</author>
					<author initials="C.M." surname="Dearlove" fullname="Christopher Dearlove">
						<organization>BAE Systems Advanced Technology Centre, UK</organization>
					</author>
					<date month="October" year="2009"/>
				</front>
				<seriesInfo name="work in progress" value="draft-ietf-manet-nhdp-11.txt"/>
			</reference>
			
			<reference anchor="SMF">
				<front>
					<title>Simplified Multicast Forwarding</title>
					<author initials="J." surname="Macker" fullname="Joseph Macker">
						<organization abbrev="X">NRL</organization>
					</author>
					<date month="July" year="2009"/>
				</front>
				<seriesInfo name="work in progress" value="draft-ietf-manet-smf-09.txt"/>
			</reference>
			
			
			<reference anchor="OLSRv2">
				<front>
					<title>The Optimized Link State Routing Protocol version 2</title>
					<author initials="T.H." surname="Clausen" fullname="Thomas Heide Clausen">
						<organization abbrev="X">Ecole Polytechnique, France</organization>
					</author>
					<author initials="C.M." surname="Dearlove" fullname="Christopher Dearlove">
						<organization>BAE Systems Advanced Technology Centre, UK</organization>
					</author>
					<author initials="P." surname="Philippe" fullname="Philippe Jacquet">
						<organization abbrev="NRL">INRIA</organization>
					</author>
					<date month="September" year="2009"/>
				</front>
				<seriesInfo name="work in progress" value="draft-ietf-manet-olsrv2-10.txt"/>
			</reference>
			
			<!--
			<reference anchor="DYMO">
				<front>
					<title>Dynamic MANET On-demand (DYMO) Routing</title>
					<author initials="I." surname="Chakeres" fullname="Ian Chakeres">
						<organization abbrev="X">CenGen</organization>
					</author>
					<author initials="C." surname="Perkins" fullname="Charles Perkins">
						<organization abbrev="NRL">WiChorus</organization>
					</author>
					<date month="March" year="2009"/>
				</front>
				<seriesInfo name="work in progress" value="draft-ietf-manet-dymo-17.txt"/>
			</reference>
			-->
			
			
			<reference anchor="RFC5444">
				<front>
					<title abbrev="RFC5444">Generalized MANET Packet/Message Format</title>
					<author initials="T.H." surname="Clausen" fullname="Thomas Heide Clausen">
						<organization abbrev="X">Ecole Polytechnique, France</organization>
					</author>
					<author initials="C.M." surname="Dearlove" fullname="Christopher Dearlove">
						<organization abbrev="BAE">BAE Systems Advanced Technology Centre, UK</organization>
					</author>
					<author initials="J.W." surname="Dean" fullname="Justin W. Dean">
						<organization abbrev="NRL">Naval Research Laboratory, USA</organization>
					</author>
					<author initials="C." surname="Adjih" fullname="Cedric Adjih">
						<organization>INRIA Rocquencourt</organization>
					</author>
					<date month="February" year="2009"/>
				</front>
				<seriesInfo name="RFC" value="5444"/>
			</reference>
		</references>
<!-- references title="Informative References">

</references-->
<!--
<section title="Appendix">
<t></t>
</section>
-->
	</back>
</rfc>
