## 3 Related Technologies
### Lightweight Secure Neighbor Discovery for 6 LoWPAN (LSEND)
In this way, NS messages are also used to perform unreachability detection and are mainly used by nodes to verify the default router reachability. NDP is not secure when physical security on the link is not guaranteed. If a malicious node knows, by spoofing, the link-layer and the IPv6 addresses previously registered by a legitimate node, it might register the same IPv6 address either with its own link-layer address or with a fictitious address. This vulnerability can be exploited for different types of security attacks: redirection, denial-of-service and flooding denial-of-service. In redirection attacks, the malicious node receives the packets and reroutes them (either changed or unchanged) to their legitimate node. In denial-of-service attacks, the malicious node prevents communications between the legitimate node and either all other nodes or some particular destination node. In flooding denial-of-service attacks, the malicious node redirects the packets from other nodes to a victim node to create on it a flood of bogus traffic. Figure 2: 6 LoWPAN neighbor discovery address registration. Meanwhile, the secure neighbor discovery protocol (SEND) [34] was proposed for traditional IPv6 networks to protect NDP against these attacks. The SEND protocol uses: (i) an authorization delegation discovery process to prove the routers' identity, (ii) an address ownership proof mechanism based on cryptographically generated addresses (CGA) and (iii) digital signatures for all NDP messages. SEND specification uses a cryptographically generated address method to bind a RSA public key to an IPv6 address and to digitally sign all NDP messages. However, RSA is not suitable for low power and resource constrained nodes, because it is computationally intensive and leads to long message sizes [34]. To overcome this problem, the lightweight secure neighbor discovery for low-power and lossy networks work in progress specification (LSEND) [7] relies on elliptic curve cryptography (ECC) to generate the CGA and on elliptic curve digitally signature algorithm (ECDSA) to sign the NDP messages. In fact, elliptic curve cryptography can provide the same level and type of security guarantees as RSA using much shorter keys [34,35]. The computational overhead of both ECC and RSA raises with O(N\({}^{3}\)), where N is the bit length, while ECC and ECDSA lead to much smaller message sizes and lower computational load when compared with RSA [36]. All nodes generate a public and private key pair for each network interface in order to generate their own CGA addresses and to create the digital signatures [34], necessary to sign NDP messages. The digital signature is a hash code based on nodes private key, source and destination IPv6 addresses, header type protocol (8 bits), header checksum value (16 bits), the NDP message header (and its options) and a 128 bits constant, randomly generated and designated by message type tag. The ECC based algorithm used to generate CGA takes three parameters: the EUI-64 identifier, the public key of the interface and a three bit security parameter used to hamper brute force attacks. Note that both SEND and LSEND protocols require no public key infrastructure. Therefore, any node, including potential attacker nodes, may generate and register valid CGAs, but an attacker node cannot use a CGA previously registered by legitimate nodes, preventing in this way the previously described attacks. When a 6 LN receives a RA message from a 6 LR, it configures its own CGA address and launches the address registration process (as illustrated in Figure 2) by sending a NS message with both the configured address and the CGA options (_i.e._, the IPv6 source address of the NS message is set to its CGA address, the message carries the 6 LN public key and it is signed with the 6 LN private key). The 6 LR receives the NS message and, based on its CGA options, runs two verification steps: (1) it verifies the source address using the claimed IPv6 source address and (2) it runs a cryptographic check of the signature included in the NS message.