HCSS
HCSS
Security System
Table of Contents
1). Introduction
2.2 To be Praposed
6. System Design
7. Coding
7.7 Testing
7.8 Testing techniques and strategies
7.9 Debugging and code improvement
8. System Security measures
To Be Proposed :
ECONOMIC FEASIBILITY:
Operating Environment :
SOFTWARE REQUIREMENTS
HARDWARE REQUIREMENTS
Project Planning:
SDLC METHODOLOGIES
The incoming data to the product would be raw text data and
outgoing data would be text itself. Both input and output are
handled thru dynamic HTML. A browser is required for access.
1. Administrator Module
2. User Module
3. Encryption Decryption Module
4. Security and Authentication
5. Reports
Administrator:
View Users
Accept Users
Delete or reject user authentication
User:
Banks Accounts Information
Add Banks Accounts Information
View Banks Accounts Information
Update Bank Account Information
Delete Bank Acc Information
Mails Information
Add Mails
View Mails
Update Mails
Delete Mails
Career Information
Add Study Details
View Study Details
Delete Study Details
Update Study Details
License Details
Add License Details
View License Details
Delete License Details
Update License Details
Passport Details
Add Passport Details
View Passport Details
Delete Passport Details
Update Passport Details
Pan card Details
Add pan card Details
View pan card Details
Delete Pan card Details
Update Pan card Details
Add Insurance Details
Add Insurance Details
View Insurance Details
Delete Insurance Details
Update Insurance Details
Imp Files Details
Add
View
Delete
Update
3. Encryption and Decryption Module:
x = 0 Þ y2 2= 3 Þ no solution (mod 5)
x = 1 Þ y2 = 6 = 1 Þ y = 1,4 (mod 5)
x = 2 Þ y2 = 15 = 0 Þ y = 0 (mod 5)
x = 3 Þ y2 = 36 = 1 Þ y = 1,4 (mod 5)
x = 4 Þ y2 = 75 = 0 Þ y = 0 (mod 5)
• Then points on the elliptic curve are
(1,1) (1,4) (2,0) (3,1) (3,4) (4,0) and the point at infinity: ¥
By using above mathematical calculations are getting Encryption
& decryption.
RSA:
The RSA algorithm was publicly described in 1977 by Ron Rivest, Adi Shamir, and Leonard
Adleman
The RSA algorithm involves three steps:
key generation, encryption and decryption.
Key generation
RSA involves a public key and a private key.
The public key can be known to everyone and is used for encrypting messages.
Messages encrypted with the public key can only be decrypted using the private key.
The keys for the RSA algorithm are generated the following way:
1. Choose two distinct prime numbers p and q.
o For security purposes, the integers p and q should be chosen at random, and
should be of similar bit-length.
2. Compute n = pq.
o n is used as the modulus for both the public and private keys. Its length,
usually expressed in bits, is the key length.
4. Choose an integer e such that 1 < e < φ(n) and greatest common divisor gcd(e, φ(n))
= 1; i.e., e and φ(n) are coprime.
o e is released as the public key exponent.
By construction, d⋅e ≡ 1 (mod φ(n)). The public key consists of the modulus n and the public
(or encryption) exponent e. The private key consists of the modulus n and the private (or
decryption) exponent d, which must be kept secret. p, q, and φ(n) must also be kept secret
because they can be used to calculate d.
This can be done quickly using the method of exponentiation by squaring. Bob then transmits
c to Alice.
Decryption
Alice can recover m from c by using her private key exponent d via computing
Given m, she can recover the original message M by reversing the padding scheme.
(In practice, there are more efficient methods of calculating cd using the precomputed values
below.)
A working example
Here is an example of RSA encryption and decryption. The parameters used here are
artificially small, but one can also use OpenSSL to generate and examine a real keypair.
1. Choose two distinct prime numbers, such as
and .
2. Compute n = pq giving
.
3. Compute the totient of the product as φ(n) = (p − 1)(q − 1) giving
.
4. Choose any number 1 < e < 3120 that is coprime to 3120. Choosing a prime number
for e leaves us only to check that e is not a divisor of 3120.
Let .
5. Compute d, the modular multiplicative inverse of e (mod φ(n)) yielding
.
The public key is (n = 3233, e = 17). For a padded plaintext message m, the encryption
function is m17 (mod 3233).
The private key is (n = 3233, d = 2753). For an encrypted ciphertext c, the decryption
function is c2753 (mod 3233).
For instance, in order to encrypt m = 65, we calculate
To decrypt c = 2790, we calculate
.
Both of these calculations can be computed efficiently using the square-and-multiply
algorithm for modular exponentiation. In real life situations the primes selected would be
much larger; in our example it would be relatively trivial to factor n, 3233, obtained from the
freely available public key back to the primes p and q. Given e, also from the public key, we
could then compute d and so acquire the private key.
Public –key cryptosystems:
ECC:
Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the
algebraic structure of elliptic curves over finite fields.
Elliptic Curve Cryptography (ECC) was discovered in 1985 by Victor Miller (IBM) and Neil
Koblitz (University of Washington) as an alternative mechanism for implementing public-
key cryptography.
I assume that those who are going through this article will have a basic understanding of
cryptography ( terms like encryption and decryption ) .
The equation of an elliptic curve is given as,
Few terms that will be used,
E -> Elliptic Curve
P -> Point on the curve
n -> Maximum limit ( This should be a prime number )
Fig 3
The fig 3 show are simple elliptic curve.
Key Generation
Key generation is an important part where we have to generate both public key and private
key. The sender will be encrypting the message with receiver’s public key and the receiver
will decrypt its private key.
Now, we have to select a number ‘d’ within the range of ‘n’.
Using the following equation we can generate the public key
Q=d*P
d = The random number that we have selected within the range of ( 1 to n-1 ).
P is the point on the curve.
‘Q’ is the public key and ‘d’ is the private key.
Encryption
Let ‘m’ be the message that we are sending. We have to represent this message on the curve.
This have in-depth implementation details. All the advance research on ECC is done by a
company called certicom.
Conside ‘m’ has the point ‘M’ on the curve ‘E’. Randomly select ‘k’ from [1 - (n-1)].
Two cipher texts will be generated let it be C1 and C2.
C1 = k*P
C2 = M + k*Q
C1 and C2 will be send.
Decryption
We have to get back the message ‘m’ that was send to us,
M = C2 – d * C1
M is the original message that we have send.
Proof
How does we get back the message,
M = C2 – d * C1
‘M’ can be represented as ‘C2 – d * C1′
C2 – d * C1 = (M + k * Q) – d * ( k * P ) ( C2 = M + k * Q and C1 = k * P )
C2 – d * C1 = M +( k * d*P) – (d * k * P)
= M +( k * d * P) – (d * k *P) ( canceling out k * d * P )
= M ( Original Message )
4. Security and Authentication:
Login
Logout
Registration
Change Passwords
Forget Password
View Profile
Update Profile
5. Reports
* Generating Different Format report To be download (.xls,
pdf, html, txt)
Administrator:
View Users
Accept or reject user authentication
Delete user (or ) user Authentication
Banks Accounts Information
View Banks Accounts Information
Delete Bank Acc Information
Mails Information
View Mails
Delete Mails
Career Information
View Study Details
Delete Study Details
License Details
View License Details
Delete License Details
Passport Details
View Passport Details
Delete Passport Details
Pan card Details
View pan card Details
Delete Pan card Details
Add Insurance Details
View Insurance Details
Delete Insurance Details
Imp Files Details
View
Delete
Login
View Profile
Generating Different Format report To be download (.xls,
pdf, html, txt)
5). Non Funtional Requirements
SYSTEM DESIGN
E-R DIAGRAM
DATA FLOW DIAGRAM
Diagrams are the central tool and the basis from which other
bubble chart. DFDs are the model of the proposed system. They
destination.
the System.
Login DFD
Class Diagram
CLASS DIAGRAM
Class diagrams describe the structure of the system
in terms of classes and objects. The servlet api class
diagram will be as follows.
Use Case Diagrams
UML Diagrams
Unified Modeling Language:
Administrator
Authenticated User
Delete Users
<<include>>
View RegisteredUsers
Accept/RejectUsers Request
<<include>>
Authenticated Users
View Requested Users
Delete User
<<include>>
Profile
<<include>>
Change Password
Logout
3. User Use Case Diagram
Mails
view Mails Details deleteMails Details
<<include>>
<<include>>
Add Passport Details
PassPort Details
update Passport Details
View Passport Details
<<include>> deleteFiles
<<include>>
view Profile
Logout
UpdateProfile
<<include>>
Change Password
UsernameCheck
new Registration
<<include>>
User <<extend>>
ForgetPassword NewPassword
Site Information
ACTIVITY DIAGRAMS
ACTIVITY DIAGRAMS
Admin
False
logincheck
True
Authenticated Users
Profile
Change Password
View Requested Users View Profile Update Profile
View Registered Users
Accept/Reject Users
Delete Users
User Activity:
Authendicated User
logincheck False
True
delete update
DeleteBankDetails update update update
delete delete update
DeleteStudyDetails updateBankDetails delete
delete delete
UpdateStudeyDetails update
Component Diagram
Component Diagram:
Deployment Diagram
Deployment Diagram:
TECHNOLOGY DESCRIPTION
HTML
HTML, an initialism of Hypertext Markup Language, is the
predominant markup language for web pages. It provides a
means to describe the structure of text-based information in a
document — by denoting certain text as headings, paragraphs,
lists, and so on — and to supplement that text with interactive
forms, embedded images, and other objects. HTML is written in
the form of labels (known as tags), surrounded by angle brackets.
HTML can also describe, to some degree, the appearance and
semantics of a document, and can include embedded scripting
language code which can affect the behavior of web browsers and
other HTML processors.
JavaScript Vs Java
Advantages
JavaScript can be used for Sever-side and Client-side
scripting.
It is more flexible than VBScript.
JavaScript is the default scripting languages at Client-
side since all the browsers supports it.
Java Technology
Every time you that you download a “normal” program, you are
risking a viral infection. Prior to Java, most users did not
download executable programs frequently, and those who did
scan them for viruses prior to execution. Most users still worried
about the possibility of infecting their systems with a virus. In
addition, another type of malicious program exists that must be
guarded against. This type of program can gather private
information, such as credit card numbers, bank account
balances, and passwords. Java answers both these concerns by
providing a “firewall” between a network application and your
computer.
Portability
The key that allows the Java to solve the security and portability
problems is that the output of Java compiler is Byte code. Byte
code is a highly optimized set of instructions designed to be
executed by the Java run-time system, which is called the Java
Virtual Machine (JVM). That is, in its standard form, the JVM is
an interpreter for byte code.
Beyond the language, there is the Java virtual machine. The Java
virtual machine is an important element of the Java technology.
The virtual machine can be embedded within a web browser or
an operating system. Once a piece of Java code is loaded onto a
machine, it is verified. As part of the loading process, a class
loader is invoked and does byte code verification makes sure that
the code that’s has been generated by the compiler will not
corrupt the machine that it’s loaded on. Byte code verification
takes place at the end of the compilation process to make sure
that is all accurate and correct. So byte code verification is
integral to the compiling and executing of Java code.
Overall Description
Java .Class
Java Architecture
Compilation of code
When you compile the code, the Java compiler creates machine
code (called byte code) for a hypothetical machine called Java
Virtual Machine (JVM). The JVM is supposed to execute the byte
code. The JVM is created for overcoming the issue of portability.
The code is written and compiled for one machine and
interpreted on all machines. This machine is called Java Virtual
Machine.
Compiling and interpreting Java Source Code
Java
PC Compiler Interpreter
Java (PC)
Source
Code Byte code
………..
……….. Macintosh Java
Compiler (Platform Interpreter
Independe (Macintosh)
………..
nt)
………… SPARC
Java
Interpreter
Compiler (Spare)
During run-time the Java interpreter tricks the byte code file into
thinking that it is running on a Java Virtual Machine. In reality
this could be a Intel Pentium Windows 95 or SunSARC station
running Solaris or Apple Macintosh running system and all could
receive code from any computer through Internet and run the
Applets.
Simple
Struts 2 Features:
The strut-2 framework is designed for the compilation of the
entire development cycle including of building, developing and
maintaining the whole application. It is very extensible as each
class of the framework is based on an Interface and all the base
classes are given an extra application and even you can add your
own. The basic platform requirements are Servlet API 2.4, JSP
API 2.0 and Java 5.
Other Features:
Any class can be used as an action class and one can input
properties by using any JavaBean directly to the action
class.
Struts 2 History:
Apache Struts is an open-source framework that is used for
developing Java web application. Originally developed by the
programmer and author Craig R. McClanahan, this was later
taken over by the Apache Software Foundation in 2002. Struts
have provided an excellent framework for developing application
easily by organizing JSP and Servlet based on HTML formats and
Java code. Strut1 with all standard Java technologies and
packages of Jakarta assists to create an extensible development
environment. However, with the growing demand of web
application, Strut 1 does not stand firm and needs to be changed
with demand. This leads to the creation of Strut2, which is more
developer friendly with features like Ajax, rapid development and
extensibility.
Struts 2 Architecture:
Struts and webwork has joined together to develop the Struts 2
Framework. Struts 2 Framework is very extensible and elegant
for the development of enterprise web application of any size. In
this section we are going to explain you the architecture of Struts
2 Framework.
Struts 2 Architecture
For the Model, the framework can use any data access
technologies like JDBC, EJB, Hibernate etc and for the View, the
framework can be integrated with JSP, JTL, JSF, Jakarta
Velocity Engine, Templates, PDF, XSLT etc.
Exception Handling:
The Struts 2 Framework allows us to define exception handlers
and inceptors.
Exception Handlers:
Exception handlers allows us to define the exception
handling procedure on global and local basis. Framework
catches the exception and then displays the page of our
choice with appropriate message and exception details.
Interceptors:
The Interceptors are used to specify the "request-processing
lifecycle" for an action. Interceptors are configured to apply
the common functionalities like workflow, validation etc.. to
the request.
Struts 2 Architecture
FilterDispatcher:
Next the FilterDispatch is called, which in turn uses the
ActionMapper to determine whether to invoke an Action or
not. If the action is required to be invoked, the
FilterDispatcher delegates the control to the ActionProxy.
ActionProxy:
The ActionProxy takes help from Configuration Files
manager, which is initialized from the struts.xml. Then the
ActionProxy creates an ActionInvocation, which
implements the command pattern. The ActionInvocation
process invokes the Interceptors (if configured) and then
invokes the action. The the ActionInvocation looks for
proper result. Then the result is executed, which involves
the rendering of JSP or templates.
Why Struts 2:
The new version Struts 2.0 is a combination of the Sturts
action framework and Webwork. According to the Struts
2.0.1 release announcement, some key features are:
1. Servlet Dependency:
2. Action classes
3. Validation
4. Threading Model
5. Testability
6. Harvesting Input
7. Expression Language
9. Type Conversion
Features of Hibernate
Hibernate Architecture
In this lesson you will learn the architecture of Hibernate. The
following diagram describes the high level architecture of
hibernate:
The above diagram shows that Hibernate is using the database
and configuration data to provide persistence services
(and persistent objects) to the application.
Connection Management
Hibernate Connection management service provide efficient
management of the database connections. Database
connection is the most expensive part of interacting with
the database as it requires a lot of resources of open and
close the database connection.
Transaction management:
Transaction management service provide the ability to the
user to execute more than one database statements at a
time.
Object relational mapping:
Object relational mapping is technique of mapping the data
representation from an object model to a relational data
model. This part of the hibernate is used to select, insert,
update and delete the records form the underlying table.
When we pass an object to a Session.save() method,
Hibernate reads the state of the variables of that object and
executes the necessary query.
In the next section I will show how to run and test the program.
_R01
FOREIGN KEY (USERIDREF)
REFERENCES HCSS.USERDETAILS (USERID));
DATA DICTIONARY
ADDRESSES :
BANK_DETAILS
EDUCATIONAL_DETAILS
IMPORTANT_FILES
INSURENCE_DETAILS
LOGINDETAILS
MAIL_DETAILS
PANCARD_DETAILS
PASSPORT_DETAILS
USERDETAILS
System Security Measures :
Data Security
Term Definition
Data security is the process of protecting information systems
and its data from unauthorized accidental or intentional
modification, destruction or disclosure. The protection includes
the confidentiality, integrity and availability of these systems and
data.
Step 1.
Open SqlPlus
Enter Administrator User Name:--------
Password:--------
HostString:--------
Step 2.
SQL>create user <username> identified by
<password>;
user Created.
SQL>show user;
user is "username" (check here username).
Step 3.
Start---->Run--->imp--->
username:<username>/<password>
----Press
Enter Key-----
Press --> y
---Press Enter Key---
Press --> y
---Press Enter Key---
Press --> y
---Press Enter Key---
Press --> y
---Press Enter Key---
SQL>desc <tablename>;
It gives column names and datatypes.
Why Estimate?
The accuracy of project estimates can have a dramatic impact on
profitability. Software development projects are characterised by
regularly over running their budgets and rarely meeting
deadlines.
Effective software estimation is one of the most important
software development activities however it is also one of the most
difficult. Under estimating a project will lead to under staffing it,
under scoping the quality assurance effort and setting too
short a schedule. That in turn can lead to staff burnout , low
quality , loss of credibility, deadlines being missed and
ultimately to inefficient development effort that takes longer than
normal. Overestimating a project can be almost as bad.
Parkinson's Law is that work expands until available time comes
into play. Which means that the project will take as long as
estimated even if the project is over estimated. An accurate
estimate is a critical part of the foundation of efficient software
development.
Misapplication of metrics