PARASITIC COMPUTING By Awulu Great RUN/CMP/17/7045 INTRODUCTION Parasitic Computing Parasitic Computing is a Concept whereby one can utilize the resources of machines that are connected over the internet or the same network. In this type of computing, a parasite which is the computer attempts to solve a complex task by breaking it up into many small sub-tasks and distributing the processing over several separate remote computers that are connected over a network. (Barger & Crowell). Parasitic computing is seen as a model in which one machine “forces” other machines to solve a computational problem by engaging in standard communication with them. Checksum: A checksum is a value used to verify the integrity of a file or a data transfer. In other words, it is a sum that checks the validity of data. Checksums are typically used to compare two sets of data to make sure they are the same. Also a checksum is an error detection tool, used to check if data sent between two or more device are valid. If the checksums don't match those of the original files, the data may have been altered or corrupted. It is used in networking at the Transport layer, IP layer and the Network Layer. TCP: The Transmission Control Protocol (TCP) is a transport protocol that is used on top of Internet Protocol (IP) to ensure reliable transmission of packets. The TCP defines the how packets of data is sent between devices in a network. The parasite, that is the machine that houses the problem or initiates communication, exploits the communication channel at the TCP or at higher layers of the network to take advantage of the other machine(s) processing power. Parasitic Computing was first proposed by Albert-Laszlo Barabasi, Vincent W. Freeh, Hawoong Jeong & Jay B. Brockman of the University of Notre Dame, Indiana, USA, in 2001. In the original paper a 3-SAT or the Satisfiability problem was used to demonstrate the concept of breaking problems to sub-problems and using other computers processing power. Each of the sub-problems are encoded between a checksum and a packet and are injected at the IP layer. The design of the message sent is designed to evaluate a potential solution by exploiting the TCP checksum. After the target server receives the message, it will try to verify the data integrity of the TCP segment by calculating a TCP checksum. The Target server or computer, as part of receiving the packet and deciding whether it is valid and well-formed, create a checksum of the packet and see whether it is identical to the provided checksum. The design of the message makes the checksum check fail if the answer or solution to the sub-problem is invalid. If the checksum is invalid, it will then request a new packet from the “parasite” computer. The “parasite”computer now knows the answer to that smaller problem based on the second computer's response and can transmit a fresh packet embodying a different sub-problem. Brief Literature Review and Related Works Barabsi et al., (2001) suggested a parasitic computer to solve the nondeterministic polynomial time-complete satisfiability problem by engaging different web servers physically located in three continents (America, Europe and Asia). Vincent (2002) described how a TCP/IP Checksum Computer (TICC) will be built, in a paper called the anatomy of a parasitic computer. It uses a specially constructed TCP segment in such a way that when the receiver computes the checksum, it unwittingly performs a computation for a remote node. Using the TCP checksum, a parasite is able to ask the following question. The paper detailed the implementation of the TICC in linux Agbaje (2013) worked on parasitic computing : problems and ethical considerations. This paper onlines the some of the security challenges that can arise as a result of parasitic computing like ip spoofing, spread of worms, virus, trojan horses and also Distributed Denial of Service attacks (DDOS). Barger and Crowell (2005) illustrated Ethics of ‘Parasitic Computing’:Fair Use or Abuse of TCP/IP Over the Internet? In this paper, the attacks that can be performed against a computer in a used in the parasitic model were described Also a philosophical look was taken on the morality of parasitic computing. Architecture of a Parasitic computing Model using the TCP checksum function To implement a parasitic computer using the checksum function we need to design a special message that coerces a target server into performing the desired computation. As a test problem we choose to solve the well known `satisfiability' (or SAT) problem, which is a common test for many unusual computation methods 4,5 . The SAT problem involves ending a solution to a Boolean equation that satisfies a number of logical clauses. This is called a 2-SAT problem because each clause, shown in parentheses, involves two variables. The more difficult 3-SAT problem is known to be NP complete, which in practice means that there is no known polynomial-time algorithm which solves it. Tcp checksum Function implementation APPLICATION AREAS ➔ Solving of Mathematical problems (e.g satisfiability problems, time complex problems) ➔ Bitcoin mining References Agbaje, M. (2013, june). PARASITIC COMPUTING: PROBLEMS AND ETHICAL CONSIDERATION. International Journal of Advanced Research, 1(11), 8-18. https://www.researchgate.net/publication/333868456_PARASITIC_COMPUTING_P ROBLEMS_AND_ETHICAL_CONSIDERATION/ Albert-Laszlo, B., Freeh, V., Hawoong, J., & Jay, B. (n.d.). Nature. Barger, R., & Crowell, C. (n.d.). THE ETHICS OF “PARASITIC COMPUTING:” Distributed Computation or Trespassing? Information Ethics: Privacy and Barger, R., & Crowell, C. (n.d.). THE ETHICS OF “PARASITIC COMPUTING:” Distributed Computation or Trespassing? Information Ethics: Privacy and Intellectual Property. Freeh, V. (n.d.). Anatomy of a parasitic computer. Doctor Dobbs Journal, 27(1). https://www.drdobbs.com/security/anatomy-of-a-parasitic-computer/184404947