ES-MPICH2: A Message Passing Interface with Enhanced Security ABSTRACT: An increasing number of commodity clusters are connected to each other by public networks, which have become a potential threat to security sensitive parallel applications running on the clusters. To address this security issue, we developed a Message Passing Interface (MPI) implementation to preserve confidentiality of messages communicated among nodes of clusters in an unsecured network. We focus on MPI rather than other protocols, because MPI is one of the most popular communication protocols for parallel computing on clusters. Our MPI implementation—called ES-MPICH2—was built based on MPICH2 developed by the Argonne National Laboratory. Like MPICH2, ES-MPICH2 aims at supporting a large variety of computation and communication platforms like commodity clusters and high-speed networks. We integrated encryption and decryption algorithms into the MPICH2 library with the standard MPI interface and; thus, data confidentiality of MPI applications can be readily preserved without a need to change the source codes of the MPI applications. MPI-application programmers can fully configure any confidentiality services in MPICHI2, because a secured configuration file in ES-MPICH2 offers the programmers flexibility in choosing any cryptographic schemes and keys seamlessly incorporated in ES-MPICH2. We used the Sandia Micro Benchmark and Intel MPI Benchmark suites to evaluate and compare the performance of ES-MPICH2 with the original MPICH2 version. Our experiments show that overhead incurred by the confidentiality services in ESMPICH2 is marginal for small messages. The security overhead in ES-MPICH2 becomes more pronounced with larger messages. Our results also show that security overhead can be significantly reduced in ES-MPICH2 by highperformance clusters. The executable binaries and source code of the ES-MPICH2 implementation are freely www.eng.auburn.edu/~xqin/software/es-mpich2/. ARCHITECTURE: available at http:// EXISTING SYSTEM: Preserving data confidentiality in a message passing environment over an un-trusted network is critical for a wide spectrum of security-aware MPI applications, because unauthorized access to the security-sensitive messages by un-trusted processes can lead to serious security breaches. Hence, it is imperative to protect confidentiality of messages exchanged among a group of trusted processes. It is a nontrivial and challenging problem to offer confidentiality services for large-scale distributed clusters, because there is an open accessible nature of the open networks. Disadvantages of Existing System: Cannot preserve the data confidentiality in a message passing environment over an un-trusted network. Unauthorized access causes serious security issues. The existing system also faces problem in providing confidentiality in large scale distributed clusters. PROPOSED SYSTEM: The proposed system solves the challenging problem of confidentiality services for large-scale distributed clusters, by enhancing the security of the MPI protocol by encrypting and decrypting messages sent and received among computing nodes. The proposed system focuses on MPI rather than other protocols, because MPI is one of the most popular communication protocols for cluster computing environments. Among a variety of MPI implementations, we picked MPICH2 developed by the Argonne National Laboratory. The design goal of MPICH2—a widely used MPI implementation— is to combine portability with high performance We integrated encryption algorithms into the MPICH2 library. Thus, data confidentiality of MPI applications can be readily preserved without a need to change the source codes of the MPI applications. Advantages of Proposed system: Can provide confidentiality services for large-scale distributed clusters The proposed system is highly portable. The system also poses high performance. The proposed system is very useful for protecting data transmitted in open networks like the Internet. The ES-MPICH2 mechanism allows application programmers to easily write secure MPI applications without additional code for data-confidentiality protection. The implemented ES-MPICH2 framework provides a secured configuration file that enables application programmers to selectively choose any cryptographic algorithm and symmetric-key in ES-MPICH2. This feature makes it possible for programmers to easily and fully control the security services incorporated in the MPICHI2 library. OBJECTIVE: Our main objective is to develop a Message Passing Interface (MPI) implementation: to preserve confidentiality of messages communicated among nodes of clusters in an unsecured network. MODULES: 1) Constructing message passing environments. 2) Message passing implementation protocol module 3) ECC implementation module 4) Threat Model 5) Integrity checking evaluation module. MODULE DESCRIPTION: 1) Constructing message passing environments. In this module, we construct the message passing environment to propose our efficient message passing interface using ECC. We implemented this module, from a standard MPI mechanism called ES-MPICH2 to offer data confidentiality for secure network communications in message passing environments. Our proposed security technique incorporated in the MPICH2 library can be very useful for protecting data transmitted in open networks like the Internet. MPI NETWORK SENDER Secured Data Content RECEIVER 2) Message passing implementation protocol module In this module we develop a Message Passing Interface (MPI) protocol which is a standardized and portable message-passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers. The standard defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message-passing programs. The MPI interface is meant to provide essential virtual topology, synchronization, and communication functionality between a set of processes (that have been mapped to nodes/servers/computer instances) in a language-independent way, with language-specific syntax (bindings), plus a few language-specific features. MPI programs always work with processes, but programmers commonly refer to the processes as processors. Typically, for maximum performance, each CPU (or core in a multi-core machine) will be assigned just a single process. This assignment happens at runtime through the agent that starts the MPI program, normally called mpirun or mpiexec. Sender Data Original Data Apply ECC Algorithm Apply Integrity Verification Scheme NETWORK Received Data Secured Content 3) ECC implementation module In this module we implement, Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. Elliptic curves are also used in several integer factorization algorithms that have applications in cryptography, the Elliptic Curve Digital Signature Algorithm (ECDSA) is based on the Digital Signature Algorithm, 4) Threat Model We first describe the confidentiality aspect of security in clusters followed by three specific attack instances. We believe new attacks are likely to emerge, but the confidentiality aspect will remain unchanged. Confidentiality attacks attempts to expose messages being transmitted among a set of collaborating processes in a cluster. For example, if attackers gain network administrator privilege, they can intercept messages and export the messages to a database file for further analysis. Even without legitimate privilege, an attacker still can sniff and intercept all messages in a cluster on the public network. Such attacks result in the information leakage of messages passed among computing nodes in geographically distributed clusters. Cryptography and access control are widely applied to computer systems to safeguard against confidentiality attacks. 5) Integrity checking evaluation module. In this module we implement the integrity checking and evaluation process, while you can count on data integrity being addressed through multiple mechanisms for data. In this module we also show how we address the data integrity issues that require attention but occur after the data is sent. After data has been sent to destination, confirming the integrity of data is sent todestination only. Signature Generation For signing a message m by sender A, using A’s private key dA 1. Calculate e = HASH (m), where HASH is a cryptographic hash function, such as SHA-1 2. Select a random integer k from [1,n − 1] 3. Calculate r = x1 (mod n), where (x1, y1) = k * G. If r = 0, go to step 2 4. Calculate s = k − 1(e + dAr)(mod n). If s = 0, go to step 2 5. The signature is the pair (r, s) Signature Verification For B to authenticate A's signature, B must have A’s public key QA 1. Verify that r and s are integers in [1,n − 1]. If not, the signature is invalid 2. Calculate e = HASH (m), where HASH is the same function used in the signature generation 3. Calculate w = s −1 (mod n) 4. Calculate u1 = ew (mod n) and u2 = rw (mod n) 5. Calculate (x1, y1) = u1G + u2QA 6. The signature is valid if x1 = r(mod n), invalid otherwise SYSTEM SPECIFICATION Hardware Requirements: • System : Pentium IV 2.4 GHz. • Hard Disk : 40 GB. • Floppy Drive : 1.44 Mb. • Monitor : 14’ Colour Monitor. • Mouse : Optical Mouse. • Ram : 512 Mb. • Keyboard : 101 Keyboard. Software Requirements: • Operating system : Windows XP. • Coding Language : C#.NET • Tool : Visual Studio 2008 • Data Base : SQL Server 2005. REFERENCE: Xiaojun Ruan, Qing Yang, Mohammed I. Alghamdi, Shu Yin and Xiao Qin, “ESMPICH2: A Message Passing Interface with Enhanced Security”, IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, VOL.9, NO.3, MAY/JUNE 2012.