1.1 What Is Cloud Computing:: 1.1.1 Infrastructure As A Service (IAAS)
1.1 What Is Cloud Computing:: 1.1.1 Infrastructure As A Service (IAAS)
INTRODUCTION
1.1 What is cloud computing :
Cloud computing is the use of computing resources (hardware and software) that are
delivered as a service over a network (typically the Internet). The name comes from the use of
a cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system
diagrams. Cloud computing entrusts remote[1]services with a user's data, software and
computation. Cloud computing provides three fundamental services[2] which are in Fig 1.
1.1.1 Infrastructure as a service (IAAS)
In this most basic cloud service model, cloud providers offer computers, as physical or
more often as virtual machines, and other resources. The virtual machines are run as guests by
a hypervisor, such as Xen or KVM. Management of pools of hypervisors by the cloud
operational support system leads to the ability to scale to support a large number of virtual
machines. Other resources in IAAS clouds include images in a virtual machine image library,
raw (block) and file-based storage, firewalls, load balancers, IP addresses, virtual local area
networks (VLANs), and software bundles. IAAS cloud providers supply these resources on
demand from their large pools installed in data centers. For wide area connectivity, the Internet
can be used or in carrier clouds dedicated virtual private networks can be configured. To deploy
their applications, cloud users then install operating system images on the machines as well as
their application software. In this model, it is the cloud user who is responsible for patching and
maintaining the operating systems and application software. Cloud providers typically bill
IAAS services on a utility computing basis, that is, cost will reflect the amount of resources
allocated and consumed. IAAS refers not to a machine that does all the work, but simply to a
facility given to businesses that offers users the leverage of extra storage space in servers and
data centers.
Examples of IAAS include: Amazon Cloud Formation (and underlying services such
as Amazon EC2), Rackspace Cloud, Google Compute Engine, and Right Scale.
In the PAAS model, cloud providers deliver a computing platform typically including
operating system, programming language execution environment, database, and web server.
Application developers can develop and run their software solutions on a cloud platform
without the cost and complexity of buying and managing the underlying hardware and software
layers. With some PAAS offers, the underlying computer and storage resources scale
automatically to match application demand such that cloud user does not have to allocate
resources manually.
Examples of PAAS include: Amazon Elastic Beanstalk, Heroku, EngineYard, Mendix, Google
App Engine, Microsoft Azure and OrangeScape.
1.1.3 Software as a service (SAAS)
In this model, cloud providers install and operate application software in the cloud and
cloud users access the software from cloud clients. The cloud users do not manage the cloud
infrastructure and platform on which the application is running. This eliminates the need to
install and run the application on the cloud user's own computers simplifying maintenance and
support. What makes a cloud application different from other applications is its elasticity. This
can be achieved by cloning tasks onto multiple virtual machines at run-time to meet the
changing work demand Load balancers distribute the work over the set of virtual machines.
This process is inconspicuous to the cloud user who sees only a single access point. To
accommodate a large number of cloud users, cloud applications can be multitenant, that is, any
machine serves more than one cloud user organization. It is common to refer to special types of
cloud based application software with a similar naming convention: desktop as a service,
business process as a service, test environment as a service, communication as a service. The
pricing model for SAAS applications is typically a monthly or yearly flat fee per user.
Examples of SAAS include: Google Apps, Quickbooks Online, Salesforce.com and Microsoft
Office 365.
The shared infrastructure means it works like a utility: You only pay for what you need,
upgrades are automatic, and scaling up or down is easy. Cloud-based apps [16] can be up and
running in days or weeks, and they cost less. With a cloud app, you just open a browser, log in,
customize the app, and start using it.
Businesses are running all kinds of apps in the cloud, like customer relationship
management (CRM), HR, accounting, and much more. Some of the worlds largest companies
moved their applications to the cloud with salesforce.com after rigorously testing the security
and reliability of our infrastructure.
As cloud computing grows in popularity, thousands of companies are simply rebranding
their non-cloud products and services as cloud computing. Always dig deeper when
evaluating cloud offerings and keep in mind that if you have to buy and manage hardware and
software, what youre looking at isnt really cloud computing but a false cloud.
1.2.3 Cloud Mobility and collaboration
The latest innovations in cloud computing are making our business applications even
more mobile and collaborative, similar to popular consumer apps like Facebook and Twitter. As
consumers, we now expect that the information we care about will be pushed to us in real time,
and business applications in the cloud are heading in that direction as well. With Cloud 2,
keeping up with your work is as easy as keeping up with your personal life on Facebook.
clouds
lack
the
flexibility,
security
and
certainty
of
in-house
applications. Hybrid cloud provides the flexibility of in house applications with the fault
tolerance and scalability of cloud based services.
Private cloud
Private cloud is cloud infrastructure operated solely for a single organization, whether
managed internally or by a third-party and hosted internally or externally. Undertaking a private
cloud (Fig2) project requires a significant level and degree of engagement to virtualize the
business environment, and it will require the organization to reevaluate decisions about existing
resources. When it is done right, it can have a positive impact on a business, but every one of
the steps in the project raises security issues that must be addressed in order to avoid serious
vulnerabilities.
They have attracted criticism because users "still have to buy, build, and manage them"
and thus do not benefit from less hands-on management, essentially "[lacking] the economic
model that makes cloud computing such an intriguing concept".
CHAPTER: 2
SYSTEM ANALYSIS
2.1 Existing System:
Enterprises usually store data in internal storage and install firewalls to protect against
intruders to access the data. They also standardize data access procedures to prevent insiders to
disclose the information without permission. In cloud computing, the data will be stored in
storage provided by service providers.
Service providers must have a viable way to protect their clients data, especially to
prevent the data from disclosure by unauthorized insiders. Storing the data in encrypted form is
a common method of information privacy protection. If a cloud system is responsible for both
tasks on storage and encryption/decryption of data, the system administrators may
simultaneously obtain encrypted data and decryption keys.
This allows them to access information without authorization and thus poses a risk to
information privacy. This study proposes a business model for cloud computing based on the
concept of separating the encryption and decryption service from the storage service.
Furthermore, the party responsible for the data storage system must not store data in plaintext,
and the party responsible for data encryption and encryption must delete all data upon the
computation on encryption or decryption is complete. A CRM (Customer Relationship
Management) service is described in this paper as an example to illustrate the proposed business
model.
Existing methods for protecting data stored in a cloud environment
Common methods for protecting user data include encryption prior to storage [9], user
authentication procedures prior to storage or retrieval, and building secure channels for data
transmission. These protection methods normally require cryptography algorithms and digital
signature techniques, as explained below.
Common data encryption methods include symmetric and asymmetric cryptography
algorithms. Symmetric cryptography is used in the U.S. Federal Information Processing
Standards (FIPS) 46-3 Triple Data Encryption Algorithm (TDEA, also known as Triple-DES or
Dept. Of CSE, MRCET
7
3DES) or 197 Advanced Encryption Standard (AES) and others. This type of encryption and
decryption process uses a secret key. Asymmetric cryptography, on the other hand, uses two
different keys, a public key for encryption, and a private key for decryption. Examples
include RSA cryptography and Elliptic Curve Cryptography[11] (ECC). Generally speaking,
symmetric cryptography is more efficient, and is suitable for encrypting large volumes of data.
Asymmetric cryptography requires more computation time and is used for the decryption keys
required for symmetric cryptography. The use of passwords as an authentication process is more
familiar to general users, but messages sent by the user are vulnerable to surreptitious recording
by hackers who can then use the data in the message to log into the service as the user. In more
advanced authentication systems, the system side will generate a random number to send the
user a challenge message, requesting the user to transmit an encrypted response message in
reply to the challenge message, thus authenticating that the user has the correct encryption key.
Without this key, the user will not be allowed access. In the process of challenge and response
the clients encrypted key uses the clients password to convert a derived value and. In this
program, each communication between the client and server is unique, and a hacker[10] using an
old message would fail to access the system.
In addition, the One-Time Password (OTP) authentication system differs from most
peoples conception of a password. Most people understand a password to be a password chosen
by the user to be meaningful, and can be used again and again. The emphasis of OTP [12],
however is the single-use nature of the password. After receiving authentication from the user,
the system side must create a secure transmission channel to exchange information with the
user. The Secure Sockets Layer[13] (SSL) is a common method of building secure channels,
primarily using RSA encryption to transmit the secret keys needed for the both sides to encrypt
and decrypt data transmitted between them. When using cryptographic technology to protect
user data, the keys used for encryption and decryption of that data must be securely stored. In
particular, cloud computing service providers must have specific methods for constraining
internal system management personnel to prevent them from obtaining both encrypted data and
their decryption keys this is critical to protecting user data. Operator policies for protecting
user data must be clearly laid out in the Service Level Agreement (SLA) and must explain how
special privilege users are prevented from improperly accessing user data. Kandukuri, Paturi
and Rakshit offer six recommendations for SLA content, including
Dept. Of CSE, MRCET
8
1) Special privilege user data access must be controlled to prevent unauthorized storage or
2)
3)
4)
5)
retrieval,
Cloud computing services must comply with relevant laws,
User data must be properly stored and encrypted,
A reset mechanism must be provided in case of service disruption or system crash
Service must be sustainable and guaranteed against service discontinuation due to
simultaneously obtain encrypted data and decryption keys. This allows them to access
information without authorization and thus poses a risk to information privacy.
2.3.2 Problem Modules:
User Registration and Control
CRM Service
Encryption/Decryption Service
Accessing Storage service
In a cloud computing environment, the user normally uses cloud services with specific
functions, e.g., Salesforce.coms CRM service
[14]
[15]
while using these services is then stored on storage facilities on the cloud service. This study
emphasizes the addition of an independent encryption/decryption cloud service to this type of
business model, with the result that two service providers split responsibility for data storage and
data encryption/decryption. To illustrate the concept of our proposed business model, Fig. 3
presents an example in which the user uses separate cloud services for CRM, storage and
encryption/decryption. According to the users needs, CRM Cloud Services could be swapped for
other function-specific application services (e.g., ERP Cloud Services, Account Software Cloud
Services, Investment Portfolio Selection and Financial Operations Cloud Services). Prior to the
emergence of an emphasis on the independence of encryption/decryption services, CRM, ERP and
other cloud services would simultaneously provide their users with storage services. This study
emphasizes that Encryption/Decryption Cloud Services must be provided independently by a
separate provider.
This section presents a CRM application service as an example of the new business
model. After the user logs into the CRM system, if the CRM Service System requires any client
information, it will execute a Data Retrieval Program. When this data needs to be saved, it will
execute a Data Storage Program. The Data Retrieval Program is illustrated in Fig. 4 and is
explained below. When a user wants to access the CRM Cloud Service, he must first execute the
Login Program as shown in Step 1. This step can use current e-commerce or other services which
have already securely verified the users registration, such as symmetric key-based challenge and
reply login verification, or through a One-Time Password. After the users login has been
successfully verified, if the CRM Service System requires client information from the user, it sends
a request for information to the Storage Service System, as shown in Step 2. In this step, the CRM
Service System transmits the user ID to the Storage Service System where it searches for the users
data. This data is encrypted so, once found, a request must be sent to the Encryption/Decryption
Service System along with the user ID. Step 3 shows the Storage Service System executing the
transmission of encrypted client data and the user ID to the Encryption/Decryption Service System.
Since the Encryption/Decryption Service System can serve multiple users and the
encryption/decryption for each users data requires a different key, therefore each users unique ID
and keys
[5]
uses the received user ID to index the users data decryption key, which is then used to decrypt the
received data. Using the correct decryption key to decrypt the data is critical to restoring the data to
its original state.
After the Encryption/Decryption Service System has decrypted the clients data, in Step
5 the decrypted client data is provided to the CRM Service System which then displays the client
data to the user in Step 6, completing the Data Retrieval Program. Prior to sending the decrypted
client data, the Encryption/Decryption Service System and the CRM Service System can establish a
secure data transmission channel (e.g., a Secure Sockets Layer connection) to securely transmit the
decrypted client data. After the decrypted client data is sent, the Encryption/Decryption Service
System is not allowed to retain the decrypted data and any unencrypted data must be deleted to
prevent the encrypted data and the decryption key from being stored in the same system. This is a
critical factor in ensuring the privacy of user data. The above-mentioned Data Retrieval Program
requires the collaboration of three different cloud service systems. Different methods of system
collaboration are already supported by mature technologies, including two systems based on
Universal Description Discovery and Integration (UDDI), Web Service Description Language
(WSDL), and Simple Object Access Protocol (SOAP) to use Web Services or transmit Extensible
Markup Language (XML) formatted data . Next, we describe the Data Storage Program, as shown
in Fig.3. This program also involves the collaboration of three cloud service systems: CRM Service
System, Encryption/Decryption Service System, and Storage Service System. Step 1 of Fig. 3
shows the client sending a Data Storage Request to the CRM Service System which then initiates
the Data Storage Program, requesting data encryption from the Encryption/Decryption Service
System as shown in Step 2. In Step 2, the CRM Service System and the Encryption/Decryption
Service System establish a secure data transfer channel to transmit the user ID and the data
requiring storage from the CRM Service System to the Encryption/Decryption Service System. As
the encryption of data from different users requires different keys, in Step3 the
Encryption/Decryption Service System initiates data encryption, which involves using the received
user ID to index the users encryption key which is then used to encrypt the received data.
Following this studys emphasis on the principle of divided authority, once the client data is
encrypted by the Encryption/Decryption Service System it must be transferred to the Storage
Service System where the user ID and encrypted data are stored together. Therefore, when the
Encryption/Decryption Service System executes Step 4, it must transfer the user ID and encrypted
client data to the Storage Service System. Step 5 shows the Storage Service System receiving the
user ID paired with the data for storage. In this business model, the following the completion of
Step 4 at the Encryption/Decryption Service System, all unencrypted and decrypted user data must
be deleted. Step 6, the final step of the Data Storage Program [4], transmits a Data Storage Complete
Dept. Of CSE, MRCET
13
message from the Storage Service System to the CRM Service System, at which point the CRM
Service System may confirm that the client data has been stored. If it doesnt receive a Data Storage
Complete message, it can re-initiate the Data Storage Program or, after a given period of time,
proceed with exceptional situation handling. In the above example, the users goal in logging into
the CRM Service System is possibly to maintain part of the client data, thus the system design must
take data maintenance into consideration. Feasible design methods include matching the encrypted
client data with the corresponding user ID and client ID, thus allowing for the indexing of the user
ID to obtain the corresponding client data. Then the client ID can be used to index the client data
the user wishes to maintain. Considering the massive amount of client data, search efficiency could
be improved by combining the user ID and client ID to form a combined ID used for searching for
a specific clients data. In the new business model, multiple cloud service operators jointly serve
their clients through existing information technologies including various application systems such
as ERP, accounting software, portfolio selection and financial operations which may require the
user ID to be combined with other IDs for indexing stored or retrieved data. In addition, the
foregoing description of the two systems can use Web Service related technology to achieve
operational synergies and data exchange goals. These technologies can consider open international
standards including the World Wide Web Consortiums (W3C) published Web Service, UDDI,
WSDL and SOAP standard documentation.
different service providers. The privileges of Storage as Service provider include storing user data
which has already been encrypted through an Encryption/Decryption Service System, but does not
allow this service provider access to the Decryption Key or allow for the storage of decrypted data.
Furthermore, the privileges of the Encryption/Decryption as Service provider includes management
of the key required for the encryption/decryption of user data, but not the storage of decrypted or
encrypted user data. In this new business model, user data in the Storage Service System is all
saved encrypted. Without the decryption key, there is no way for the service provider to access the
user data. Within the Encryption/Decryption Service System there is no stored user data, thus
eliminating the possibility that user data might be improperly disclosed. After establishing
Independent Encryption/Decryption Services in cloud computing environments, users of cloud
computing services (e.g., CRM, ERP, etc.) will use the services of at least two cloud computing
service providers, so agreements between these service providers are required to establish a model
for cooperation and division of responsibilities in providing a common service to clients. This study
provides a draft of a multi-signatory Service Level Agreement[3] (SLA) in which the signatories can
include cloud computing rental users, application service providers, encryption/decryption service
providers, storage service providers, etc., with content including the rights and obligations between
operators and also includes data security policies between each operator and clients. The core
concept of this study is consistent with division of management authority to reduce operational risk,
thus avoiding the risk of wrongful disclosure of user data.
CHAPTER: 3
SOFTWARE AND HARDWARE REQUIREMENTS
Dept. Of CSE, MRCET
15
CHAPTER: 4
SELECTED SOFTWARES
Dept. Of CSE, MRCET
16
4.1 PHP:
PHP is a general-purpose server-side scripting language originally designed for Web
development to produce dynamic Web pages. It is one of the first developed server-side scripting
languages to be embedded into an HTML source document rather than calling an external file to
process data. The code is interpreted by a Web server with a PHP processor module which
generates the resulting Web page. It also has evolved to include a command-line interface capability
and can be used in standalone graphical applications. PHP can be deployed on most Web servers
and also as a standalone shell on almost every operating system and platform free of charge. A
competitor to Microsoft's Active Server Pages (ASP) server-side script engine and similar
languages, PHP is installed on more than 20 million Web sites and 1 million Web servers. Software
that uses PHP[18] includes Joomla, Word press, Concrete5, MyBB, and Drupal.
PHP was originally created by Rasmus Lerdorf in 1995. The main implementation of PHP is now
produced by The PHP Group and serves as the formal reference to the PHP language. PHP is free
software released under the PHP License, which is incompatible with the GNU General Public
License (GPL) due to restrictions on the usage of the term PHP.
While PHP originally stood for Personal Home Page, it is now said to stand for PHP:
Hypertext
Preprocessor,
a recursive
acronym.PHP development
began
in
1994
when
was more limited and simpler, although less consistent. A development team began to form and,
after months of work and beta testing, officially released PHP/FI 2 in November 1997.
Zeev Suraski and Andi Gutmans, two Israeli developers at the Technion IIT, rewrote
the parser in 1997 and formed the base of PHP 3, changing the language's name to the recursive
initialismPHP: Hypertext Preprocessor. Afterward, public testing of PHP 3 began, and the official
launch came in June 1998. Suraski and Gutmans then started a new rewrite of PHP's core,
producing the Zend Engine in 1999. They also founded Zend Technologies in Ramat Gan, Israel.
On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released. As of August 2008 this
branch is up to version 4.4.9. PHP 4 is no longer under development nor will any security updates
be released. On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II. PHP 5
included new features such as improved support for object-oriented programming, the PHP Data
Objects (PDO) extension (which defines a lightweight and consistent interface for accessing
databases), and numerous performance enhancements. In 2008 PHP 5 became the only stable
version under development. Late static binding had been missing from PHP and was added in
version 5.3. A new major version has been under development alongside PHP 5 for several years.
This version was originally planned to be released as PHP 6 as a result of its significant changes,
which included plans for full Unicode support. However, Unicode support took developers much
longer to implement than originally thought, and the decision was made in March 2010 to move the
project to a branch, with features still under development moved to trunk.
Changes in the new code include the removal of register_globals, magic quotes,
and safe mode. The reason for the removals was that register_globals had opened security holes by
intentionally allowing runtime data injection, and the use of magic quotes had an unpredictable
nature. Instead, to escape characters, magic quotes may be replaced with the addslashes() function,
or more appropriately an escape mechanism specific to the database vendor itself like
mysql_real_escape_string() for MySQL. Functions that will be removed in future versions and have
been deprecated in PHP 5.3 will produce a warning if used.
Many high-profile open-source projects ceased to support PHP 4 in new code as of
February 5, 2008, because of the GoPHP5 initiative, provided by a consortium of PHP developers
promoting the transition from PHP 4 to PHP 5.
Dept. Of CSE, MRCET
18
Since version 5.4, PHP has native support for Unicode or multibyte strings, allowing
strings as well as class-, method-, and function-names to contain non-ASCII characters. PHP
interpreters
systems,
but on Microsoft
Windows the only official distribution is a 32-bit implementation, requiring Windows 32-bit
compatibility mode while using Internet Information Services (IIS) on a 64-bit Windows platform.
Experimental 64-bit versions of PHP 5.3.0 were briefly available for MS Windows, but have since
been removed.
PHP is free software released under the PHP License, which insists that: Products
derived from this software may not be called "PHP", nor may "PHP" appear in their name, without
prior written permission from [email protected]. You may indicate that your software works in
conjunction with PHP by saying "Foo for PHP" instead of calling it "PHP Foo" or "phpfoo".
This restriction on use of the name PHP makes it incompatible with the GNU General Public
License (GPL).
Usage
PHP is a general-purpose scripting language that is especially suited to server-side web
development where PHP generally runs on a web server. Any PHP code in a requested file
is executed by the PHP runtime, usually to create dynamic web page content or dynamic images
used on Web sites or elsewhere. It can also be used for command-line scripting and clientside graphical user interface (GUI) applications. PHP can be deployed on most Web servers,
many operating systems and platforms, and can be used with many relational database management
systems(RDBMS). It is available free of charge, and the PHP Group provides the complete source
code for users to build, customize and extend for their own use.
PHP acts primarily as a filter, taking input from a file or stream containing text and/or
PHP instructions and outputting another stream of data; most commonly the output will be HTML.
Since PHP 4, the PHP parser compiles input to produce byte code for processing by the Zend
Engine, giving improved performance over its interpreter predecessor.
Originally designed to create dynamic Web pages, PHP now focuses mainly on serverside scripting, and it is similar to other server-side scripting languages that provide dynamic content
Dept. Of CSE, MRCET
19
from a Web server to a client, such as Microsoft's ASP.NET, Sun Microsystems' JavaServer
Pages, and mod_perl. PHP has also attracted the development of many frameworks that provide
building blocks and a design structure to promote rapid application development (RAD). Some of
these include CakePHP, Symfony, CodeIgniter, Yii Framework, and Zend Framework, offering
features similar to other web application frameworks. The LAMP architecture has become popular
in the Web industry as a way of deploying Web applications.
PHP is commonly used as the P in this bundle longside Linux, Apache and MySQL,
although the P may also refer to Python, Perl, or some mix of the three. Similar packages are also
available for Windows and OS X, then called WAMP and MAMP, with the first letter standing for
the respective operating system. However both PHP and Apache are provided as part of the Mac OS
X base install.
As of April 2007, over 20 million Internet domains had Web services hosted on servers
with PHP installed and mod_php was recorded as the most popular Apache HTTP
Server module. PHP is used as the server-side programming language on 75% of all Web sites.
Web content management systems written in PHP include MediaWiki[19], Joomla, eZ
Publish, SilverStripe, WordPress, Drupal and Moodle. All Web sites created using these tools are
written in PHP, including the user-facing portion of Wikipedia, Facebook, and Digg.
Security
About 30% of all vulnerabilities listed on the National Vulnerability Database are
linked to PHP. These vulnerabilities are caused mostly by not following best practice programming
rules: technical security flaws of the language itself or of its core libraries are not frequent (23 in
2008, about 1% of the total). Recognizing that programmers make mistakes, some languages
include taint checking to detect automatically the lack of input validation which induces many
issues. Such a feature is being developed for PHP, but its inclusion in a release has been rejected
several times in the past.
There are advanced protection patches such as Suhosin and Hardening-Patch, especially
designed for Web hosting environments.
Dept. Of CSE, MRCET
20
PHPIDS adds security to any PHP application to defend against intrusions. PHPIDS
detects attacks based on cross-site scripting (XSS), SQL injection, header injection, directory
traversal, remote file execution, remote file inclusion, and denial-of-service[10] (DoS).
Variables are prefixed with a dollar symbol, and a type does not need to be specified in
advance. Unlike function and class names, variable names are case sensitive. Both double-quoted
("") and heredoc strings provide the ability to interpolate a variable's value into the string. PHP
treats newlines as whitespace in the manner of a free-form language (except when inside string
quotes), and statements are terminated by a semicolon. PHP has three types of comment syntax: /*
*/ marks block and inline comments;// as well as # are used for one-line comments.
[68]
The echo statement is one of several facilities PHP provides to output text, e.g., to a Web
browser.In terms of keywords and language syntax, PHP is similar to most high level languages that
follow the C style syntax. if conditions, for and while loops, and function returns are similar in
syntax to languages such as C, C++, Java and Perl.
Data types
PHP stores whole numbers in a platform-dependent range, either a 64-bit or 32bit signed integer equivalent to the C-language long type. Unsigned integers are converted to signed
values in certain situations; this behavior is different from other programming languages. Integer
variables
can
be
assigned
using
decimal
(positive
and
negative), octal,
and hexadecimal notations.Floating point numbers are also stored in a platform-specific range.
They can be specified using floating point notation, or two forms of scientific notation.[ PHP has a
native Boolean type that is similar to the native Boolean types in Java and C++. Using the Boolean
type conversion rules, non-zero values are interpreted as true and zero as false, as in Perl and C+
+.The null data type represents a variable that has no value. The only value in the null data type
is NULL. Variables of the "resource" type represent references to resources from external sources.
These are typically created by functions from a particular extension, and can only be processed by
functions from the same extension; examples include file, image, and database resources. Arrays
can contain elements of any type that PHP can handle, including resources, objects, and even other
arrays. Order is preserved in lists of values and in hashes with both keys and values, and the two
can be intermingled. PHP also supports strings, which can be used with single quotes, double
quotes, nowdoc or heredoc syntax.
Dept. Of CSE, MRCET
21
The Standard PHP Library (SPL) attempts to solve standard problems and implements
efficient data access interfaces and classes.
Functions
PHP has hundreds of base functions and thousands more via extensions. These
functions are well documented on the PHP site; however, the built-in library has a wide variety of
naming conventions and inconsistencies. PHP currently has no functions for thread programming,
although it does support multiprocess programming on POSIX systems.
PHP 5.2 and earlier
Functions are not first-class functions and can only be referenced by their name,
directly or dynamically by a variable containing the name of the function. User-defined functions
can be created at any time without being prototyped. Functions can be defined inside code blocks,
permitting a run-time decision as to whether or not a function should be defined. Function calls
must use parentheses, with the exception of zero argument class constructor functions called with
the PHP new operator, where parentheses are optional. PHP supports quasi-anonymous
functionsthrough the create_function() function, although they are not true anonymous functions
because anonymous functions are nameless, but functions can only be referenced by name, or
indirectly through a variable $function_name();, in PHP.
PHP 5.3 and newer
PHP gained support for closures. True anonymous functions are supported using the following
syntax:
function getAdder($x) {
return function($y) use ($x) {
return $x + $y;
};
}
$adder = getAdder(8);
Dept. Of CSE, MRCET
22
which
execution
should
return
if flock() is
unsuccessful
and goto
retry; is
called.
The goto statement is restricted and requires that the target label be in the same file and context.
The goto statement has been supported since PHP 5.3.
Objects
Basic object-oriented programming functionality was added in PHP 3 and improved in
PHP 4. Object handling was completely rewritten for PHP 5, expanding the feature set and
enhancing performance. In previous versions of PHP, objects were handled like value types. The
drawback of this method was that the whole object was copied when a variable was assigned or
passed as a parameter to a method. In the new approach, objects are referenced by handle, and not
Dept. Of CSE, MRCET
23
by value. PHP 5 introduced private and protected member variables and methods, along
with abstract classes, final classes, abstract methods, and final methods. It also introduced a
standard way of declaring constructors and destructors, similar to that of other object-oriented
languages such asC++, and a standard exception handling model. Furthermore, PHP 5
added interfaces and allowed for multiple interfaces to be implemented. There are special interfaces
that allow objects to interact with the runtime system. Objects implementing ArrayAccess can be
used with array syntax and objects implementing Iterator or IteratorAggregate can be used with
the for each language construct. There is no virtual table feature in the engine, so static variables are
bound with a name instead of a reference at compile time.
If the developer creates a copy of an object using the reserved word clone, the Zend
engine will check if a clone() method has been defined or not. If not, it will call a default
clone()which will copy the object's properties. If a clone() method is defined, then it will be
responsible for setting the necessary properties in the created object. For convenience, the engine
will supply a function that imports the properties of the source object, so that the programmer can
start with a by-value replica of the source object and only override properties that need to be
changed.
Visibility of properties and methods
The visibility of PHP properties and methods refers to visibility in PHP. It is defined
using the keywords public, private, and protected. The default is public, if only var is used; var is a
synonym for public. Items declared public can be accessed everywhere. protected limits access
to inherited classes (and to the class that defines the item). private limits visibility only to the class
that defines the item. Objects of the same type have access to each other's private and protected
members even though they are not the same instance. PHP's member visibility features have
sometimes been described as "highly useful." However, they have also sometimes been described as
"at best irrelevant and at worst positively harmful."
PHP source code is compiled on-the-fly to an internal format that can be executed by
the PHP engine. In order to speed up execution time and not have to compile the PHP source code
every time the Web page is accessed, PHP scripts can also be deployed in executable format using
a PHP compiler.
Dept. Of CSE, MRCET
24
Code optimizers aim to enhance the performance of the compiled code by reducing its
size, merging redundant instructions and making other changes that can reduce the execution time.
With PHP, there are often opportunities for code optimization. An example of a code optimizer is
the eAccelerator PHP extension.
Another approach for reducing compilation overhead for PHP servers is using
an opcode cache. Opcode caches work by caching the compiled form of a PHP script (opcodes)
in shared memory to avoid the overhead of parsing and compiling the code every time the script
runs. An opcode cache, APC, is planned to be built into an upcoming release of PHP (but not 5.4 as
previously planned ).Opcode caching and code optimization can be combined for best efficiency, as
the modifications do not depend on each other (they happen in distinct stages of the compilation).
HTML :
Hyper Text Markup Language (HTML) is the main markup language for displaying
web pages and other information that can be displayed in a web browser.
HTML is written in the form of HTML elements consisting of tags enclosed in angle
brackets (like <html>), within the web page content. HTML tags most commonly come in pairs
like <h1> and </h1>, although some tags, known as empty elements, are unpaired, for
example <img>. The first tag in a pair is the start tag, the second tag is the end tag (they are also
called opening tags and closing tags). In between these tags web designers can add text, tags,
comments and other types of text-based content.The purpose of a web browser is to read HTML
documents and compose them into visible or audible web pages. The browser does not display the
HTML tags, but uses the tags to interpret the content of the page.
HTML elements form the building blocks of all websites. HTML allows images and
objects to be embedded and can be used to create interactive forms. It provides a means to
create structured documents by denoting structural semantics for text such as headings, paragraphs,
lists, links, quotes and other items. It can embed scripts in languages such as JavaScript which
affect the behavior of HTML webpages.
Web browsers can also refer to Cascading Style Sheets (CSS) to define the appearance
and layout of text and other material. The W3C, maintainer of both the HTML and the CSS
standards, encourages the use of CSS over explicitly presentational HTML markup.
ORIGINS of HTML
In 1980, physicist Tim Berners-Lee, who was a contractor at CERN, proposed and
prototyped ENQUIRE, a system for CERN researchers to use and share documents. In 1989,
Berners-Lee wrote a memo proposing an Internet-based hypertext system. Berners-Lee specified
HTML and wrote the browser and server software in the last part of 1990. In that year, Berners-Lee
and CERN data systems engineer Robert Cailliau collaborated on a joint request for funding, but
the project was not formally adopted by CERN. In his personal notes from 1990 he lists"some of
the many areas in which hypertext is used" and puts an encyclopedia first.
Version of HTML(May 2011) Used
On 14 February 2011, the W3C extended the charter of its HTML Working Group with
clear milestones for HTML5. In May 2011, the working group advanced HTML5 to "Last Call", an
invitation to communities inside and outside W3C to confirm the technical soundness of the
specification. The W3C is developing a comprehensive test suite to achieve broad interoperability
for the full specification by 2014, which is now the target date for Recommendation.
4.2 MYSQL:
MySQL "My S-Q-L", officially, but also called "My Sequel") is the world's most used
open source relational database management system (RDBMS) that runs as a server providing
multi-user access to a number of databases.It is named after co-founder Michael Widenius'
daughter, My. The SQL phrase stands for Structured Query Language.
The MySQL development project has made its source code available under the terms of
the GNU General Public License, as well as under a variety ofproprietary agreements. MySQL was
owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned
Dept. Of CSE, MRCET
26
languages with
accessing MySQL databases. These include MySQL Connector/Net for integration with
Microsoft's Visual Studio(languages such as C# and VB are most commonly used) and the JDBC
driver for Java. In addition, an ODBC interface called MyODBC allows additional programming
languages that support the ODBC interface to communicate with a MySQL database, such
as ASP or ColdFusion. The HTSQL - URL-based query method also ships with a MySQL adapter,
allowing direct interaction between a MySQL database and any web client via structured URLs.
Management and Graphical Frontends
MySQL is primarily an RDBMS and ships with no GUI tools to administer MySQL
databases or manage data contained within the databases. Users may use the included command
line tools, or use MySQL "front-ends", desktop software and web applications that create and
manage MySQL databases, build database structures, back up data, inspect status, and work with
data records. The official set of MySQL front-end tools, MySQL Workbench is actively developed
by Oracle, and is freely available for use. Third-party command-line tools are also available, such
as Percona Toolkit.
Official
The official MySQL Workbench is a free integrated environment developed by MySQL
AB, that enables users to graphically administer MySQL databases and visually design database
structures. MySQL Workbench replaces the previous package of software, MySQL GUI Tools.
Similar to other third-party packages, but still considered the authoritative MySQL frontend,
MySQL Workbench lets users manage the following:
source Community Edition which may be downloaded from the MySQL website, and the
proprietary Standard Editionwhich extends and improves the feature set of the Community Edition.
Deployment
MySQL can be built and installed manually from source code, but this can be tedious so
it is more commonly installed from a binary package unless special customizations are required. On
most Linux distributions the package management system can download and install MySQL with
minimal effort, though further configuration is often required to adjust security and optimization
settings.
Virtual Machine Image - cloud users can upload a machine image of their own with
MySQL installed, or use a ready-made machine image with an optimized installation of
MySQL on it, such as the one provided by Amazon EC2.
MySQL as a Service - some cloud platforms offer MySQL "as a service". In this
configuration, application owners do not have to install and maintain the MySQL database on
their own. Instead, the database service provider takes responsibility for installing and
maintaining the database, and application owners pay according to their usage. Two notable
cloud-based MySQL services are the Amazon Relational Database Service, and the Xeround
Cloud Database, which runs on EC2, Rackspace and Heroku.
Dept. Of CSE, MRCET
29
A third option is managed MySQL hosting on the cloud, where the database is not
offered as a service, but the cloud provider hosts the database and manages it on the application
owner's behalf. As of 2011, of the major cloud providers, only Rackspace offers managed hosting
for MySQL databases.
Licensing and Support
Both the MySQL server software itself and the client libraries use duallicensing distribution. They are offered under GPL, beginning from 28 June 2000 (which Oracle has
extended with a FLOSS License Exception) or to use a proprietary license.Support can be obtained
from the official manual. Free support additionally is available in different IRC channels and
forums. Oracle offers paid support via its MySQL Enterprise products. They differ in the scope of
services and in price. Additionally, a number of third party organizations exist to provide support
and services, including SkySQL Ab and Percona.
4.3 XAMPP:
XAMPP is a free and open source cross-platform web server solution stack package,
consisting mainly of the Apache HTTP Server, MySQL database, and interpreters for scripts
written in the PHP and Perl programming languages.
Etymology
XAMPP's name is an acronym for:
MySQL
PHP
Perl
Dept. Of CSE, MRCET
30
also
provides
support
for
creating
and
manipulating
databases
Apache 2.4.2
MySQL 5.5.25a
PHP 5.4.4
Dept. Of CSE, MRCET
31
phpMyAdmin 3.5.2
Apache 2.4.2
MySQL 5.5.25a
PHP 5.4.4
phpMyAdmin 3.5.1
OpenSSL 1.0.1c
4.4 OpenSSL:
OpenSSL[13] is an open-source implementation of the SSL and TLS protocols. The
core library, written in the C programming language, implements the basic cryptographic functions
and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a
variety of computer languages are available.
Versions
(including Solaris, Linux, Mac
are
OS
available
X and
the
for
various
open
systems
systems), OpenVMS and Microsoft Windows. IBM provides a port for the System i (OS/400).
OpenSSL is based on SSLeay by Eric A. Young and Tim Hudson, development of which
unofficially ended around December 1998, when Young and Hudson both started to work for RSA
Security.
Licensing
Dept. Of CSE, MRCET
32
OpenSSL is "dual licensed" under the OpenSSL License and the SSLeay License. The
OpenSSL License is Apache License 1.0 and SSLeay License is a 4-clause BSD License. The
common usage of the term dual-license is that the user may pick which license they wish to use.
However, OpenSSL documentation uses the term dual-license to mean that both licenses apply.
As the OpenSSL License is Apache License 1.0, but not Apache License 2.0, it requires
the phrase This product includes software developed by the OpenSSL Project for use in the
OpenSSL Toolkit. (http://www.openssl.org/) to appear in advertising material and any redistributions
(Sections 3 and 6 of the OpenSSL License). Due to this restriction, the OpenSSL License and the
Apache License are incompatible with the GPL. Some GPL developers have added an OpenSSL
exception to their licenses specifically allowing OpenSSL to be used with their system.
GNUWget and climm both
use
such
exceptions. Other
packages
use
the
LGPL
The NT-based
versions
of
Windows,
which
are
programmed
in C, C++,
and assembly, are known for their improved stability and efficiency over the 9x versions
of Microsoft Windows. Windows XP presented a significantly redesigned graphical user interface, a
change Microsoft promoted as more user-friendly than previous versions of Windows. A new
software management facility called Side-by-Side Assembly was introduced to ameliorate the
"DLL hell" that plagued 9x versions of Windows. It is also the first version of Windows to
use product activation to combat illegal copying.
During
Windows
XP's
development,
the project
was
codenamed "Whistler",
after Whistler, British Columbia, as many Microsoft employees skied at the WhistlerBlackcomb ski resort.
CHAPTER: 5
SYSTEM DESIGN
Class diagrams (Fig 6) are used to represent the classes used in the system and their
relationships.
CHAPTER: 6
Dept. Of CSE, MRCET
38
SYSTEM IMPLEMENTATION
6.1 PLAN OF IMPLEMENTATION
System Development Life Cycle (SDLC) Model
This is also known as Classic Life Cycle Model (or) Linear Sequential Model (or)
Waterfall Method. This model has the following activities.
System/Information Engineering and Modeling
Software is perpetually of an outsized system or business, work starts by creating the
needs for all system elements and then allocating some subset of these requirements to software.
Software Requirement Analysis
This process is also known as possibility study. In this phase, the development team
visits the customer and studies their system. They examine the requirement for possible software
automation in the given system. By the end of the possibility study, the team provides a document
that holds the diverse specific recommendations for the candidate system.
System Analysis and Design
In this phase, the software development process, the software's general structure and its
gradations are defined. In terms of the client - server technology needed for the package
architecture, the database design, and the data structure design etc. are all helpful in this phase.
Code Generation
The design should be interpret into a machine readable form. The code generation step
achieves this task. If the design is executed in a detailed manner, code generation can be
accomplished without much complication.
Testing
Once the code is generated, after that the software program testing starts. Different
testing methodologies are available to unravel the bugs that were committed during the previous
phases.
Maintenance
The software will unquestionably experience change once it is delivered to the
customer. There can be many reasons for this change to occur. Change could happen because of
some surprising input values into the system.
('$_POST[username]','$_POST[password]','$_POST[firstname]','$_POST[lastname]','$_POST[gend
er]','$_POST[dob]','$_POST[email]','$_POST[phone]','$_POST[address]','$_POST[securityquestio
n]','$_POST[answer]')";
$sql1="CREATE TABLE $btname (bankname varchar(128) NOT NULL, branchno varchar(128),
accountholdername varchar(128) NOT NULL,accountnumber
varchar(128)
NOT
NULL,
nameoncard
varchar(128)
NOT
NULL,expirydate
<?php
$btname=$_SESSION['login']."b";
// Establish the database connection
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
$db=$_SESSION['login'];
mysql_select_db("$db");
}
return base64_decode($data);
}
public function encode($value){
if(!$value){return false;}
$text = $value;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text,
MCRYPT_MODE_ECB, $iv);
return trim($this->safe_b64encode($crypttext));
}
public function decode($value){
if(!$value){return false;}
$crypttext = $this->safe_b64decode($value);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext,
MCRYPT_MODE_ECB, $iv);
return trim($decrypttext);
}
}
Dept. Of CSE, MRCET
44
$converter->decode($row[0]),
$converter->decode($row[1]),$converter-
>decode($row[2]),$converter->decode($row[3]),$converter->decode($row[4]),$converter>decode($row[5]),$converter->decode($row[6]));
}}
else
{
echo
"<font
color=red><h3>NO
DATA
PRESENT</h3></font>";
}
// Free the result set
mysql_free_result($result);
?>
the address of the webpage that will be automatically opened with HTTPS protocol, where
information passed with strong encryption.
CHAPTER: 7
SYSTEM TESTING
Software testing forms an activity of software development .Software testing identifies
errors at an early stage. A planned testing identifies the difference between the expected results and
the actual results. The main objective of software testing is to find errors. A successful testing is one
that uncovers, as many as yet undiscovered errors, which helps to make the software more rugged
and reliable.
Testing is applied at different levels in the software development life cycle, but the
testing done is different in nature and has different objective at each level. The focus of all testing is
to find errors, but different type of error are looked for each level.
Testing plays a very critical role in determining the reliability and efficiency of the
software and hence is very important stage in software development. Tests are to be conducted on
the software to evaluate its performance under a number of conditions ideally it should do so at the
level of each module and also when all of them, are integrated to form the complete system.
Software testing is done at different levels. They are unit testing and system testing which
comprises of integration testing and acceptance testing.
known as harness.
Here in our Project we have tested all module individually like login, signup,
encryption, storage, decryption.
CHAPTER: 8
RESULTS
8.1 Sample screens
Fig 25: Maximum Login Attempts Reached (Login fails more than 3)
Dept. Of CSE, MRCET
56
CHAPTER: 9
CONCLUSION AND FUTURE ENHANCEMENT
Cloud computing environments include three types of service: infrastructure, platform
and software. To the user, cloud computing virtualizes resources and, to access services, the user
only requires a means of accessing the Internet, e.g., a smart phone or PDA, or even a Smart Card
or other active smart chip, thus reducing purchasing and maintenance costs for software and
hardware. Because key industrial data is stored on the service providers equipment, the service
provider must protect the users data, for example by encrypting the users data prior to storage.
However, this leaves the service providers high-privilege internal staff (e.g., system administrators)
with access to both the Decryption Key and the users encrypted data, exposing the users data to
risk of potential disclosure. For cloud computing to spread, users must have a high level of trust in
the methods by which service providers protect their data. This study proposes a Business Model
for Cloud Computing Based on a Separate Encryption and Decryption Service, emphasizing that
authorization for the storage and encryption/decryption of user data must be vested with two
different service providers. The privileges of Storage as Service provider include storing user data
which has already been encrypted through an Encryption/Decryption Service System, but does not
allow this service provider access to the Decryption Key or allow for the storage of decrypted data.
Furthermore, the privileges of the Encryption/Decryption as Service provider includes management
of the key required for the encryption/decryption of user data, but not the storage of decrypted or
encrypted user data.
In this new business model, user data in the Storage Service System is all saved
encrypted. Without the decryption key, there is no way for the service provider to access the user
data. Within the Encryption/Decryption Service System there is no stored user data, thus
eliminating the possibility that user data might be improperly disclosed. After establishing
Independent Encryption/Decryption Services in cloud computing environments, users of cloud
computing services (e.g., CRM, ERP, etc.) will use the services of at least two cloud computing
service providers, so agreements between these service providers are required to establish a model
for cooperation and division of responsibilities in providing a common service to clients.
APPENDIX
Source code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud | Home</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/arial.js"></script>
<script type="text/javascript" src="js/cuf_run.js"></script>
</head>
<body>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="logo">
<h1><a href="index.html">Cloud Project <small></small></a></h1>
</div>
<div class="menu_nav">
<ul>
<li class="active"><a href="index.html">Home</a></li>
<li><a href="register.html">Sign Up</a></li>
<li><a href="signin.html">Sign In</a></li>
</ul>
</div>
<div class="clr"></div>
<div class="htext">
<h2>ASSURANCE ON DATA STORAGE SECURITY IN CLOUD COMPUTING</h2>
<p></p>
<p></p>
<p></p>
</div>
<div class="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="article">
<h2><span>Is Cloud Data Storage Secured? </span></h2>
<div class="clr"></div>
Dept. Of CSE, MRCET
59
<p>In the Traditional Cloud Architecture Encryption and Decryption are with Storage service
provider, So there is a privacy Issue. Here in the new Cloud Architecture, we are devided the
storage system and Securtiy System into two saperate services, So risk Of Security is low in
Maximum. </p>
</div>
<div class="main">
<div class="logo">
<h1><a href="register.html">Join wit us...<small></small></a></h1>
</div>
</div>
<div class="clr"></div>
<!-- PLACE FORM Using ORDERED LIST -->
</div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="fbg">
<div class="fbg_resize">
<p class="lf">© Copyright ->ASSURANCE ON DATA STORAGE SECURITY IN
CLOUD COMPUTING.</p>
</div>
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud | Home</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/arial.js"></script>
<script type="text/javascript" src="js/cuf_run.js"></script>
</head>
<body>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="logo">
Dept. Of CSE, MRCET
60
</div>
</div>
</body>
</html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud | Sign Up</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/arial.js"></script>
<script type="text/javascript" src="js/cuf_run.js"></script>
<script src="jquery.js" type="text/javascript" language="javascript"></script>
</head>
<body>
<script language="javascript">
//<!---------------------------------+
// Developed by Roshan Bhattarai
// Visit http://roshanbh.com.np for this script and more.
// This notice MUST stay intact for legal use
// --------------------------------->
$(document).ready(function()
{
$("#username").blur(function()
{
//remove all the class add the messagebox classes and start fading
$
("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
//check the username exists or not from ajax
$.post("user_availability.php",{ user_name:$(this).val() } ,function(data)
{
if(data=='no') //if username not avaiable
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('This User name Already
exists').addClass('messageboxerror').fadeTo(900,1);
});
}
else
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
Dept. Of CSE, MRCET
62
//add message and change the class of the box and start fading
$(this).html('Username available to
register').addClass('messageboxok').fadeTo(900,1);
});
}
});
});
});
</script>
<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
}
.top {
margin-bottom: 15px;
}
.messagebox{
position:relative;
width:100px;
margin-left:30px;
border:1px solid #c93;
background:#ffc;
padding:3px;
}
.messageboxok{
position:relative;
width:auto;
margin-left:30px;
border:1px solid #349534;
background:#C9FFCA;
padding:3px;
font-weight:bold;
color:#008000;
}
.messageboxerror{
position:relative;
width:auto;
margin-left:30px;
border:1px solid #CC0000;
background:#F7CBCA;
padding:3px;
font-weight:bold;
color:#CC0000;
}
Dept. Of CSE, MRCET
63
</style>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="logo">
<h1><a href="index.html">Cloud Project <small></small></a></h1>
</div>
<div class="menu_nav">
<ul>
<li><a href="index.html">Home</a></li>
<li class="active"><a class="active" href="register.html">Sign Up</a></li>
<li><a href="signin.html">Sign In</a></li>
</ul>
</div>
<div class="clr"></div>
<div class="htext">
<h2>ASSURANCE ON DATA STORAGE SECURITY IN CLOUD COMPUTING</h2>
<p></p>
<p></p>
<p></p>
</div>
<div class="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="main">
<div class="logo">
<h1>Registration</h1>
</div>
</div>
<div class="clr"></div>
<div class="article">
<div class="clr"></div>
<OL>
<div >
<LI>User Name </br><INPUT TYPE="text" NAME="username" id="username"
class="text"></LI></br>
<span id="msgbox" style="display:none"></span>
</div>
<LI>Password </br><INPUT TYPE="password"NAME="password"class="text">
</LI></br>
<LI>Confirm Password</br><INPUT TYPE="password"class="text"
name="cpassword" onblur="return cnfpwd()"> </LI></br>
<LI>First Name</br><INPUT TYPE="text" NAME="firstname"class="text"
onblur="return validatefName()"> </LI></br>
<LI>Last Name</br><INPUT TYPE="text" NAME="lastname"class="text"
onblur="return validatefName()"> </LI></br>
<LI>Gender</br><select name="gender" class="text" >
<option value="Male">Male</option>
<option value="Female">Female</option>
</select> </LI></br>
<LI>DOB</br><INPUT TYPE="text" NAME="dob"class="text"> EX:
YYYY/MM/DD</LI></br>
<LI>E-mail</br><INPUT TYPE="text" NAME="email"class="text"
onblur="return ValidateForm()"> </LI></br>
<LI>Confirm E-mail</br><INPUT TYPE="text"
NAME="cemail"class="text" onblur="return cnfemail()" > </LI></br>
<LI>Phone </br><INPUT TYPE="text" NAME="phone"class="text"
onblur="return Validate()"> </LI></br>
<LI>Address</br> <TEXTAREA NAME="address" ROWS="2" cols="1"
class="text"></TEXTAREA> </LI></br>
<LI>Security Question </br><select name="securityquestion" id="sq"
size="4" class="text">
<option value="What is your mothers Median">What is your mother's Median</option>
<option value="What is yor favorite Pet">What is yor favorite Pet</option>
<option value="What is your favorite tourist place">What is your favorite tourist place</option>
<option value="What is your Fathers Middle name">What is your Father's Middle
name</option>
Dept. Of CSE, MRCET
65
</FORM>
<script language = "Javascript">
function validatefName(){
var namePattern = /^[A-Za-z]{3,25}$/;
if( !namePattern.test(document.frmSample.firstname.value))
alert("Enter valid name");
}
function validatelName(){
var namePattern = /^[A-Za-z]{1,25}$/;
if( !namePattern.test(document.frmSample.lastname.value))
alert("Enter valid name");
function cnfpwd()
{
var password=document.frmSample.password;
Dept. Of CSE, MRCET
66
var cpassword=document.frmSample.cpassword;
if (password.value != cpassword.value) {
alert("Your password and confirmation password do not match.");
cpassword.focus();
return false;
}
}
function cnfemail()
{
var email=document.frmSample.email;
var cemail=document.frmSample.cemail;
if (email.value != cemail.value) {
alert("Your Email and confirmation Email do not match.");
cemail.focus();
return false;
}
}
function checkdate(input){
var validformat=/^\d{4}\/\d{2}\/\d{2}$/ //Basic check for format validity
var returnval=false
if (!validformat.test(input.value))
alert("Invalid Date Format. Please correct and submit again.")
else{ //Detailed check for valid date ranges
var monthfield=input.value.split("/")[1]
var dayfield=input.value.split("/")[2]
var yearfield=input.value.split("/")[0]
var dayobj = new Date(yearfield, monthfield-1, dayfield)
if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!
=yearfield))
alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
else
returnval=true
}
if (returnval==false) input.select()
return returnval
}
function Validate()
{
var x = document.frmSample.phone.value;
if(isNaN(x)|| x.indexOf(" ")!=-1){
alert("Enter numeric value");return false; }
Dept. Of CSE, MRCET
67
return true
}
function ValidateForm(){
var emailID=document.frmSample.email;
if ((emailID.value==null)||(emailID.value=="")){
alert("Please Enter your Email ID")
emailID.focus()
return false
}
if (echeck(emailID.value)==false){
emailID.value=""
emailID.focus()
return false
}
return true
}
</script>
</div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="fbg">
<div class="fbg_resize">
<p class="lf">© Copyright ->ASSURANCE ON DATA STORAGE SECURITY IN
CLOUD COMPUTING.</p>
</div>
</div>
</div>
</div>
</body>
</html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
session_start();
$_SESSION['login'] = $_POST['username'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cloud </title>
Dept. Of CSE, MRCET
69
<div class="main">
<div class="header">
<div class="header_resize">
<div class="logo">
<h1><a href="index.html">Cloud APP <small></small></a></h1>
</div>
<div class="menu_nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="logout.php">Sign out</a></li><br>
<?php
$connection = mysql_connect("localhost","root","");
if (!$connection)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("cloud", $connection);
$username=$_POST['username'];
$field = 'loginfails';
$result = mysql_query("SELECT $field FROM user where username='$username' ");
$num=mysql_result($result, 0);
if($num>3)
{
header("location: loginfails.php");
}
?>
<?php
$link = mysql_connect('localhost', 'root', '') OR die(mysql_error());
mysql_select_db('cloud',$link);
Dept. Of CSE, MRCET
70
$username = $_POST['username'];
$password = $_POST['password'];
$otp = $_POST['otp'];
<p></p>
</div>
<div class="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="main">
<div class="logo">
<h1>SIMPLE E-VALLET INFO APP</h1>
</div>
</div>
<div class="clr"></div>
<div class="article">
<div class="clr"></div>
<style type="text/css">
table.sample {
border-width: 5px;
border-spacing: 10px;
border-style:inset;
border-color:#7fd0f6;
border-collapse: separate;
background-color:#7fd0f6 ;
}
</style>
<TABLE class="sample" width=600 height=400>
<TR>
<TD><center><a href="sbi.php"><IMG SRC="./images/button.png" WIDTH="201"
HEIGHT="38" BORDER="0" ALT=""></a></center></TD>
</TR>
<TR>
<TD><center><A HREF="scci.php"><IMG SRC="./images/button (3).png"
WIDTH="270" HEIGHT="38" BORDER="0" ALT=""></A></center></TD>
</TR>
<TR>
<div class="fbg">
<div class="fbg_resize">
<p class="lf">© Copyright ->ASSURANCE ON DATA STORAGE SECURITY IN
CLOUD COMPUTING.</p>
</div>
</div>
</div>
</div>
</body>
</html> Crypt_RSA class, derived from Crypt_RSA_ErrorHandler
*
* Provides the following functions:
* - setParams($params) - sets parameters of current object
* - encrypt($plain_data, $key = null) - encrypts data
* - decrypt($enc_data, $key = null) - decrypts data
* - createSign($doc, $private_key = null) - signs document by private key
* - validateSign($doc, $signature, $public_key = null) - validates signature of document
*
* Example usage:
* // creating an error handler
* $error_handler = create_function('$obj', 'echo "error: ", $obj->getMessage(), "\n"');
*
* // 1024-bit key pair generation
* $key_pair = new Crypt_RSA_KeyPair(1024);
*
* // check consistence of Crypt_RSA_KeyPair object
* $error_handler($rsa_obj);
*
* // creating Crypt_RSA object
* $rsa_obj = new Crypt_RSA;
*
* // check consistence of Crypt_RSA object
* $error_handler($rsa_obj);
*
* // set error handler on Crypt_RSA object ( see Crypt/RSA/ErrorHandler.php for details )
* $rsa_obj->setErrorHandler($error_handler);
*
* // encryption (usually using public key)
* $enc_data = $rsa_obj->encrypt($plain_data, $key_pair->getPublicKey());
*
* // decryption (usually using private key)
* $plain_data = $rsa_obj->decrypt($enc_data, $key_pair->getPrivateKey());
*
* // signing
* $signature = $rsa_obj->createSign($document, $key_pair->getPrivateKey());
*
Dept. Of CSE, MRCET
74
* // signature checking
* $is_valid = $rsa_obj->validateSign($document, $signature, $key_pair->getPublicKey());
*
* // signing many documents by one private key
* $rsa_obj = new Crypt_RSA(array('private_key' => $key_pair->getPrivateKey()));
* // check consistence of Crypt_RSA object
* $error_handler($rsa_obj);
* // set error handler ( see Crypt/RSA/ErrorHandler.php for details )
* $rsa_obj->setErrorHandler($error_handler);
* // sign many documents
* $sign_1 = $rsa_obj->sign($doc_1);
* $sign_2 = $rsa_obj->sign($doc_2);
* //...
* $sign_n = $rsa_obj->sign($doc_n);
*
* // changing default hash function, which is used for sign
* // creating/validation
* $rsa_obj->setParams(array('hash_func' => 'md5'));
*
* // using factory() method instead of constructor (it returns PEAR_Error object on failure)
* $rsa_obj = &Crypt_RSA::factory();
* if (PEAR::isError($rsa_obj)) {
*
echo "error: ", $rsa_obj->getMessage(), "\n";
* }
*
* @category Encryption
* @package Crypt_RSA
* @author Alexander Valyalkin <[email protected]>
* @copyright 2005 Alexander Valyalkin
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @link
http://pear.php.net/package/Crypt_RSA
* @version @package_version@
* @access public
*/
class Crypt_RSA extends Crypt_RSA_ErrorHandler
{
/**
* Reference to math wrapper, which is used to
* manipulate large integers in RSA algorithm.
*
* @var object of Crypt_RSA_Math_* class
* @access private
*/
var $_math_obj;
/**
* key for encryption, which is used by encrypt() method
Dept. Of CSE, MRCET
75
*
* @var object of Crypt_RSA_KEY class
* @access private
*/
var $_enc_key;
/**
* key for decryption, which is used by decrypt() method
*
* @var object of Crypt_RSA_KEY class
* @access private
*/
var $_dec_key;
/**
* public key, which is used by validateSign() method
*
* @var object of Crypt_RSA_KEY class
* @access private
*/
var $_public_key;
/**
* private key, which is used by createSign() method
*
* @var object of Crypt_RSA_KEY class
* @access private
*/
var $_private_key;
/**
BIBLIOGRAPHY
[1] A. Weiss, Computing in the clouds, netWorker, vol. 11, no. 4, pp. 16-25, December 2007.
[2] C. S. Yeo, S. Venugopal, X. Chu, and R. Buyya, "Autonomic meteredpricing for a utility
computing service", Future Generation ComputerSystems, vol. 26, issue 8, pp. 1368-1380, October
2010.
[3] B. R. Kandukuri, V, R. Paturi and A. Rakshit, Cloud security issues,in Proceedings of the
2009 IEEE International Conference on ServicesComputing, pp. 517-520, September 2009.
[4] R. Sterritt, Autonomic computing, Innovations in Systems andSoftware Engineering, vol. 1,
no. 1, Springer, pp. 79-88. 2005.
[5] R. Buyya, C. S. Yeo, S. Venugopal, J. Broberg, and I. Brandic, Cloudcomputing and emerging
IT platforms: vision, hype, and reality fordelivering computing as the 5th utility, Future
Generation ComputerSystems, vol. 25, issue 6, pp. 599-616, June 2008.
[6] L. M. Vaquero,L. Rodero-Merino,J. Caceres, and M. Lindner, A breakin the clouds: towards a
cloud definition, ACM SIGCOMM ComputerCommunication Review, vol. 39, no. 1, pp. 50-55,
January 2009.
[7] C. Weinhardt, A. Anandasivam, B. Blau, N. Borissov, T. Meinl, W.Michalk, and J. Ster,
Cloud computing a classification, businessmodels, and research directions, Business &
Information SystemsEngineering (BISE), vol. 1, no. 5, pp. 391-399, 2009.
[8] N. Hawthorn, Finding security in the cloud, Computer Fraud &Security, vol. 2009, issue 10,
pp. 19-20, October 2009.
[9] A. Parakh and S. Kak, Online data storage using implicit securityInformation Sciences, vol.
179, issue 19, pp. 3323-3333 ,September2009.
[10] R. Rivest, A. Shamir, and L. Adleman, A method for obtaining digitalsignatures and public
key cryptosystems, Communications of theACM, vol. 21, no. 2, pp.120-126, 1978.
[11] V. Miller, Uses of elliptic curves in cryptography, Advances inCryptology - CRYPTO '85,
Lecture Notes in Computer Science, pp.417-426, 1986.
[12] L. Lamport, Password authentication with insecure communication,Communications of the
ACM, vol. 24, no. 11, pp. 770-772, 1981.
[13] A. Elgohary, T. S. Sobh, and M. Zaki, Design of an enhancement forSSL/TLS protocols,
Computers & Security, vol. 25, no. 4, pp. 297-306,June 2006.
Dept. Of CSE, MRCET
77
[14]
Salesforce.com,
Inc.,
Force.com
platform,
Retrieved
Dec.
2009,
fromhttp://www.salesforce.com/tw/
[15] SAP AG., SAP services: maximize your success, Retrieved Jan. 2010,from
http://www.sap.com/services/index.epx
[16] D. Benslimane, S. Dustdar, and A. Sheth, "Services mashups: the new
generation of web applications". IEEE Internet Computing, vol. 12, no.5, pp. 1315, 2008.
[17] A Business Model for Cloud Computing Based on separate Encryption and Decryption.
978-1-
4244-9224-4/2011/IEEE, Jing-Jang Hwang and Hung-Kai Chuang, Yi-Chang Hsu and Chien-Hsing
Wu
[18] http://www.php.net/
[19] http://www.wikipedia.org/
[20] http://www.w3schools.com/