Three Server Swapping Report
Three Server Swapping Report
ABSTRACT:
We propose an approach to protect confidentiality of data and accesses to them
when data are stored and managed by external providers, and hence not under
direct control of their owner. Our approach is based on the use of distributed data
allocation among three independent servers and on a dynamic re-allocation of data
at every access. Dynamic re-allocation is enforced by swapping data involved in an
access across the servers in such a way that accessing a given node implies re-
allocating it to a different server, then destroying the ability of servers to build
knowledge by observing accesses. The use of three servers provides uncertainty, to
the eyes of the servers, of the result of the swapping operation, even in presence of
collusion among them.
INTRODUCTION
A recent trend and innovation in the IT scenario has been the increasing adoption
of the scenario has been the increasing adoption of the cloud computing paradigm.
Companies can rely on the cloud for data storage and management and then benefit
from low costs and high availability. End users can benefit from cloud storage for
enjoying availability of data anytime anywhere, even from mobile devices.
Together with such a convenience comes however a loss of control of the data
(stored and managed by “the cloud”). The problem of ensuring data confidentiality
in outsourcing and cloud scenarios has received considerable attention by the
research and development communities in the last few years and several solutions
have been proposed. A simple solution for guaranteeing data confidentiality
consists in encrypting the data. Modern cryptographic algorithms offer high
efficiency and strong protection of data content. Simply protecting data content
with an encryption layer does not fully solve the confidentiality problem, as access
confidentiality, namely the confidentiality of the specific accesses performed on
the data remains at risk. There are several reasons for which access confidentiality
may be demanded, among which the fact that breaches in access confidentiality
may leak information on access profiles of users and, in the end, even on the data
themselves, therefore causing breaches in data confidentiality. Several approaches
have been recently proposed to protect access confidentiality. While with different
variations, such approaches share the common.
It differs from the shuffle index in the management of the data structure, for both
storage and access (which exploit a distributed allocation) and in the way the node-
block correspondence is modified, applying swapping instead of random shuffling,
forcing the node involved in an access to change the block where it is stored (again
exploiting the distributed allocation). Also, it departs from the cache, then not
requiring any storage at the client side.
The basic idea of our approach is to randomly partition data among three
independent storage servers, and, at every access, randomly move (swap) data
retrieved from a server to any of the other two so that data retrieved from a server
would not be at the same server after the access. Since nodes are randomly
allocated to servers, the path from the root to the leaf target of an access can
traverse nodes allocated at different servers. Then, to provide uniform visibility at
any access at every server (which should operate as if it was the only one serving
the client), every time the node to be accessed at a given level belongs to one
server, our approach also requests to access one additional block (distributed
cover) at the same level at each of the other servers.
The reader may wonder why we are distributing the index structure among three
servers, and not two or four. The rationale behind the use of multiple servers is to
provide limited visibility, at each of the servers, of the data structure and of the
accesses to it. In this respect, even adopting two servers could work. However, an
approach using only two servers would remain too exposed to collusion between
the two that, by merging their knowledge, could reconstruct the node-block
correspondence and compromise access and data confidentiality. Also, the data
swapping we adopt, while providing better protection with respect to shuffling in
general, implies deterministic reallocation in the case of two servers and could then
cause exposure in case of collusion. The use of three servers provides instead
considerably better protection. Swapping ensures that data are moved out from a
server at every access, providing non determinism in data reallocation (as the data
could have moved to any of the other two servers), even in presence of collusion
among the three servers. While going from two servers to three servers provides
considerably higher protection guarantees, further increasing the number of servers
provides limited advantage, while instead increasing the complexity of the system
The remainder of the paper is organized as follows. Section 2 recalls the basic
concepts of the shuffle index. Section 3 introduces the rationale of our approach.
Section 4 describes our index structure working on three servers. Section 5
presents the working of our approach, discussing protection techniques and data
access. Section 6 analyzes protection guarantees. Section 7 discusses the
motivations behind our choice of swapping and of three as the number of servers to
be used, and provides some performance and economic considerations for our
approach. Section 8 illustrates related works. Finally, Section 9 concludes the
paper.
LITURATURE SURVEY:
A Cumulative Study for Three Servers Swapping in Cloud
Enhancing Security through Data Swapping and Shuffling Across the Servers
in Cloud
The shuffle technique is used recently for organizing and accessing data in cloud.
We use distributed data allocation among more than two independent servers.
Dynamic reallocation is done by swapping across the servers in such a way that
accessing a given node implies re-allocating it to a different server. There is more
protection that derives from the use of independent servers as compared to the use
of one server. In this paper, we introduce shuffling technique for the use of
multiple servers for storing data; introduce a new protection technique (shadow
copy) and enhancing the original ones by operating in a distributed system.
The wide proliferation of the Internet has set new requirements for access control
policy specification. Due to the demand for ad-hoc cooperation between
organisations, applications are no longer isolated from each other; consequently,
access control policies face a large, heterogeneous, and dynamic environment.
Policies, while maintaining their main functionality, go through many minor
adaptations, evolving as the environment changes. In this thesis we investigate the
long-term administration of role-based access control (RBAC) – in particular
OASIS RBAC – policies. With the aim of encapsulating persistent goals of policies
we introduce extensions in the form of meta-policies. These meta-policies, whose
expected lifetime is longer than the lifetime of individual policies, contain extra
information and restrictions about policies. It is expected that successive policy
versions are checked at policy specification time to ensure that they comply with
the requirements and guidelines set by meta-policies.
Data sharing enhances the utilisation of data and promotes competition of scientific
ideas as well as promoting collaboration. Sharing and reusing public data sets has
the potential to increase research efficiency and quality. Sharing data that contains
personally identifiable or sensitive information, such as medical records, always
has privacy and security implications. For research purposes, having access to
large sets of data, often from various regions, improves statistical outcomes of
analysis. However, shared data is usually considered to be sensitive and access to it
is restricted by law and regulation. This thesis employs privatization techniques to
provide an architecture which enables sharing of sensitive data. Utilization of our
architecture is demonstrated by means of a case study based on four medical data
sets. This thesis also provides a solution for sharing the sensitive data where large
numbers of data contributors publish their privatized data sets and aggregates on a
cloud so that data can be made available to anyone who wants access to it, for
whatever purpose. Additionally, our solution determines how aggregated data can
be efficiently and effectively queried, while retaining privacy not only of the data,
but also of the original data owner and of both the query and person querying.
EXISTING SYSTEM:
In particular, our approach relies on data distribution by allocating the data
structure over three different servers, each of which will the data structure over
three different servers, each of which will then see only a portion of the data blocks
and will similarly have a limited visibility of the accesses to the data. Data
swapping implies changing the physical location of accessed data by swapping
them among the three involved servers. Swapping, in contrast to random shuffling,
forces the requirement that whenever a block is accessed, the data retrieved from it
(i.e., stored in the block before the access) should not be stored at the same block
after the access. We illustrate in this paper how the use of three servers (for
distributed data allocation) together with swapping (forcing data re-allocation
across servers) provide nice protection guarantees, typically outperforming the use
of a random shuffling assuming (as it is to be expected) no collusion among
servers, and maintaining sufficient protection guarantees even in the presence of
collusions among two, or even all three, of the involved servers.
PROPOSED SYSTEM:
The basic idea of our approach is to randomly partition data among three
independent storage servers, and, at every access, randomly move (swap) data
retrieved from a server to any of the other two so that data retrieved from a server
would not be at the same server after the access. Since nodes are randomly
allocated to servers, the path from the root to the leaf target of an access can
traverse nodes allocated at different servers. Then, to provide uniform visibility at
any access at every server (which should operate as if it was the only one serving
the client), every time the node to be accessed at a given level belongs to one
server, our approach also requests to access one additional block (distributed
cover) at the same level at each of the other servers.
System Configuration
Hard Disk - 20 GB
Floppy Drive - 1.44 MB
Monitor - SVGA
Scripts : JavaScript.
Database : Mysql
Modules
Module Description:
INTRODUCTION TO JSP/SERVLET:
In the early days of the Web, most business Web pages were simply forms of
advertising tools and content providers offering customers useful manuals,
brochures and catalogues. In other words, these business-web-pages had static
content and were called "Static WebPages".
Later, the dot-com revolution enabled businesses to provide online services for
their customers; and instead of just viewing inventory, customers could also
purchase it. This new phase of the evolution created many new requirements; Web
sites had to be reliable, available, secure, and, if it was at all possible, fast. At this
time, the content of the web pages could be generated dynamically, and were
called "Dynamic WebPages".
The Static Web Pages contents are placed by the professional web developer
himself when developing the website; this is also called "design-time page
construction". Any changes needed have to be done by a web developer, this
makes Static WebPages expensive in their maintenance, especially when frequent
updates or changes are needed, for example in a news website.
On the other hand, dynamic Web pages have dynamically generated content that
depends on requests sent from the client's browser; this is called "constructed on
the fly". Updates and maintenance can be done by the client himself (doesn't need
professional web developers), this makes Dynamic WebPages considered to be the
best choice for web sites experiencing frequent changes.
To generate dynamic content, scripting languages are needed. There are two types
of scripting languages:
1.Client-Side Scripting:
Server-side Scripting:
Introduction of JavaScript
The Java Virtual Machine Machine language consists of very simple instructions
that can be executed directly by (online) the CPU of a computer. Almost all
programs, though, are written in high-level programming languages such as Java,
Pascal, or C++. A program written in a high-level language cannot be run directly
on any computer. First, it has to be translated into machine language. This
translation can be done by a program called a compiler. A compiler takes a high-
level-language program and translates it into an executable machine-language
program. Once the translation is done, the machine-language program can be run
any number of times, but of course it can only be run on one type of computer
(since each type of computer has its own individual machine language). If the
program is to run on another type of computer it has to be re-translated, using a
different compiler, into the appropriate machine language.
Why, you might wonder, use the intermediate Java bytecode at all? Why not just
distribute the original Java program and let each person compile it into the machine
language of whatever computer they want to run it on? There are many reasons.
First of all, a compiler has to understand Java, a complex high-level language. The
compiler is itself a complex program. A Java bytecode interpreter, on the other
hand, is a fairly small, simple program. This makes it easy to write a bytecode
interpreter for a new type of computer; once that is done, that computer can run
any compiled Java program. It would be much harder to write a Java compiler for
the same computer.
When Java was still a new language, it was criticized for being slow: Since Java
bytecode was executed by an interpreter, it seemed that Java bytecode programs
could never run as quickly as programs compiled into native machine language
(that is, the actual machine language of the computer on which the program is
running). However, this problem has been largely overcome by the use of just-in-
time compilers for executing Java bytecode. A just-in-time compiler translates Java
bytecode into native machine language. It does this while it is executing the
program. Just as for a normal interpreter, the input to a just-in-time compiler is a
Java bytecode program, and its task is to execute that program. But as it is
executing the program, it also translates parts of it into machine language. The
translated parts of the program can then be executed much more quickly than they
could be interpreted. Since a given part of a program is often executed many times
as the program runs, a just-in-time compiler can significantly speed up the overall
execution time.
I should note that there is no necessary connection between Java and Java
bytecode. A program written in Java could certainly be compiled into the machine
language of a real computer. And programs written in other languages could be
compiled into Java bytecode. However, it is the combination of Java and Java
bytecode that is platform-independent, secure, and networkcompatible while
allowing you to program in a modern high-level object-oriented language.
Sensor networks are used in application domains, examples are cyber physical
infrastructure, environmental monitoring, whether monitoring power grids, etc.
The data that should be large sensor node sources and processed in-network with
their way to a Base Station (BS) that performs which decision should be taking.
Information is considered in the decision process or making. Data provenance is an
effective method to assess data trustworthiness, and the actions performed on the
data. Provenance in sensor networks has not been present properly addressed. We
investigate the problem of secure and efficient Journal homepage: www.mjret.in
ISSN:2348 - 6953 Multidisciplinary Journal of Research in Engineering and
Technology, Volume 2, Issue 4, Pg.823-828 824 | P a g e M43-2-4-10-2015
provenance transmission and handling for sensor networks, and we use provenance
to detect packet loss attacks staged by malicious sensor nodes. In a multi-hop
sensor network the data provenance is to allow the Base Station to trace the source
and forwarding path of a specific data packet the provenance must be record for
each an every packet, but important challenges arise due to some reason the first is
tight storage, energy and bandwidth constraints of sensor nodes. Therefore it is
necessary devise a light-weight provenance solution with low overhead. Sensors
should operate in untrusted environment, where they may be happens subject to
attacks. That’s why it is necessary to address security requirements such as
privacy, reliability and cleanness of provenance. Our project goal is to design a
provenance encoding and decoding tool that would be satisfies such safety and
presentation needs. We Design propose a provenance encoding strategy where
each node on the track of a data packet securely embeds provenance information
within a Bloom filter that is conveyed along with the data. Receiving the packet the
Base Station should be extracts and verifies the provenance information. The
provenance encoding system that allows the Base Station to detect if a packet drop
attack was staged by a malicious node. We use fast Message Authentication Code
and Bloom filters (BF), which are stable size data structures that efficiently
represent provenance. The modern developments in micro sensor technology and
low power analog and digital electronics, have led to the development of
distributed, wireless networks of sensor devices Sensor networks of the future are
intended to consist of hundreds of cheap nodes, that can be readily deployed in
physical situations to collect useful information. Our motivation on the subsection
of distributed networking applications created on packetheader-size Bloom filters
to share some state between network nodes. The specific state carried in the Bloom
filter differs from application to application, ranging from secure credentials to IP
prefixes and link identifiers with the shared requirement of a fixed-size packet
header data structure to well verify set memberships. Bloom filters make effective
usage of bandwidth, and they yield low error rates in practice. Our specific
contributions are:-
We introduce the network, data and provenance models used. We also present the
threat model and security requirements. Finally, we provide a brief primer on
Bloom filters, their fundamental properties and operations.
JAVA
The Java architecture consists of:
• A high-level object-oriented programming language,
• A platform-independent representation of a compiled class,
• A pre-defined set of run-time libraries,
• A virtual machine.
This book is mainly concerned with the language aspects of Java and the
associated java.lang library package. Consequently, the remainder of this section
provides a brief introduction to the language. Issues associated with the other
components will be introduced as and when needed in the relevant chapters. The
introduction is broken down into the following components • identifiers and
primitive data types
• structured data types
• Reference types
• Blocks and exception handling
• control structures
• Procedures and functions
• object oriented programming, packages and classes
• Inheritance
• interfaces
• Inner classes.
Identifiers and primitive data types
Identifiers Java does not restrict the lengths of identifiers. Although the language
does allow the use of a “_” to be included in identifier names, the emerging style is
to use a mixture of upper and lower case characters. The following are example
identifiers:
FIGURE 1. Part of the The Java Predefined Throwable Class Hierarchy
Enterprise Edition includes the complete set of SQL Server data management and
analysis features and is uniquely characterized by several features that make it the
most scalable and available edition of SQL Server 2005. It scales to the
performance levels required to support the largest Web sites, Enterprise Online
Transaction Processing (OLTP) systems and Data Warehousing systems. Its
support for failover clustering also makes it ideal for any mission critical line-of-
business application.
4. Data encryption
SQL Server 2000 had no documented or publicly supported functions to encrypt
data in a table natively. Organizations had to rely on third-party products to
address this need. SQL Server 2005 has native capabilities to support encryption of
data stored in user-defined databases.
5. SMTP mail
Sending mail directly from SQL Server 2000 is possible, but challenging. With
SQL Server 2005, Microsoft incorporates SMTP mail to improve the native mail
capabilities. Say "see-ya" to Outlook on SQL Server!
6. HTTP endpoints
You can easily create HTTP endpoints via a simple T-SQL statement exposing an
object that can be accessed over the Internet. This allows a simple object to be
called across the Internet for the needed data.
7. Multiple Active Result Sets (MARS)
MARS allow a persistent database connection from a single client to have more
than one active request per connection. This should be a major performance
improvement, allowing developers to give users new capabilities when working
with SQL Server. For example, it allows multiple searches, or a search and data
entry. The bottom line is that one client connection can have multiple active
processes simultaneously.
8. Dedicated administrator connection
If all else fails, stop the SQL Server service or push the power button. That
mentality is finished with the dedicated administrator connection. This
functionality will allow a DBA to make a single diagnostic connection to SQL
Server even if the server is having an issue.
9. SQL Server Integration Services (SSIS)
SSIS has replaced DTS (Data Transformation Services) as the primary ETL
(Extraction, Transformation and Loading) tool and ships with SQL Server free of
charge. This tool, completely rewritten since SQL Server 2000, now has a great
deal of flexibility to address complex data movement.
10. Database mirroring
It's not expected to be released with SQL Server 2005 at the RTM in November,
but I think this feature has great potential. Database mirroring is an extension of
the native high-availability capabilities. So, stay tuned for more details….
Internet was originally established to meet the research needs of the U.S Defence
Industry. But it has grown into a huge global network serving universities,
academic researches, commercial interest and Government agencies, both in the
U.S and Overseas. The Internet uses TCP/IP protocols and many of the Internet
hosts run the Unix Operating System.
SOFTWARE REQUIREMENT SPECIFICATION
A software requirements specification (SRS) is a complete description of the
behavior of the software to be developed. It includes a set of use cases that
describe all of the interactions that the users will have with the software. In
addition to use cases, the SRS contains functional requirements, which define the
internal workings of the software: that is, the calculations, technical details, data
manipulation and processing, and other specific functionality that shows how the
use cases are to be satisfied. It also contains nonfunctional requirements, which
impose constraints on the design or implementation (such as performance
requirements, quality standards or design constraints).
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that
they can develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core
concepts.
3. Be independent of particular programming languages and development
process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations,
frameworks, patterns and components.
7. Integrate best practices.
Class Diagram
The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and
those steps are necessary to put transaction data in to a usable form for processing
can be achieved by inspecting the computer to read data from a written or printed
document or it can occur by having people keying the data directly into the system.
The design of input focuses on controlling the amount of input required,
controlling the errors, avoiding delay, avoiding extra steps and keeping the process
simple. The input is designed in such a way so that it provides security and ease of
use with retaining the privacy. Input Design considered the following things:
2.It is achieved by creating user-friendly screens for the data entry to handle large
volume of data. The goal of designing input is to make data entry easier and to be
free from errors. The data entry screen is designed in such a way that all the data
manipulates can be performed. It also provides record viewing facilities.
3. When the data is entered it will check for its validity. Data can be entered with
the help of screens. Appropriate messages are provided as when needed so that the
user will not be in maize of instant. Thus the objective of input design is to create
an input layout that is easy to follow
OUTPUT DESIGN:
A quality output is one, which meets the requirements of the end user and presents
the information clearly. In any system results of processing are communicated to
the users and to other system through outputs. In output design it is determined
how the information is to be displaced for immediate need and also the hard copy
output. It is the most important and direct source information to the user. Efficient
and intelligent output design improves the system’s relationship to help user
decision-making.
The output form of an information system should accomplish one or more of the
following objectives.
FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal is put
forth with a very general plan for the project and some cost estimates. During
system analysis the feasibility study of the proposed system is to be carried out.
This is to ensure that the proposed system is not a burden to the company. For
feasibility analysis, some understanding of the major requirements for the system
is essential.
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on
the organization. The amount of fund that the company can pour into the research
and development of the system is limited. The expenditures must be justified. Thus
the developed system as well within the budget and this was achieved because
most of the technologies used are freely available. Only the customized products
had to be purchased.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand
on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user
must not feel threatened by the system, instead must accept it as a necessity. The
level of acceptance by the users solely depends on the methods that are employed
to educate the user about the system and to make him familiar with it. His level of
confidence must be raised so that he is also able to make some constructive
criticism, which is welcomed, as he is the final user of the system.
SYSTEM TESTING
Software system meets its requirements and user expectations and does not fail in
an unacceptable manner. There are various types of test. Each test type addresses a
specific testing requirement.
TYPES OF TESTS:
Unit testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All
decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on
knowledge of its construction and is invasive. Unit tests perform basic tests at
component level and test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined
inputs and expected results.
Integration testing
Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system
documentation, and user manuals.
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document, such
as specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box
.you cannot “see” into it. The test provides inputs and responds to outputs without
considering how the software works.
1. Unit Testing
Unit testing is usually conducted as part of a combined code and unit test phase of
the software lifecycle, although it is not uncommon for coding and unit testing to
be conducted as two distinct phases.
Field testing will be performed manually and functional tests will be written in
detail.
Test objectives
All field entries must work properly.
Pages must be activated from the identified link.
The entry screen, messages and responses must not be delayed.
Features to be tested
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
Conclusion
We have proposed an approach that protects both the confidentiality of data stored
at external servers and the accesses to them. This approach is based on the use of a
key based dynamically allocated data structure distributed over three independent
servers. We have described our reference data structure and illustrated how our
distributed allocation and swapping techniques operate at every access to ensure
protection of access confidentiality. Our analysis illustrates the protection offered
by our approach considering two representative scenarios. We considered first a
worst-case scenario where servers start with a complete knowledge of the data they
store, showing how swapping quickly brings to a degradation of such a knowledge.
We also analyzed a scenario where the servers do not have initial knowledge, but
know the individual accesses, and show how our approach prevents knowledge
accumulation. Our analysis confirms that distributed allocation and swapping
provide nice protection guarantees, typically outperforming traditional shuffling,
even in presence of collusion.
Future Work
A different, although related, line of works is represented by fragmentation-based
approaches for protecting data confidentiality. These solutions are based on the
idea of splitting sensitive data among different relations, possibly stored at
different storage servers, to protect sensitive associations between attributes in the
original relation. Although based on a similar principle, fragmentation-based
approaches only protect content confidentiality.
SYSTEM IMPLEMENTATION
Implementation is the stage of the project when the theoretical design is turned
out into a working system. Thus it can be considered to be the most critical stage in
achieving a successful new system and in giving the user, confidence that the new
system will work and be effective.
References
3. Practical .Net2 and C#2: Harness the Platform, the Language, and the
Framework by Patrick Smacchia.