Detecting Secrets
Detecting Secrets
Detecting Secrets
Chapter 1
INTRODUCTION
Secure data erasure requires permanently deleting digital data from a physical medium such that
the data is irrecoverable. This requirement plays a critical role in all practical data management
systems, and in satisfying several government regulations on data protection. For the past two
decades, this subject has been extensively studied by researchers in both academia and industry,
resulting in a rich body of literature.
1.1PROBLEM STATEMENT
Cloud service providers request customers to store their account information in the cloud, cloud
service providers have the access to these information. This presents a privacy issue to the
customers privacy information. Many SLAs (service-level agreement) have specified the privacy
of the sensitive information, however, it is difficult for customers to make sure the proper rules
are enforced. There is a lack of transparency in the cloud that allows the customers to monitor
their own privacy information. When a customer decide to use multiple cloud service, the
customer will have to store his/her password in multiple cloud, the more cloud service the
customer is subscript to, the more copy of the users information will be. This is a security issue
for the customers and the cloud service providers. For every cloud service, the customer needs to
exchange his/her authentication information. These redundant actions may lead to an exploit of
the authentication mechanism.
Cloud service providers use different authentication technologies for authenticating users,
this may have less impact on SaaS (Software as a service) than PaaS (Platform as a service) and
IaaS (Infrastructure as a Service), but it is present a challenge to the customers. In spite of all
authenticating mechanisms provided by the cloud service providers, the customer’s privacy is
highly lost while storing data in their place. In our project we are providing one secure
mechanism in which the cloud service providers cannot access the customer’s data without the
knowledge of the customers. But there is one drawback in this scenario once he got users key he
can view the users file anytime without the users knowledge.
1.2 OBJECTIVES
The objective is to build a security service between the user and the admin.
To develop a framework that will maintain the confidentiality of the users data.
To build a client application which would use the above framework while
uploading/downloading/deleting the data to and from cloud.
1.3 MOTIVATION
The aim is to build a security service between the user and the admin. There are similar examples
of black-box systems in security. For instance, as explained in, the Direct Recording Electronic
(DRE) e-voting machines, widely used in the US between 2000 and 2004, worked like a black
box. The system returns a tally at the end of the election, which the voters have to trust but
cannot easily verify.
The lack of verifiability had raised widespread suspicion about the integrity of the
software inside the voting machine and hence the integrity of the election, eventually forcing
several states in the US to abandon DRE machines. Today, the importance of having public
verifiability in any e-voting system has been commonly acknowledged and progress is being
made in deploying verifiable e-voting in real-world elections.
spite of all authenticating mechanisms provided by the cloud service providers, the client privacy
is highly lost while storing data in their place.
SUMMARY
Secure data erasure requires permanently deleting digital data from a physical medium
such that the data is irrecoverable. Current cloud computing systems pose serious
limitation to protecting users data confidentiality. In the proposed system, providing a
secure mechanism in which the cloud service providers cannot access the client data
without the knowledge of the customers.
Chapter 2
LITERATURE SURVERY
In this section, related works are reviewed that discuss the importance of verifiability for secure
data deletion. Several researchers have recognized the importance of verifiability in the secure
data deletion process and proposed some solutions. But none of those solutions have used any
cryptography. The present work differs from the others that is aimed to provide public
verifiability for a secure data deletion system by adopting public key cryptography.
WeihanGoh et al., [1] proposed a Trusted Platform module that provides secure
asymmetric key generation. This work describes the use of a secure key generating authority in
shamir identity based signature scheme implementation. It proposed an idea of identity-based
asymmetric cryptosystems (IBC) and together with an identity based asymmetric signature. The
proposed IBS scheme in this paper has itself proven secure against forgery under chosen
message attacks. This paper also proposed a new concept that assigning TPM as key generating
authority and list out the various benefits of implementing it.
Imad M Abbadi et al., [2] presented the work initially that identifies the challenges for
establishing the trust in the cloud and then proposes a secure framework which helps in
addressing those identified challenges. This work is actually extension of their previous work. In
their previous work they proposed a unique framework for establishing trust in the cloud
environment by extending their previous work the current paper addresses those issue it clearly
covers applications data and their integration with infrastructure management data.
H.S.U et al., [3] proposed a Secret sharing technique for protecting sensitive data, such as
cryptographic keys. It is used to distribute a Author secret value to a number of parts or shares
that have to be combined together to access the original value. These shares can then be given to
separate parties that protect them using standard means like memorize, store in a computer etc.
These shares can then be given to separate parties that protect them using standard means like
memorize. Secret sharing is used in modern cryptography to lower the risks associated with
compromised data. Sharing a secret spreads the risk of compromising the value.
Mignotte.M et al.,[4] presented a technique to share a secret we can split the secret and
spread the pieces to all participants. In some schemes, reconstructing the secret needs combining
all shares from participants, but this might not be practical since we might need the secret
reconstructed by some of the participants and not all. The reason is as follows: Imagine if a
country splits the access codes for its missiles among three officials and they found themselves
in a dire need to access the missiles, but one of the officials is not present or he simply refuses to
attack. Then, we need to have a different scheme where a subset of the participants can
reconstruct the secret. These schemes are secure and do not require all n shares.
SUMMARY
Chapter 3
SYSTEM DESIGN
The System Design Description is a inbuilt Report Generator report that describes the system
design.
3.1 SYSTEM STUDY
The four key considerations involved in the feasibility analysis are:
1. Feasibility Study
2. Economical Feasibility
3. Technical Feasibility
4. Social Feasibility
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
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.
When the admin wants to see user files he has to do the following steps: Admin sends a
request to the user for recovering deleted files. Once the user wants to share his file to the admin
they provide the secret key using SMTP protocol. Admin enters the key, and that key is
decrypted and checks whether the file key is matching to the decrypted key. Once the key
matches, As shown below the admin can download that file.
USE CASES
Use case diagrams overview the usage requirement for system. They are useful for
presentations to management and project stakeholders, but for actual development you
will find that use cases provide significantly more value because they describe the meant
of the actual requirements. It describes a sequence of action that provide something
measurable value to an action and is drawn as a horizontal ellipse.
CLASS DIAGRAM
SEQUENCE DIAGRAM
As shown in Fig.3.4: Flow of logic, the flow within the system in a visual manner,
enabling both to document and validate the logic and commonly used for both analysis
and design purpose. Sequence diagram are the most popular UML artifact for dynamic
modeling, which focuses on identifying the behaviour within your system.
SYSTEM SPECIFICATION
The system specifications include hardware and software specifications:
HARDWARE REQUIREMENTS:
o System: Intel Core i5, 1.80GHz.
o Hard Disk: 40 GB.
o Floppy Drive: 1.44 Mb.
o Monitor: 15 VGA Colour.
o Ram: 512 Mb.
SOFTWARE REQUIREMENTS:
o Operating system: Windows XP/7/8/10.
o Coding Language: JAVA/J2EE
o IDE: Netbeans 7.4
o Database: MYSQL
FUNCTIONAL REQUIREMENTS:
A functional requirement defines a function of a software-system or its component. A
function is described as a set of inputs, the behavior, and outputs. Our system requires
minimum three systems to achieve this concept.
NON-FUNCTIONAL REQUIREMENTS:
Non-functional requirements define the overall qualities or attributes of the resulting
system and it place restrictions on the product being developed, the development process,
and specify external constraints that the product must meet.
Req Id: NFR-01
o Req Name: Reliability
o Req Description: The system must be able to perform its required func-
tions under stated conditions for a specific period of time.
Req Id: NFR-02
o Req Name: Performance
o Req Description: Performance requirements concern the speed of op-
eration of a system.
Req Id: NFR-03
o Req Name:Security
o Req Description: Unauthorized access to the system and its data is not
allowed.
Req Id: NFR-04
o Req Name: Safety
o Req Description: Ensure the integrity of the system from accidental or
malicious damage.
Req Id: NFR-05
o Req Name: Usability
o Req Description: The ease with which a user can learn to operate, pre- pare
inputs for, and interpret outputs of system
SUMMARY
The System Design Description is a inbuilt Report Generator report that describes the
system design. The feasibility study is carried out to make sure the project is worth doing
or not. Later the project’s various modules, Class design and UML design are built.
Chapter 4
IMPLEMENTATION OF SYSTEM/ METHODOLOGY
A module description provides detailed information about the module and its sup- ported
components, which is accessible in different manners. The included description is available by
reading directly, by generating a short html-description, or by making an environment check for
supported components to check if all needed types and services are available in the environment
where they will be used. This environment check could take place during registration/installation
or during a separate consistency check for a component.
Data Upload Scenario
4.1 MODULES
There are four modules which are explained below:
4.1.1 DATA UPLOAD SCENARIO
The Data owner log in to the system with his/her user name & password.
Once the user is authenticated, separate folder has created for the user which monitors all
the activities of the user.
The user can upload the files where encryption key is required to store in cloud.
4.2 TESTING
Testing plays a major role during the development of a project. The different types of testing
which are involved are:
UNIT TESTING
Unit testing involves the design of test cases that validate that the internal pro- gram 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 per- forms accurately to the documented specifications and contains
clearly defined inputs and expected results.
INTEGRATION TESTING
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Testing is event driven and is more concerned with the basic
outcome of screens or fields. Integration tests demonstrate that al- though the components
were individually satisfaction, as shown by successfully unit testing, the combination of
components is correct and consistent. Integration testing is specifically aimed at exposing
the problems that arise from the combination of components.
MODULE TESTING
Module Testing is a process of testing the system, module by module. It includes the
various inputs given, outputs produced and their correctness. By testing in this method
we would be very clear of all the bugs that have occurred. All the test cases mentioned
above passed successfully. No defects encountered.
VALIDATION TESTING
The final step involves Validation testing, which determines whether the software
function as the user expected. The end-user rather than the system developer conduct this
test most software developers as a process called Alpha and Beta were testing to uncover
that only the end user seems able to find. The compilation of the entire project is based on
the full satisfaction of the end users. In the project, validation testing is made in various
forms.
4.3TOOLS
The different tools used are explained below:
NET BEANS 8.1
Best Support for Latest Java Technologies: NetBeans IDE is the official IDE for
Java 8. With its editors, code analyzers, and converters, you can quickly and
smoothly upgrade your applications to use new Java 8 language constructs, such
as lambdas, functional opera- tions, and method references. Batch analyzers and
converters are provided to search through multiple applications at the same time,
matching patterns for conversion to new Java 8 language constructs.With its
constantly im- proving Java Editor, many rich features and an extensive range of
tools, templates and samples, NetBeans IDE sets the standard for developing with
cutting edge technologies out of the box.
Fast Smart Code Editing: An IDE is much more than a text editor. The NetBeans
Editor indents lines, matches words and brackets, and highlights source code
syntactically and semantically. It lets you easily refactor code, with a range of
handy and powerful tools, while it also provides code templates, coding tips, and
code generators. The editor supports many languages from Java, C/C++, XML
and HTML, to PHP, Groovy, Javadoc, JavaScript and JSP. Because the editor is
extensi- ble, you can plug in support for many other languages.
Easy Efficient Project Management: Keeping a clear overview of large
applications, with thousands of folders and files, and millions of lines of code, is a
daunting task. NetBeans IDE provides different views of your data, from multiple
project windows to helpful tools for setting up your applications and managing
them efficiently, letting you drill down into your data quickly and easily, while
giving you versioning tools via Subversion, Mercurial, and Git integration out of
the box. When new developers join your project, they can understand the structure
of your application because your code is well-organized.
SQL WINDOW
Here you write your SQL commands that you want to execute. There are various ways to
enter SQL in the window:
Type SQL commands directly in the window.
Open a saved SQL script file. The file will be opened for editing.
Insert a template from Edit/Insert Templates option.
Open a SQL script saved as a ’Favorite’. More about ’Favorites’ folder’s later.
MULTIPLE QUERIES
You may enter multiple queries separated by a (;) - on the same line or each on their own
line. Each query would create a new tab for its result set in the Result Window.
STOPPING A QUERY
Starting from v4.05, all the queries are executed in a different thread. Whenever you
execute a query the corresponding icon in the toolbar is replaced by a Stop icon. If you
want to stop a query from being executed, just click on the Stop button.
DATABASE CONNECTION
The description of making a connection to the database is given here:
Making a New Connection
After you start SQLyog, you have to enter the details of MySQL server you want to
connect to. You must connect to a MySQL server before you can perform any
activities with the software.
New Window Using Current Settings
To open a new connection with same server profile of the current connection select
File, New Window Using Current Settings (or press Ctrl+N). It will establish another
connection with the same details without any further specification.
Disconnecting A Connection
Select File-Disconnect (or press Ctrl+F4) to disconnect the current active connection.
To re-connect (or establish another connection), select Connect option (or press
Ctrl+M).
Disconnecting All Connections
Select File -¿ Disconnect All, to disconnect from all current active connections.
DEVELOPMENT TOOLS
With most programming languages, compile or interpret a program so that we can run it
on our computer. The Java programming language is unusual, in that a program is both
com- piled and interpreted. With the compiler, first we translate a program into an
intermediate language called Java byte codes the platform-independent codes interpreted
by the interpreter on the Java platform. The interpreter parses and runs each Java byte
code instruction on the computer. Compilation happens just once; interpretation occurs
each time the program is executed. Every full implementation of the Java platform gives
you the following features:
The essentials: Objects, strings, threads, numbers, input and output, data structures,
system properties, date and time, and so on.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram
Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for users
worldwide. Programs can automatically adapt to specific locales and be displayed in the
appropriate language.
Security: Both low level and high level, including electronic signatures, public and
private key management, access control, and certificates.
Software components: Known as JavaBeansTM, can plug into existing component
architectures.
Object serialization: Allows lightweight persistence and communication via Remote
Method Invocation (RMI).
Java Database Connectivity (JDBCTM): Provides uniform access to a wide range of
relational databases.
the same .class files are capable of running on Microsoft Windows, the Solaris Operating
System (Solaris OS), Linux, or Mac OS.
Some virtual machines, such as the Java Hotspot virtual machine, perform
additional steps at runtime to give your application a performance boost. This includes
various tasks such as finding performance bottlenecks and recompiling (to native code)
frequently used sections of code.
JAVA PLATFORM
A platform is the hardware or software environment in which a program runs. Weve
already mentioned some of the most popular platforms like Microsoft Windows, Linux,
Solaris OS, and Mac OS.
Most platforms can be described as a combination of the operating system and
underlying hardware. The Java platform differs from most other platforms in that its a
software-only platform that runs on top of other hardware-based platforms. The Java
platform has two components: The Java Virtual Machine The Java Application
Programming Interface (API)
JAVA VIRTUAL MACHINE
A Java virtual machine (JVM) is a virtual machine that can execute Java byte code. It is
the code execution component of the Java software platform. A Java virtual machine is a
program which executes certain other programs, namely those containing Java byte code
instructions. JVMs are most often implemented to run on an existing operating system,
but can also be implemented to run directly on hardware.
A JVM provides an environment in which Java byte code can be executed,
enabling such features as automated exception handling, which provides root-cause
debugging information for every software error (exception), independent of the source
code. A JVM is distributed along with a set of standard class libraries that implement the
Java application programming interface (API). These libraries, bundled together with the
JVM, form the Java Runtime Environment (JRE).
JVMs are available for many hardware and software platforms. The use of the
same byte code for all JVMs on all platforms allows Java to be described as a write once,
run anywhere programming language, versus write once, compile anywhere, which
JAVA API
The API is a large collection of ready-made software components that provide many
useful capabilities. It is grouped into libraries of related classes and interfaces; these
libraries are known as packages. As a platform-independent environment, the Java
platform can be a bit slower than native code. However, advances in compiler and virtual
machine technologies are bringing performance close to that of native code without
threatening portability.
JDBC GOALS
Few software packages are designed without goals in mind. JDBC is one that, because of
its many goals, drove the development of the API. These goals, in conjunction with early
reviewer feedback, have finalized the JDBC class library into a solid framework for
building database applications in Java. The goals that were set for JDBC are important.
They will give you some insight as to why certain classes and functionalist behave the
way they do. The eight design goals for JDBC are as follows:
SQL Level API The designers felt that their main goal was to define a
SQL interface for Java. Although not the lowest database interface level
possible, it is at a low enough level for higher-level tools and APIs to be
created. Conversely, it is at a high enough level for application
programmers to use it confidently. Attaining this goal allows for future
tool vendors to generate JDBC code and to hide many of JDBCs
complexities from the end user.
SQL Conformance SQL syntax varies as you move from database vendor
to database vendor. In an effort to support a wide variety of vendors,
JDBC will allow any query statement to be passed through it to the
underlying database driver. This allows the connectivity module to handle
non-standard functionality in a manner that is suitable for its users.
SUMMARY
A module description provides detailed information about the module and its supported
components, which is accessible in different manners. The included description is
available by reading directly, by generating a short html-description, or by making an
environment check for supported components to check if all needed types and services
are available in the environment where they will be used.
Chapter 5
RESULTS AND DISCUSSIONS
Data delete scenario: Input: User deletes the file. Output: File will be deleted.
File Access scenario: The user can accept the request sent by the admin and allow the
admin to access the requested file.
SUMMARY
The users and admin can perform the above operations. Firstly the user registers and
uploads the file. The User downloads the file and deletes it if not required. Sometimes the
files may get deleted by mistake. If the user requires the deleted files back then the admin
will be able to recover the deleted file and it can be shared. If admin requires access to
any file, a request can be sent to the user. When the user accepts the request the admin
will be able to access the file.
Security is an important issue in any application. To provide the security, authentication plays
very important role. Authentication is provided through the secret sharing schemes. Cloud
service providers request customers to store their account information in the cloud, cloud service
providers have the access to this information. This presents a privacy issue to the customer’s
privacy information. When a customer decide to use multiple cloud service, the customer will
have to store his/her password in multiple cloud, the more cloud service the customer is sub-
script to, the more copy of the users information will be. This is a security issue for the
customers and the cloud service providers. Main idea is to secure the users data from the cloud
service provider
Thus implementing a secure framework by proposing a new scheme in the future work so
that without the knowledge of the user the cloud service providers cannot access the customer’s
data though it is saved in the CSP place.
REFERENCES
[2] D. Chen and H. Zhao, ”Data Security and Privacy Protection Issues in Cloud
Computing,” in proceedings of International Conference on Computer Science and
Electronics Engineering (ICCSEE), vol.1, pp.647-651, 2012.
[3] H. Takabi, J. B. D. Joshi and G. J. Ahn,”Security and Privacy Challenges in Cloud
Computing Environments,” Journal of Security and Privacy, vol.8, no.6, pp.24-31,
November/December 2010.
[4] K. Ren, C. Wang and Q. Wang, ”Security Challenges for the Public Cloud,” Journal
of Internet Computing, vol.16, no.1, pp.69-73, January/February, 2012.
[5] Z. Xiao and Y. Xiao, ”Security and Privacy in Cloud Computing,” in the
Proceedings of the International Communication. Surveys and Tutorials, vol.15,
no.2, pp.843- 859, 2013.