[go: up one dir, main page]

Academia.eduAcademia.edu

IPv6 Secure Neighbor Discovery

INTERNET INFRASTRUCTURES Secure Neighbor Discovery: Review, Challenges, Perspectives, and Recommendations Ahmad AlSa’deh and Christoph Meinel | Hasso-Plattner-Institut Secure Neighbor Discovery is designed to countermeasure Neighbor Discovery Protocol threats. he authors discuss Secure Neighbor Discovery implementation and deployment challenges and review proposals to optimize it. T he Neighbor Discovery Protocol (NDP), one of the main protocols in the IPv6 suite, comprises Neighbor Discovery for IPv6 (Request for Comments [RFC] 48611) and IPv6 stateless address autoconiguration (SLAAC).2 It’s used for several critical functionalities, such as discovering nodes on the same link, determining link-layer addresses, detecting duplicate addresses, inding routers, and maintaining reachability information about paths to an active neighbor. In addition, NDP plays a crucial role in mobile IPv6 (MIPv6) networks, eliminating the need for foreign agents and allowing mobile nodes to join new foreign networks. However, NDP is prone to critical atacks.3 It assumes that all nodes on the link trust each other, but this assumption doesn’t hold for several scenarios, such as over a wireless network, in which anyone can join a local link with minimal or no link-layer authentication. Consequently, malicious users could impersonate legitimate nodes by forging NDP messages to generate atacks. As a result, RFC 3971, “Secure Neighbor Discovery (SEND)” became a standard.4 SEND uses cryptographically generated addresses (CGAs),5 a digital signature, and an X.509 certiication to protect NDP. SEND was designed to ensure message integrity, prevent IPv6 address thet and 2 July/August 2012 replay atacks, and provide a mechanism to verify routers’ authority. Although SEND is a promising technique to protect NDP and make IPv6 a safe protocol, its deployment isn’t easy. SEND lacks mature implementations by network device manufacturers and operating system developers. It’s compute intensive and bandwidth consuming. Moreover, SEND itself can be vulnerable to some atacks. We discuss these implementation and deployment challenges and provide some directions and proposals for facilitating SEND deployment in IPv6 networks, especially for devices with limited resources. Neighbor Discovery Protocol NDP is part of the Internet Control Message Protocol for IPv6 (ICMPv6)6 and uses ICMPv6 message format. It was designed in this position of the IP protocol stack for simplicity and to beneit from IP services, such as security and multicasting. NDP messages consist of an ICMPv6 header, Neighbor Discovery (ND) message– speciic data, and ND message options, which provide additional information, such as link-layer addresses, onlink network preixes, on-link maximum transmission unit information, redirection data, mobility information, and router speciication. Copublished by the IEEE Computer and Reliability Societies 1540-7993/12/$31.00 © 2012 IEEE NDP Messages and Functionalities NDP uses the following ive ICMPv6 messages: Abbreviations ■ router solicitation (RS), type 133—the IPv6 host sends RS to discover the default router and learn network information, such as preixes and Domain Name Server (DNS) addresses; ■ router advertisement (A), type 134—the router that receives an RS message sends back an A message (solicited A) and IPv6 routers send As periodically (unsolicited multicast As); ■ neighbor solicitation (NS), type 135—NS resolves the neighbor node’s IPv6 address to its MAC address and veriies that the node is still reachable; ■ neighbor advertisement (NA), type 136—the node that receives an NS message sends back an NA message with its own MAC address; and ■ redirect message (RM), type 137—the router uses RM to inform other nodes of a beter irst-hop toward a destination. ADD ARP BSD CGA CPA CPS DAD DHCPv6 DoS ECC ICMPv6 IID IPsec MITM NA NDP NS RA RM RS SEND SLAAC WinSEND hese messages achieve various functionalities, including router and preix discovery, parameter discovery, address autoconiguration, address resolution, duplicate address detection (DAD), neighbor unreachability detection, next-hop determination, and redirect. Authorization delegation discovery Address Resolution Protocol Berkeley Software Distribution Cryptographically generated address Certiicate path advertisement Certiicate path solicitation Duplicate address detection Dynamic Host Coniguration Protocol for IPv6 Denial of service Elliptic curve cryptography Internet Control Message Protocol for IPv6 Interface identiier IP Security Man in the middle Neighbor advertisement Neighbor Discovery Protocol Neighbor solicitation Router advertisement Redirect message Router solicitation Secure Neighbor Discovery Stateless address autoconiguration Windows Secure Neighbor Discovery NDP Security and Privacy Implications NDP has some basic protection mechanisms based on its scope. It’s a link-local protocol, so the source address must be either unspeciied or a link-local address, and the hop limit must be set to 255. Also, the routers don’t forward link-local addresses. hus, NDP messages can’t be injected into the network infrastructure from beyond directly connected layer-2 access networks. his shield isn’t enough to completely protect IPv6 local networks. Without securing NDP, IPv6 neighbor discovery is vulnerable to spooing, denial-of-service (DoS), replay, redirect, and rogue router atacks. Spooing. In a spooing atack, a malicious node successfully uses another node’s address or identiier. Atackers can use spoofs to leverage man-in-the-middle (MITM) atacks, create DoS atacks, hide their identities, abuse the trust relation between legitimate nodes, and so forth. Address Resolution Protocol (ARP) spooing is a well-known atack in IPv4 networks. Instead of ARP, IPv6 relies on NDP to carry out address resolution in addition to the other services. Without the IPv6 authentication mechanism, atackers can generate crated IPv6 packets with spoofed source addresses and send them across the network. Denial of service. DoS atacks prevent communication www.computer.org/security between the legitimate node and other nodes, using signiicant system resources. For instance, atackers can generate DoS on DAD to prevent a network node from obtaining a network address. DAD ensures that no address collision exists on the same link. A malicious node might hinder the legitimate host from geting a new IPv6 address by responding to every duplicate address detection atempt with a spoofed message saying “I have this address.” hus, victims would ind out that every IPv6 address they try to use is in use by other nodes on the link and won’t be able to conigure an IP address to access the network. Replay. In replay atacks, atackers capture and change messages exchanged between two nodes. NDP messages are prone to replay atacks. For instance, when host 1 wants to communicate with host 2, it sends an NS messages to retrieve host 2’s MAC address. Atackers on the same link can capture the NS message and change it to take over the traic low between host 1 and host 2. Another example is A message replay. Atackers receive the A, change its parameters, and resend this false router information on the link. Redirect. Redirects are a class of atacks in which a 3 INTERNET INFRASTRUCTURES malicious node redirects packets away from its legitimate receiver to another node. In IPv6, routers use RMs to inform nodes of beter irst-hop routers. Atackers can fabricate such a message and take over routing from the legitimate router, acting as an MITM and intercepting all messages between the two nodes. Rogue router. In this type of atack, a malicious node injects rogue information to poison the routing tables, reroute traic, or prevent victims from accessing the desired network. It’s simple for atackers to conigure a rogue router on an unsecured link, but it’s diicult for a node to distinguish between fake and authorized As, especially for a newly connected node, which can’t validate the routers without an IP address to communicate. hus, a malicious node can advertise itself as a router and send a bogus address preix or advertise itself as a last-hop router to act as an MITM and efectively receive, drop, or replay the packets. Such atacks can cause serious problems because they afect all nodes connected to the same segment. Combinations. Atackers can use several of these atack types simultaneously. For instance, spooing and DoS can be used together: atackers can fabricate packets with a fake source IP address to hide their identity, which makes detecting the atack more diicult. RFC 3756, “IPv6 Neighbor Discovery (ND) Trust Models and hreats,” describes and categorizes some possible NDP atacks.3 In addition, the Hacker’s Choice IPv6 (htp://thc.org/thc-ipv6) already implemented a tool set to atack IPv6. NDP Privacy Implications SLAAC could lead to serious privacy issues. Generating the IPv6 interface identiier (IID) on the basis of the MAC address results in a static IID, which remains constant over time and across networks. Consequently, atackers can correlate the captured traic from a speciic IID to a certain device and track the node. Once atackers determine the user’s location and identity, they can target the user for identity thet or related crimes. RFC 4941, “Privacy Extensions for Stateless Address Autoconiguration in IPv6,” introduces a solution by generating global scope addresses from IIDs that change over time.7 Changing IIDs over time makes it more diicult for eavesdroppers and other information collectors. However, RFC 4941 doesn’t protect against IP address spooing atacks. CGAs can obscure the node IID to protect privacy and achieve anonymity. IPsec for Securing NDP Although the original NDP speciication called for the 4 IEEE Security & Privacy use of IP Security (IPsec) to protect NDP messages, it didn’t specify how to use it. IPsec isn’t suitable for securing the NDP autoconiguration process owing to a bootstrapping problem. With the Internet Key Exchange, the nodes must be addressable before IPsec can be used. With IPsec, Internet Key Exchange can automatically perform security associations exchange when a host already has a valid IPv6 address. herefore, the Internet Engineering Task Force developed SEND to countermeasure NDP vulnerabilities. Secure Neighbor Discovery RFC 3971 is a set of NDP enhancements.4 SEND ofers three additional features to NDP: address ownership proof, message protection, and a router authorization mechanism. To achieve these enhancements, SEND comes with four new options (CGA, RSA signature, nonce, and time stamp) and two ICMPv6 messages for identifying the router authorization process. Cryptographically generated address. he CGA option carries the associated CGA parameters so the receiver can validate the proper binding between the public key (used to verify the signature) and the CGA. he CGA is an essential part of SEND, proposed to prevent address stealing. It authenticates IPv6 addresses without requiring third-party or additional security infrastructure. CGAs are IPv6 addresses, in which a one-way hashing of the node’s public key and other auxiliary parameters generates an IID. hus, a node’s IPv6 address is bound to its public key. he receiver can verify this binding by recomputing the hash value and comparing it to the sender’s IPv6 address’s IID. Figure 1 shows the CGA generation algorithm (see RFC 3972 for more details5). CGA generation begins by determining the address owner’s public key and selecting the proper security-level (Sec) value, then continues the hash2 computation loop until inding the inal modiier. he hash2 value is an SHA-1 hash value over the entire CGA Parameters data structure (the public key and Collision Counts are zeros). he address generator tries diferent modiier values until 16 × Sec-letmost-bits of hash 2 equals zero. Once it inds a match, the loop for hash 2 computation terminates. he inal modiier value is saved and used as an input for hash 1 computation. he hash 1 value is a hash of combination of the whole CGA parameter data structure. hen, IID is derived from hash 1. he Sec value is encoded into the IID’s three letmost bits. he seventh and eighth bits from the let of IID are u and g bits. he u bit (universal/ local bit) is set to 1 to indicate universal scope or to 0 to indicate local scope. he g bit is the individual/group bit (see RFC 4291 for more details8). Finally, DAD ensures that no address collisions are in the same subnet. July/August 2012 16*Sec leftmost hash 2 bits must be zero 0 Compute intensive part Cryptographical generated address (CGA) parameters Hash 2 (112 bits) SHA-1 16*Sec = 0 Final modifier (128 bits) Subnet prefix (64 bits) Collision count (8 bits Public key RSA (variable) SHA-1 Increment modifier leftmost 64 bits Modifier (128 bits) 0 (64 bits) Hash 1 Public key 0 (8 bits) RSA(variablre) • Generate/Obtain RSA key pairs • Pick random modifier • Select Sec value • Set collision count to 0 64 bits Subnet prefix 64 bits (59 bits are in use) 0 1 2 ... 6 7 S e c u g CGA Interface ID u=1 g=1 Figure 1. A cryptographically generated address’s generation algorithm. he address owner (generator) generates or obtains an RSA key pair and selects the proper security-level (Sec) value, then continues the hash2 computation loop until inding the inal modiier, which satisies the condition that 16 × Sec-leftmost-bits of hash 2 equals zero. he hash1 value is a hash of combination of the whole CGA parameter data structure. IID is derived from hash1, and the Sec value is encoded into the IID’s three leftmost bits.. A CGA’s main disadvantage is its computational cost. CGA computations can take a long time, especially for high Sec values. In fact, satisfying the hash 2 condition is the most computationally expensive part of the CGA’s generation algorithm. Multiple hashes are computed over the CGA parameter data structure by incrementing the modiier each time (see Figure 1). RSA signature. SEND uses the RSA signature option to authenticate the sender’s identity. Initially, each node must generate or obtain a public/private RSA pair before it can claim an address. he sender signs the outgoing messages with the private key, which is related to the public key and used in CGA’s generation algorithm. his signature prevents atackers from spooing CGA addresses. Nonce. he nonce option uses a random number to ensure that an advertisement is a fresh response to a node’s solicitation. SEND includes a nonce option in the solicitation message and requires advertisements to include a matching option. his prevents a replay atack in solicited messages, such as NS/NA and RS/A, which can be used for two-way communication, but not for one-way communication messages. Time stamp. SEND uses the time stamp option to ensure www.computer.org/security replay protection against unsolicited advertisements, such as periodic As and RMs. Here, the assumption is that all nodes have synchronized clocks, so the node can prevent replay atacks by carrying out a time-stampchecking algorithm. Router authorization. SEND uses authorization delega- tion discovery (ADD) to validate and authorize IPv6 routers to act as default gateways and speciies IPv6 preixes that a router is authorized to announce on its link. ADD relies on an electronic certiicate issued by a trusted third party. Before any node can accept a router as its default, the node must be conigured with a trust anchor that can certify the router via certiicate paths. So, the node requests that the router provide its X.509 certiicate path to a trust anchor, which is preconigured on the node. he router shouldn’t be trusted if it fails to provide the path to the trust anchor. Figure 2 shows a simpliied view of the router authorization mechanism. In addition to these enhancements, SEND ofers two new ICMPv6 messages to identify the router authorization process: certiicate path solicitation (CPS) and certiicate path advertisement (CPA). A host sends a CPS message, ICMPv6 type 148, during the ADD process to request a certiication path between a router and one of the host’s trust anchors. he CPA message, 5 INTERNET INFRASTRUCTURES (Trust anchor) Certificate authority CA0 Certificate authority certificate 1 Host A Router certificate CR 3 Router R 2 Router certificate request CPS: I trust CA0, who are you? CPA: I am R, this is my certificate CR signed by CA0. Verifty CR against CA0. Start using R as default gateway. Figure 2. Router authorization process.9 he host sends a certiicate path solicitation to ask the router to provide a valid certiicate. he router responds with the certiicate path advertisement that contains the certiicate. he host veriies router legitimacy; if it’s valid, the host accepts the router as default router. ICMPv6 type 149, is sent in reply to the CPS message and contains the router certiicate. New rules describe the preferred behavior when a SEND node receives a SEND-supported message. SEND Deployment Challenges SEND faces limitations in several areas, including computation, implementation, deployment, and security, which might prevent CGA and SEND use and leave NDP messages vulnerable to potential atacks. CGA and SEND Security Constraints he CGA mechanism can prevent thet of another node’s address, because atackers must ind a cryptographic hash value (hash 1) collision. However, CGA can’t provide assurance about the real node’s identity, and it isn’t suicient to guarantee that the CGA address is used by the appropriate node. Because CGAs aren’t certiied, atackers can create new valid addresses from their own public keys and start the communication. For more security, a certiicate authority is necessary to validate the keys. However, address owners use the corresponding private keys to assert their ownership and sign NDP messages sent from the address. herefore, atackers can impersonate other node addresses from a valid public key but can’t sign the others’ messages. CGA veriication vulnerabilities. Atackers can per- form DoS atacks against CGA-DAD messages using CGAs or non–cryptographically generated addresses. 6 IEEE Security & Privacy Atackers can use non-CGAs to respond to each CGADAD message, with “I have this address.” If the collision count reaches 2, CGA generation fails. herefore, the CGA algorithm might need to be extended to verify the DAD message responses before the increment collision count. But in this case, all nodes should support CGA or discard the DAD messages that come from non-CGAs as well as give priority to new CGA addresses rather than non-CGA addresses. Atackers can capture ND messages and change the sender’s CGA parameters, so the CGA veriication process at the receiver side will fail. In this scenario, atackers prevent communication between sender and receiver; however, this can happen with other security protocols. For example, if atackers insert a bogus IPsec datagram, the IPsec at the receiver drops the datagram because the integrity check is bogus. herefore, we don’t see this atack as a major drawback of CGAs. Time-memory trade-of attacks. CGAs are vulnerable to global time-memory trade-of atacks. Atackers can generate a table of valid public/private key pairs in the precomputation phase to reduce the time complexity of the atack on the cost of memory. Researchers proposed a more secure version, called CGA++, to resist this type of atack10. In CGA++, the subnet preix is included in the hash 2 calculation, and all the modiier, collision count, and subnet preix values are signed by the private key corresponding to the public key used. his way, time-memory trade-of atacks can’t be applied globally. Atackers could perform a brute-force search for each address preix separately. However, it’s not easy to impersonate a random node in a network owing to the ample storage necessary to carry out this atack. In addition, CGA++ comes with an added cost due to the signature veriications, and it requires much more time than CGA generation for the same Sec value. Attacks on router authorization. DoS atacks can target router authorization mechanisms. his requires performing many operations for generating, verifying, and signing NDP messages, which can afect the routers’ performance. Atackers might target hosts by sending unnecessary certiication paths, forcing hosts to spend useless memory and veriication resources on them. he host’s numerous computations to generate and verify CGAs and the certiicates chain make it vulnerable to DoS atacks. Additional limitations. SEND doesn’t guarantee coni- dentiality or provide protection against address scanning. It doesn’t ofer information about the node’s privileges on the network; if this functionality is necessary, another infrastructure, such as 802.1X, is required. July/August 2012 Table 1. CGA generation time for diferent security-level values. Device speciications Modern PC (AMD64)10 Machine with 2.67-GHz CPU 11 Duo2 (2.53 GHz) workstation 12 Sec = 0 Sec = 1 Sec = 2 Sec = 3 n/a 0.2 s 3.2 hours n/a (theoretically, 24 years) 93.41 ms 401.99 ms 1.65 hours n/a (theoretically, 12 years) 100 µs 60 ms 2000 s CGA Privacy Constraints Owing to CGA’s high computation complexity, it’s likely that once a node generates an acceptable CGA, it will continue to use it at that subnet. Consequently, nodes using CGAs are still susceptible to privacy-related atacks. However, this issue can be solved by seting a lifetime for CGA addresses. If the lifetime passes, a new CGA with a new CGA parameter should be generated. To avoid the long CGA generation time, we don’t recommend choosing a Sec value greater than 1 for current applications. here should be a balance between lifetime and security level. CGA can achieve privacy protection for a mobile node. When a node moves to a new subnet, hash 1 should be recalculated using the new subnet preix. Consequently, new IPv6 addresses with new IIDs will be generated without needing to recalculate hash 2. he process of generating new addresses costs only one hash calculation. he only concern is the possibility of atackers tracking the node on the basis of its public key if it remains ixed. But tracking the node using its public key isn’t easy. Normally, Internet tracking is done using an IP address. Computation Exhaustion and Bandwidth Consumption he average CGA address-generation time depends on Sec bits. However, it’s impossible to tell exactly how much time CGA generation will take when Sec isn’t zero; it could vary signiicantly because the CGA parameter’s modiier ield is generated randomly. heoretically, the computational complexity of hash 2 consumption increases by 216 for each Sec value. By performing 1,000 tests on an Intel Duo2 2.67 GHz CPU, we found that the average CGA generation time is 402 milliseconds for Sec = 1. Our test on an unrepresentative set of ive samples gave an average CGA generation time of 5,923,857 milliseconds (1 hour and 39 minutes). Accordingly, we don’t recommend Sec values higher than 1 because they require a lot of processing power and time using current technologies. If the generation and veriication values exceed 0.5 second, DAD would fail because it expects to send and receive two ND messages in less than 1 second, as RFC 4861 indicates.1 www.computer.org/security n/a (theoretically, more than 30,000 hours) Table 1 presents a summary of CGA generation times reported in several studies. Each study measured CGA on diferent device speciications. Some of these studies consider the whole CGA generation time, and others considered only hash 2 calculation time. Router authorization and certiicate validation can be heavyweight and complicated. Any node trying to verify router authorization must be prepared beforehand with the anchor certiicate. In addition, routers are provisioned with certiicates that prove their identity. Because this relationship can be a long chain of trust, ADD requires an end node to store and retrieve all the certiicates in the certiication path to verify the authorized router. hus, the node requires veriication of the lengthy certiicates chain, and transporting all the certiicates and keys between routers and hosts increases local network traic. Also, the certiication path information transformation requires many CPS/CPA messages, especially if an error occurs on the network and retransmission is required. SEND requires each node to include the public key and other parameters with the message and to aix its signature with every signaling packet it generates, which means that more than 1 Kbyte is added to each packet. his increases communication overhead and consumes network bandwidth and computational resources. Lack of Sophisticated Implementation Most operating systems support NDP but lack support for SEND. Even though some major vendors, such as Cisco and Juniper, have various levels of support for SEND in their routers, no major operating system provides a good level of support. Current SEND implementations for speciic OS distribution, such as Debian Linux, are basically proofs of concept rather than production-ready sotware. Some of these implementations—send-0.2, NDprotector, Easy-SEND, and Windows Secure Neighbor Discovery (WinSEND)— are done in the user space, and others—send-0.3 and ipv6-send-cga—at the kernel level. DoCoMo’s SEND implementation (send-0.2). NT DoCoMo USA Labs implemented the irst open source SEND. Its implementation (send-0.2) works on Free Berkeley Sotware Distribution (FreeBSD), using the Berkeley Packet Filter interface embedded in a netgraph 7 INTERNET INFRASTRUCTURES node for traic between the kernel and the user-space daemon. he user-space daemon handles the SEND options. he communication between the NDP stack in the kernel and the SEND daemon lows through the chain of netgraph nodes rather than passing through normal layer processing. he send-0.2 implementation has some limitations. First, all network traic must traverse through packetiltering hooks, which introduce signiicant processing overhead. Second, send-0.2 depends on a netgraph subsystem, which is available for the FreeBSD operating system family, making it importable for other operating systems. Users need to have good knowledge of irewall rules (ip6tables), because it’s essential for the application’s coniguration. Finally, DoCoMo USA Labs is no longer maintaining the SEND project— source code is no longer available for download and support has been canceled. NDprotector (htp://amnesiak.org/ NDprotector) is another implementation of CGA and SEND for Linux based on Scapy6 and is limited to the Linux platform owing to its dependency on iproute2, ip6table, and netilter queue. Implementation can be divided into initialization and runtime phases. During initialization, CGA addresses are set up and ip6tables rules are deined. hese rules route all NDP messages to speciic netilter queues. NDprotector’s runtime component takes the NDP messages out of these queues and secures the outgoing NDP messages or veriies the incoming ones. NDprotector supports elliptic curve cryptography (ECC) keys in addition to standard RSA keys. It’s implemented in Python and therefore uses a Python wrapper to access netilter. For packet manipulation, NDprotector uses a modiied version of Scapy6 (scapy6send). NDprotector. Easy-SEND. Easy-SEND is another Linux user-space imple- mentation of SEND developed in Java.13 Easy-SEND is an open source project developed for educational purposes. Easy-SEND doesn’t implement router authorization. WinSEND. WinSEND, a user-space implementation developed in Microsot .NET, is the irst SEND implementation for Windows.14 WinSEND works as a service for Windows families with a user interface to set security parameters for the proper network interface card. he user-space implementations have some advantages, such as avoiding crashing the kernel. However, this means emulating the behavior of a kernel structure, which isn’t always possible. herefore, there are some trial implementations to integrate the SEND with NDP code at the kernel. Native SEND kernel API for BSD (send-0.3). his 8 IEEE Security & Privacy implementation aims to overcome the major drawbacks of DoCoMo’s implantation by implementing a new kernel-user space API for SEND and eliminating the use of netgraph and Berkeley Packet Filter.15 Avoiding netgraph reduces overhead, speeds up packet processing, and makes the implementation more portable to other operating systems. send-0.3 uses routing control sockets to exchange messages between the kernel and the user space. It handles the packets that might be afected by SEND rather than processing all packets, and lets the existing kernels handle the other packets. his implementation uses a kernel module that acts as a gateway between the network stack and the userspace interface. Huawei and BUPT (ipv6-send-cga). Huawei and Beijing University of Post and Telecommunications (BUPT) introduced a SEND implementation (www.ohloh. net/p/ipv6-send-cga) in the Linux kernel IPv6 module. he C code is partially built into the real NDP code at the kernel, where direct access to neighboring caches and the routing table is available. However, cryptographic processing remains in the user space. his work is a research prototype under development and lacks interoperability testing. Bugs that could cause the kernel to crash are expected. Proposals to Facilitate SEND Deployments Researchers have proposed ways to optimize and facilitate SEND deployment. In “Signiicantly Improved Performances of the Cryptographically Generated Addresses hanks to ECC and GPGPU,” Tony Cheneau and his colleagues proposed an improved method for generating CGA by using an ECC key instead of a standardized RSA key.16 For the same security level, ECC has shorter keys, which leads to smaller packet sizes. Accordingly, ECC use is more suitable in resource-limited environments. Another potential idea is delegating the expensive computation to a powerful machine. In “A Quick CGA Generation Method,” a key server performs the computation on behalf of the nodes in advance or oline.17 he work in “Coniguring Cryptographically Generated Addresses (CGA) Using DHCPv6” proposed using the Dynamic Host Coniguration Protocol for IPv6 (DHCPv6) server to manage CGA.18 DHCPv6 is extended to propagate the parameters that a host needs to generate CGA. A host might send a request to a DHCPv6 server to compute the CGA for it. However, these approaches return to a centralized model in which the server might be the target of DoS atacks. Other solutions use cryptographic accelerator cards to compute CGA faster or use parallelized algorithms to compute the CGA modiier. “Multicore-Based July/August 2012 Auto-Scaling SEcure Neighbor Discovery for Windows Operating Systems” proposed implementing a parallelized CGA generation algorithm to speed up CGA computation.19 With the parallel approach, the speed-up time increased substantially by increasing the number of cores in the computing device. To avoid unexpected delays in CGA generation, using a time termination condition can be a practical approach.20 For example, on the basis of the CPU speed, the algorithm recommends a proper value for Sec or a time termination condition. he termination condition also depends on the application requirement; for example, MIPv6 needs to inish the address generation within hundreds of milliseconds. “Stopping Time Condition for Practical IPv6 Cryptographically Generated Addresses” proposed a modiied CGA generation algorithm called time-based CGA, which limits the maximum time that the user/application can invest for CGA generation.11 Time-based CGA takes the upper bound of the CGA running time as an input and determines the Sec value as an output of the brute-force computations. his paper also suggested reducing security-level granularity from 16 to 8 to increase the chances of having a beter Sec value within the time limit. Other approaches tried to avoid SEND’s deployment complexity by using alternative protection models. RFC 6105, “IPv6 Router Advertisement Guard,” proposed using ilters at layer 2 to avoid router authorization and certiicate validation complexity.21 It counters the rogue A problem by applying a layer-2 switching device to identify and block invalid As. However, IPv6 A-Guard still can’t prevent IP address thet if deployed alone. A combination of CGA and A-Guard might be a solution to secure the IPv6 network. Other approaches, such as NDPMon (htp:// ndpmon.sourceforge.net)and Amond (htp:// ramond.sourceforge.net) tools, protect the local network by monitoring the NDP messages to detect malicious activity. However, monitoring techniques can’t prevent atacks; moreover, an atack might damage a network before the administrator can respond. Also, determining the atack node isn’t easy, because atackers can use spoofed addresses. W e ofer the following recommendations and comments regarding CGA and SEND deployments: ■ Don’t use CGA with a Sec value greater than 1, because higher values are impractical for most users and applications with current CPU speeds. ■ A parallelizing CGA algorithm can alleviate the required time for CGA generation by speeding up www.computer.org/security ■ ■ ■ ■ CGA computations and investing the available CPU in CGA computation, especially when the device has multiple cores. Generate key pairs on the ly using a CGA generation program to make it easier for the user and to avoid storing the keys in a particular path before starting the application. his way, the keys won’t be vulnerable to thet. Because there’s no guarantee of stopping CGA generation ater a certain time for a Sec value greater than zero, we recommend using time-based CGA to limit the CGA generation time.11 Because of the router authorization mechanism’s complexity it’s necessary to ind an easy certiicate deployment model for SEND. We recommend using a CGA compound with complementary approaches—for example, using CGA with another detection or monitoring mechanism, such as NDPMon or Amond. Using CGA with A-Guard prevents address thet and detects fake As—CGA protects the local link from address thet, and the A-Guard protects the local link from fake As. For a very secure IPv6 local network, we recommend that all nodes use CGA. herefore, we ask the operating systems vendors to implement SEND. Reducing and eliminating the threats and atacks against the IPv6 network by enhancing the CGA security and making it a simple, lightweight, and deployable authentication mechanism is important. Without these security measures, IPv6 network will be let vulnerable to IP spooing–related atacks. References 1. T. Narten et al., “Neighbor Discovery for IP Version 6 (IPv6),” RFC 4861, Sept. 2007; htp://tools.ietf.org/ html/rfc4861. 2. S. homson, T. Narten, and T. Jinmei, “IPv6 Stateless Address Autoconiguration,” RFC 4862, Sept. 2007; htp://tools.ietf.org/html/rfc4862. 3. P. Nikander, J. Kempf, and E. Nordmark, “IPv6 Neighbor Discovery (ND) Trust Models and hreats,” RFC 3756, May 2006; htp://tools.ietf.org/html/rfc3756. 4. J. Arkko et al., “SEcure Neighbor Discovery (SEND),” RFC 3971, Mar. 2005; htp://tools.ietf.org/html/rfc3971. 5. T. Aura, “Cryptographically Generated Addresses (CGA),” RFC 3972, Mar. 2005; htp://tools.ietf.org/ html/rfc3972. 6. A. Conta, S. Deering, and M. Gupta, “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Speciication,” RFC 4443, Mar. 2006; htp://tools.ietf.org/html/rfc4443. 7. T. Narten, R. Draves, and S. Krishnan, “Privacy Extensions for Stateless Address Autoconiguration in IPv6,” 9 INTERNET INFRASTRUCTURES 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. RFC 4941, Sept. 2007; htp://tools.ietf.org/html/ rfc4941. R. Hinden and S. Deering, “IP Version 6 Addressing Architecture,” RFC 4291, Feb. 2006; htp://tools.ietf. org/html/rfc4291. “IPv6 Secure Neighbor Discovery: Protecting Your IPv6 Layer 2 Access Network,” Cisco Systems, 2009; www. cisco.com/en/US/prod/collateral/iosswrel/ps6537/ ps6553/whitepaper_c11-602135.html. J.W. Bos, O. Özen, and J.-.P Hubaux, “Analysis and Optimization of Cryptographically Generated Addresses,” LNCS 5735, Springer, 2009, pp. 17–32. A. AlSa’deh, H. Raiee, and C. Meinel, “Stopping Time Condition for Practical IPv6 Cryptographically Generated Addresses,” 26th IEEE Int’l Conf. Information Networking (ICOIN 12), IEEE, 2012, pp. 257–262. S. Jiang, “Analysis of Possible DHCPv6 and CGA Interactions,” drat, 12 Mar. 2012; htp://tools.ietf.org/html/ drat-ietf-csi-dhcpv6-cga-ps-09. S. Chiu and E. Gamess, “A Free and Didactic Implementation of the SEND Protocol for IPv6,” Machine Learning and Systems Engineering, vol. 68, S.-I. Ao, B. Rieger, and M.A. Amouzegar, eds. Springer, 2010, pp. 451–463. H. Raiee, A. AlSa’deh, and C. Meinel, “WinSEND: Windows Secure Neighbor Discovery,” 4th Int’l Conf. Security of Information and Networks (SIN 11), ACM, 2011, pp. 243–246. A. Kukek and B.A. Zeeb, “Native Send Kernel API for BSD,” 2010; htp://people.freebsd.org/~anchie/SeND_ AsiaBSDCon_2010.pdf. T. Cheneau, A. Boudguiga, and M. Laurent, “Signiicantly Improved Performances of the Cryptographically Generated Addresses hanks to ECC and GPGPU,” Computers & Security, vol. 29, no. 4, 2010, pp. 419–431. S. Guangxue et al., “A Quick CGA Generation Method,” 2nd Int’l Conf. Future Computer and Communication (ICFCC), IEEE, 2010, pp. V1-769–V1-773. S. Jiang and S. Xia, “Coniguring Cryptographically Generated Addresses (CGA) Using DHCPv6,” 11 Apr. 2012; http://tools.ietf.org/html/draft-ietf-dhc-cga-config -dhcpv6-02. H. Raiee, A. AlSa’deh, and C. Meinel, “Multicore-Based Auto-Scaling SEcure Neighbor Discovery for Windows Operating Systems,” 26th IEEE Int’l Conf. Information Networking (ICOIN 12), IEEE, 2012, pp. 269–274. T. Aura and M. Roe, “Strengthening Short Hash Values,” http://citeseerx.ist.psu.edu/viewdoc/summary?doi =10.1.1.145.7681. E. Levy et al., “IPv6 Router Advertisement Guard,” RFC 6105, Feb. 2011; htp://tools.ietf.org/html/rfc6105. particularly IPv6 security. AlSa’deh has an MS in scientiic computing from Birzeit University in Palestine. Contact him at ahmad.alsadeh@hpi.uni-potsdam.de. Christoph Meinel is a professor and director of the Hasso-Platner-Institut at the University of Potsdam, where he leads the Internet-Technologies and Systems research group. His research interests include security and trust engineering, Web 3.0, and eLearning. Meinel has a PhD computer science from the Humboldt-University in Berlin. Contact him at christoph.meinel@hpi.uni-potsdam.de. Selected CS articles and columns are also available for ree at htp://ComputingNow.computer.org. Ahmad AlSa’deh is a PhD student at the Hasso-Platner- Institut at the University of Potsdam, Germany. His research interests include networking security, 10 IEEE Security & Privacy July/August 2012