# PrECast: An Efficient Crypto-Free Solution for Broadcast-Based Attacks in IPv4 Networks
## 3 Mitigating the ARP-Poisoning Attack
### Algorithm-Based Solutions  
[PERSON], [PERSON] and [PERSON] (2013) proposed a cryptographic scheme to address the ARP-poisoning problem, called a Secure Address Resolution Protocol (S-ARP). They introduced a set of functionalities that enable an integrity and authenticity check on the content of ARP replies using asymmetric key cryptography. In their scheme, every host in the network has a public and a private key pair, certified by a local trusted party on the LAN. The certificate from the trusted party provides a binding between the host identity, its public key and its IP address. Each host sends its signed certificate containing the public key and the IP address to the Authoritative Key Distributor (AKD), which inserts the public key and the IP address in a local database, after validation. Any S-ARP-enabled host is identified by its own IP address and the public/private key pairs. Using this key pair, S-ARP provides message authentication. However, S-ARP does not offer any traffic confidentiality. This feature is left to the higher layers in the OSI stack. In S-ARP, all ARP-reply messages are digitally signed by the sender with the corresponding private key. At the receiving side, the signature is verified using the host's public key. If the public key of the sender is not available, the receiving host will send a request to the AKD. The AKD in turn sends it to the requesting host in a digitally-signed message. The first step in the S-ARP scheme is to identify the AKD and distribute through a secure channel its public key and MAC address to all the other hosts. Such an operation may be performed manually when a host is installed on the LAN for the first time. S-ARP has several disadvantages. We list some of the important disadvantages here:  
* S-ARP requires a public and private key for every host in the network. The key pair has to be generated either by the host itself or by the network administrator. Leaving it to the network administrator adds an overhead. In the first case, not every host may generate a strong key pair. An attacker may impersonate a node that has a weak key pair. In addition to this, this technique may not scale in a large-scale network. * The public key and the MAC address of the AKD need to be sent to every host securely. Thus, this scheme can only be implemented in a restricted private network environment. * Key revocation is one of the important issue that is hard to implement using this scheme. * An attacker may launch a DDoS attack against the AKD to bring the entire network down. [PERSON], [PERSON] and [PERSON] (2013) proposed the Ticket-based Address Resolution Protocol (TARP) to solve the ARP-poisoning problem. Their main objective was to provide a cost-effective solution to the ARP-poisoning problem. The major flaw in the design of the ARP protocol is the lack of authentication. Due to this flaw, an attacker can forge an ARP reply to inject a new address association into the victim's cache (called reply spoofing) and forge an ARP reply to replace an address association in the victim's cache (called entry-poisoning). TARP addresses these two vulnerabilities through attestation (called tickets) generated by a centralized server. Their ticketing scheme is based on [14; 15]. Each ticket has a validation period. The TARP process is similar to the ARP mechanism: a host that requires a <MAC, IP >binding will broadcast an ARP request. The host with the requested IP address sends a reply, along with its ticket. The validity of the ticket can be verified using the public key of the Local Ticketing Agent (LTA). Since an adversary has no knowledge of the private key of the LTA, he/she may not be able to forge a ticket. To make their proposal less complex, they propose to use the DHCP server for the role of LTA, as well. Since TARP adds the missing authentication to the ARP protocol, it solves the ARP-poisoning problem. Compared with the S-ARP protocol, TARP is less complex. There is no need for every host to have a public and private key pair.