ES-MPICH2 A Message Passing Interface with Enhanced Security

advertisement
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.
Download