Final Report (Dac-Mac)
Final Report (Dac-Mac)
Final Report (Dac-Mac)
Chapter 1
INTRODUCTION
1.1 Overview
Cloud computing describes applications that are extended to be
accessible through the Internet. These cloud applications use large data
centers or cloud data storage (CDS) and powerful servers that host Web
applications and Web services. Anyone with a suitable Internet connection
and a standard browser can access a cloud application. Cloud computing
consists of multiple cloud computing service providers (CSPs). In terms of
software and hardware, a cloud system is composed of many types of
computers, storage devices, communications equipment, and software
systems running on such devices.
Cloud storage is composed of thousands of storage devices clustered
by network, distributed file systems and other storage middleware to provide
cloud storage service for cloud users. The typical structure of cloud storage
includes storage resource pool, distributed file system, service level
agreements (SLAs), and service interfaces, etc. Globally, they can be divided
by physical and logical functions boundaries and relationships to provide
more compatibilities and interactions. Cloud storage is tending to combined
with cloud security, which will provide more robust security [1].
Cloud storage is an important service of cloud computing [1]. It allows data owners to
host their data in the cloud that provides 24/7/365 data access to the users (data consumers).
Data access control is an effective way to ensure the data security in the cloud. However, cloud
storage service separates the roles of the data owner from the data service provider, and the data
owner does not interact with the user directly for providing data access service, which makes the
data access control a challenging issue in cloud storage systems. Because the cloud server cannot
2013-2014
Page 1
2013-2014
Page 2
Data Owner does not directly involve in the interaction with the user.
The cloud server cannot be fully trusted by data owners so traditional server-based access
control methods are no longer applicable to cloud storage systems.
Cloud security is a tractable problem. There are both advantages and challenges.
We propose Third party auditor (TPA) which acts as a proxy server to safeguard the cloud
server.
2)
We construct a new multi-authority CP-ABE scheme with efficient decryption.
Specifically, we outsource the main computation of the decryption by using a token based
decryption method.
2013-2014
Page 3
CP-ABE scheme that achieves both forward security and backward security. It is efficient in the
sense that it incurs less communication cost and computation cost of the revocation.
Proposed System Advantages
This project will provide security to cloud servers as well as the data in the cloud server.
This project uses a Third party auditor (TPA) which acts as a proxy server to safeguard
the cloud server.
This project gives security to the data uploaded by the data owner when user is changed
by revoking the attributes of those users who are using that particular data.
This project allows the user to access multiple data belonging to different fields/sector without
much fuss from the data owner or the cloud server if the user is registered.
Chapter 1 gives an brief introduction about the Cloud storage and data access in cloud
systems.
2013-2014
Page 4
Chapter 4 is about High Level Design which explains the architectural strategies, system
architecture, component interfaces and flow of data in the system with the help of Data
Flow Diagrams (DFD).
Chapter 5 is about Detailed Design which focuses on the major modules and their
respective class diagrams and state diagrams. It explains the key components the
Framework by providing functional description of the modules.
Chapter 7 gives Software Testing which explains the test environment and briefly
explains the test cases which were executed during various testing.
Chapter 8 explains Experimental results which give the outcome of the work carried out
and evaluation criteria on which the project is based.
Chapter 9 is about Conclusion which gives overall description of the project carried and
also brings out the limitations of the project and future enhancements.
2013-2014
Page 5
Chapter 2
Literature Survey
Literature survey is mainly carried out in order to analyze the background of the current
project which helps to find out flaws in the existing system & guides on which unsolved
problems can work out. So, the following topics not only illustrate the background of the project
but also uncover the problems and flaws which motivated to propose solutions and work on this
project. The purpose of this study is to provide background information on the issues to be
considered in this thesis and to emphasize the relevance of the present study.
2.1 Related Work
Cryptographic techniques are well applied to access control for remote storage systems
[17][19]. Traditional public key encryption (PKE) based schemes [20], [21] either incurs
complicated key management or produces multiples copies of encrypted data with different
users keys. Some methods [22], [23] deliver the key management and distribution from the data
owners to the remote server under the assumption that the server is trusted or semi-trusted.
However, the server is not fully trusted in cloud storage systems and thus these methods cannot
be applied to access control for cloud storage systems.
Attribute-based Encryption (ABE) is a promising technique that is designed for access
control of encrypted data. After Sahai and Waters introduced the first ABE scheme [24], Goyal et
al. [25] formulated the ABE into two complimentary forms: Key-Policy ABE (KP-ABE) and
Cipher text-Policy ABE (CPABE). There are a number of works used ABE to realize finegrained
access control for outsourced data [15], [26], [27]. In these schemes, a trusted single authority is
used to manage the attributes and issue keys. However, in real storage systems, the authority can
fail or be corrupted, which may leak out the data since the authority can decrypt all the encrypted
data. Moreover, the authority may become the performance bottleneck in the large scale cloud
storage systems.
2013-2014
Page 6
2013-2014
Page 7
Green et al. [14] proposed two ABE schemes that outsource the decryption to the server.
In their schemes, the authority separates the traditional secret key into a user secret key and a
transformation key. However, their schemes are designed only for the single authority systems
and do not support for the multi-authority systems. That is because each authority may generate
different users secret key, such that the transformation keys cannot be combined together to
transform the cipher text into a correct intermediate value.
2013-2014
Page 8
2013-2014
Page 9
Chapter 3
Requirements Specification
2013-2014
Page 10
2013-2014
Page 11
IDE: Eclipse
Language: Core-Java
Processor: 2.6 GHz 32bit Processor Windows 2003 Server, 1 GHz 32bit Processor
Windows XP Client
Chapter 4
High Level Design
Dept of ISE, SJCE, Mysore
2013-2014
Page 12
As shown in Fig.4.1. The system model consists of Six types of entities: a global
certificate authority (CA), the attribute authorities (AAs), the cloud server (server), the data
owners(owners),the data consumers (users) and the Third Party auditor (TPA).
The CA is a global trusted certificate authority in the system. It sets up the system and
accepts the registration of all the users and AAs in the system. The CA is responsible for the
distribution of global secret key and global public key for each legal user in the system.
Dept of ISE, SJCE, Mysore
2013-2014
Page 13
2013-2014
Page 14
In the above diagram, we can make out that Control agent plays a controlling role in this
project and all users, cloud servers andowners need to register to this control agent to perform
their respective tasks. Control agent will have a third party auditor(TPA) who will display the file
list. And the attribute is given to protect the unauthorised access transaction or iteraction with the
control agent.
2013-2014
Page 15
Here we see the data flowing in the entire project. After the login process of all the users, cloud
servers and owners; the owner will upload a file i.e., encrypted file . The owner will encrypt the
data using a secret key known only to himself. The cloud server will be viewed by everyone so to
avoid any hacking or trouble, we have created a TPA. The users can look at TPA to find out what
all files are there in that particular cloud server. After that, the user will download the file from
the cloud server(Encrypted file) and will ask permission to decrypt the file from the
owner(request for secret key). The owner will check the list of users logged in to verify whether
the requestor is authentic.After verification if the user is valid , the owner will give permission to
decrypt the file.
2013-2014
Page 16
A Workflow Diagram is a simple form of Flowchart depicting the flow of tasks or actions
from one person or group to another. It typically consists of a set of symbols representing actions
or individuals connected by arrows indicating the flow from one to another. Different symbols
represent different aspects of the workflow. For example, a process is represented by a rectangle
while a diamond is used to depict a decision.
The work flow diagram shows how the project is working from external point of view.Its the step
by step method of executing the project. Here first the users log in then cloud servewrs then
owners. Then select file to be uploaded and user will request for the secret key to decrypt the
downloaded file from the cloud server which will be encrypted by the owner to protect his data.
Chapter 5
Dept of ISE, SJCE, Mysore
2013-2014
Page 17
User module
Owner module
Cloud module
Attribute module
Detailed description about each module is listed below along with the use case diagrams.
5.2 Use Case Diagram
In object-oriented methodology, the activities of the system are studied by the help of
use-case diagram and the whole task is divided into sub-tasks so that they can be implemented
individually and then integrated to form the whole system.
In software and systems engineering , use case is a list of steps, typically defining
interactions between a role(known in UML as an "actor") and a system, to achieve a goal.The
actor can be a human or an external system. It is the fundamental feature of UML notation for
describing object oriented system model. In the simplest form, use case identifies the type of
interaction and actors involved.
2013-2014
Page 18
Details: The control agent will have the sole authority on every operation in this project. It will
look after the security of the data uploaded by the owner.
Module 2 : User module
Input: User name, Ip address
Output: UID
Details: The user must be able to log in and he must be get a user id for future operation or
interaction with the cloud server and owner as well.
2013-2014
Page 19
Details: Owner will upload the file by encrpting it with a secret key.
Module 4: Cloud Module
Input: File received from owner
Output: Encrpyted file to be downloaded
Details: The cloud will just act as the intermediatory between the owner and the user and it will
provide the security of the data uploaded.
Moduole 5: Attribute Module
Input: Attribute name, Sector name
Dept of ISE, SJCE, Mysore
2013-2014
Page 20
Details: The attribute will select the sector name and will help in the authentication of user log
in.
Chapter 6
Implementation
The implementation phase of software development is concerned with translating design
specification into source code. The primary goal of software implementation is production of
Dept of ISE, SJCE, Mysore
2013-2014
Page 21
Class Diagrams
A class diagram in the Unified Modeling Language (UML) is a type of static structure
diagram that describes the structure of a system by showing the system's classes, their attributes,
operations (or methods), and the relationships among the classes. The class diagram is the main
building block of object oriented modeling. It is used both for general conceptual modeling of
the systematic of the application, and for detailed modeling translating the models into
programming code. Class diagrams can also be used for data modeling. The classes in a class
diagram represent both the main objects and or interactions in the application and the objects to
be programmed.
We have five important classes for which we have drawn the class diagrams. In these
class diagrams, we have listed the class name along with imporatant methods used and variables
which play a vitol role in these classes to work perfectly.
2013-2014
Page 22
Sequence Diagram
Chapter 7
Dept of ISE, SJCE, Mysore
2013-2014
Page 23
Testing
Software
testing
involves exercising the program using data like the real data processed by the program. The
existence of program defects is in inferred from unexpected system outputs. Testing may be
carried out during the implementation phase to verify the software behaves, as intended by its
designer and after the implementation is complete.
Testing presents on interesting anomaly for the software engineer. During earlier steps in
design and implementation, the engineer attempts to build software from an abstract concept to a
tangible implementation. The engineer creates a series of test cases that are intended to demolish
the software that has been built. In fact, testing is the one step in the software engineering
process that could be viewed as destructive rather than constructive. Testing requires that the
developed and overcome a Conflict of interest that occurs when errors are uncovered.
Testing is an integral part of software development. Testing process, in a way certifies.
Whether the product, that is developed, compiles with the standards, that it was designed to.
Testing process involves building test cases, against which, the product has to be tested.
In some cases, one derives the test cases from the requirements of the product/software,
which is to be developed. There are many methods available for verifying the code . Some
methods are static in nature that is, they do not involve execution of the code. Example of such
methods is data flow analysis, code reading, code reviews.
Goals of testing
Testing begins at the module level and works "outward" toward the integration
Of the entire computer based system.
Different testing techniques are appropriate at different points in time.
The developer of the software and an independent test group conducts testing.
Testing and debugging are different activities but debugging must be
accommodated
in any testing strategy.
2013-2014
Page 24
Unit Testing
This is the most commonly used method of test where in, we execute the code written
and try to identify any bugs, errors represent in the code. This is the first level of testing.
Unit testing focuses verification effort on the smallest unit of software design the
module. In this, different modules are tested against the specification produced during
design for the modules.
Integration Testing
The second level of testing is called integration testing. In this, many unit tested modules
are combined into sub system, which are then tested. The goal here is to see if the entire
module can be integrated properly.
System/Acceptance Testing
Here the entire software system is tested. The reference document for this process is the
requirement document, and the goal is to see if the software meets its requirements.
Acceptance testing is sometimes performed with realistic data of the client to
demonstrate that the software is working satisfactorily. Testing here focus on the external
behavior of the system.
Unit Testing
The unit testing conducted during this phase involved testing of each module
2013-2014
Page 25
2013-2014
Page 26
case
Test case
Test steps
description
Step
I/p given
Expected o/p
Actual o/p
Register no of
Enter no of
Name of the
Successful
Successful
attributes .
attributes and
attribute and
registration of
registration of
name of the
select the
attribute
attribute
attribute
sector
information
information
ID
TC01 Attribute
registration
TC02
Cloud
Register no of
Enter Cloud
New name of
Successful
Successful
registration
cloud servers
name and IP
registration of
registration of
address
IP address of
cloud
cloud
the cloud
information
information
TC03 User
Registration
TC04 Owner
uploading the
Register the
Enter the
Name, IP
Successful
Successful
user
name, IP
address,
registration of
registration of
address,
Attribute
user
user
attribute and
name and
information
information
sector
sector name
Upload of
File, Secret
Successful
Successful
DATA
to be
key
uploading of
uploading of
send,Generate
encrypted data
encrypted data
key and
to cloud server
to cloud server
file
upload to
cloud
TC05 Operations on
cloud
TC06 User
Interaction
View and
Successful
delete a file
to be deleted
deletion or
deletion or
from cloud
or viewed
view of file
view of file
User can
Select the
Owner name,
Request for
Request for
download data
owner, cloud
cloud server
Secret key
secret key
from cloud
server ,File
2013-2014
Page 27
name
name
User will
User should
Users list
request for
send a request
owner will
give
check the
permission
Permission
Permission
granted
granted
TC08 Generate
Token
Using secret
Generate
Secret key
Token
Token
key, generate
token
and public
generated
generated
key
successfully
successfully
token
TC09 Decrypt the
data
Decrypt the
Using token,
Token
File decryption
File decryption
encrypted data
Global private
generated,
successful
successful
downloaded
Global private
key of owner,
key and
server
decrypt the
owner secret
data
key
References
[1] P. Mell and T. Grance, The NIST definition of cloud computing, National Institute of
Standards and Technology, Tech. Rep., 2009.
2013-2014
Page 28
2013-2014
Page 29
2013-2014
Page 30
2013-2014
Page 31
2013-2014
Page 32
2013-2014
Page 33