SRS-Design and Implementation
SRS-Design and Implementation
SRS-Design and Implementation
1.INTRODUCTION
1.1 DESCRIPTION
The number of smartphone users is rapidly increasing worldwide, especially the of
Android OS users devices most often used for IT. Services are changing from PCs
and
laptops to smartphones and tablets. These devices need to be small for increased
portability. The technologies are convenient, but as the devices start to contain
increasing amounts of important personal information, better security is required.
Security systems are rapidly being developed. The aim of the project is to develop
anandroid-basedsmart phone application. Today more people using simple and
cheaper hardware such as mobiles and handheld
devices we can communicate & also we can do business transactions. It provides
much better mobility than PCs. Technology is moving towards mobiles which has
wide spread usage and
acceptability. Lot of protocols and softwares has been developed. The recent surge in
popularity of smart handheld devices, includingsmart-phonesand tablets, has given rise
to new
challenges in protection of Personal Identifiable Information (PII). Indeed modern
mobile devices store PII for applications that span from email to SMS and from social
media to location- based services increasing the concerns of the end user s privacy.
Therefore,there is a clear need and expectation for PII data to be protected in the case of
loss, theft, or capture of the portable device.
devices
based
on
the
Linux
operating
system
and
1.2 PURPOSE
The aim of the project is to provide more security to the handheld devices.
Now a days smart phones contains a large number of official data s that should be
secured. The future electronic payment is through smart phones authentication and
facial recognition Card less Mobile Cash Access (MCA) solution, which not only
eliminates the threat of card skimming at the ATM, but also allowsfinancial
institutions to provide a secure mobile wallet solution without installing additional
1.3SCOPE
To gain a more practical understanding of the challenges mobile authentication
Encounters, The case study performed in this project.
Create a secure centralised authentication where all the users cannot access data as
per their respective privileges.
To ensure that user data is not abused, all requests for access must be approved by
the account holder.
Access control has two components, authentication and authorization.
Services allow users to sign in to your application. And any application that
requires access to a user's data must be authorized by the user.
The authentication made should be sensitive and it should prevent the intruders
acting on it.
Analyzing the implications of faulty authentication in that area. There are numerous
applications for Android.
1.4DEFINITION
Android is the name of the Linux based operating system that is backed by
Google and the other members of the open handset alliance .because of the androids
opens source nature. Android based smart phones should be cheaper to produce than
those to use operating system such as Microsoft windows mobile that require a
loyalty fee to be paid for such use. T mobile G1 was the first android Os smart phone
to be officially introduced to themarket
always easy to tell if a phone is running the Android operating system. If you are unsure
what operating system a phone uses, you can often find the system information by
selecting "About" in the Settings menu.
1.5 ABBREVATIONS
PKI Public key infrastructure
PIN Personal identification number
SIM Subscriber identity module
QoS Quality of Service
OTP One time password
MITM Man in themiddle
ID
Identity
Confidentiality, Integrity and
CIA
availability
1.6TECHNOLOGIES TO BE USED
Android
Java
Sql database
support
for
common
audio,
video
and
still
formats(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
GSM Telephony(hardware dependent)
Bluetooth,EDGE,3G, andWi-Fi(hardwaredependent)
4
image
Application Components
Application components are the essential building blocks of
an Android application. Not all components are actual entry points
for the user and some depend on each other, but each one exists
as its own entity and plays a specificrole-eachone is a unique
building block that helps define your applications overall behavior.
There are four different types of application components. Each type
serves a distinct purpose and has a distinct lifecycle that defines
how the component is created and destroyed.
1.10 OVERVIEW
The SRS includes two sections namely:
Overall Description:
This section will describe major components of the system, interconnections and
external interfaces.
Specific Requirement
2. OVERALL DESCRIPTION
This describes the contents that the available authentications present in the
smarphones and
the type of the authentication given.
2.1 Authentication
Authentication is usually divided into two services, peer entity authentication
and
data origin authentication.
The prover, and the verifier. The prover needs to present proof of the association
between the principal and identity and the verifier is responsible for verifying the
correctness of the proof.
When dealing with authentication systems, there are four essential issues that must
be considered:
Effectiveness, usability, cost and impersonation attacks. As we have discussed
previously in this section it is very difficult to achieve perfect and absolute
security and the same applies to authentication, due to technical and nontechnical
factors.
Impersonation attacks in which a prover attempts to demonstrate a false identity
claim, must be considered.
In general masquerades can be achieved by replaying or relaying valid sequences,
during authentication .
The prover has to provide information to the verifier which usually takes the form
of credentials or items of value to really prove the claim of who the prover is.
The items of value or credential are based on several unique factors that show
something you know, something have, or something you are.
The first authentication factor consists of using a secret which a human subject
mentally possesses, or in the case of a device such as a smartcard a key stored in
secure. This memory could be a password or a key, which is only known by the
prover and the verifier.
The secrets have to be hard to guess to avoid guessing attacks such as dictionary
attacks and this is why people are encouraged to use difficult to guess passwords.
Characteristics of the subject such as voice, fingerprints or iris patterns. subjects
and relates to the biometric.
2.2HOW IT WORKS
Fig:2.1 Flowchart
Pattern Lock: There are nine dots on the screen, each of which can be touched and
dragged one dot at a time to make a password. It provides approximately one
million (= 9P4 + 9P5 + 9P6 + 9P7 + 9P8 + 9!) of key space. Better than Keypad
Lock but not very secure.
Lock Screen: It has about ten million (6^9 = 10077696) key spaces with 9 inputs. It
can also be made larger by increasing the number of repetitive touches. The bigger
the key space, the more difficult is a brute force attack.
3.SPECIFIC REQUIREMENTS
3.1 STRUCTURE
Android is a widely anticipated open source operating system for mobile
Android will ship with a set of core applications including an email client, SMS
program, calendar, maps, browser, contacts and others. All applications are written
using the Java programming language.
SMS box, or applications written by Google and any Android developer. It has
several components.
The Activity Manager manages the life circle of the applications and provides
a common navigation back stack for applications, which are running in different
processes. The Package Manager keeps track of the applications, which are installed
in the device.The Windows Manager is Java programming language abstraction on
the top of lower level services that are provided by the Surface Manager.
10
3.4.1 Activities
An activity represents a single screen with a user interface. Although the
activities work together to form a cohesive user experience in the email application,
each one is independent of the others. As such, a different application can start any
one of these activities.An activity is implemented as a subclass of Activity and you
can learn more about it in the Activities developer guide
3.4.2 Services
A service is a component that runs in the background to performlongrunningoperations or to perform work for remote processes. A service does not
provide a user interface. Another component, such as an activity, can start the service
and let it run or bind to it in order to interact with it.A service is implemented as a
subclass of service and you can learn more about it in the Services developer guide.
development tools (JDT) for Java, Eclipse CDT for C/C++ and Eclipse PDT for
PHP, among others.
11
The initial codebase originated from Visual Age. The Eclipse SDK (which
includes the Java development tools) is meant for Java developers. Users can extend
its abilities by installingplug-inswritten for the Eclipse Platform, such as
development toolkits for other programming languages, and can write and contribute
their ownplug-inmodules.
Released under the terms of the Eclipse Public License, Eclipse SDK is free
and open source software. It was one of the first IDEs to run under GNU Class path
and it runs without issues under Iced Tea.
Android is thehead-to-headcompetitor for iOS (Apple) created by Google
Inc. and Open Handset Alliance. Nowadays its becoming more and more popular
among the mobile app developers because of its simplicity, reliability and ease of
coding.
There are many ways to develop Android applications on your PC. The
easiest way is integrating the ADT (Android Developing Tools) with the Eclipse
IDE.
3.6 Architecture
The Eclipse Platform usesplug-insto provide all functionality within and on
top of the runtime system, in contrast to some other applications, in which
functionality is hard coded. The Eclipse Platform's runtime system is based on
Equinox, an implementation of the OSGi core framework specification.
12
4.TECHNOLOGIES TO BE USED
4.1 Android with Eclipse
It provides the following:
The Android project wizard, which generates all the required project files.
Android-specificresource editors.
The Android SDK and AVD (Android Virtual Devices) Manager.
The Eclipse DDMS perspective for monitoring and debugging Android
applications.
Integration with Android Log Cat logging.
Automated builds and application deployment to Android emulators and
handsets.
Application packaging and code signing tools for release deployment.
Choose File, New, Android Project or click the Android Project reactor icon,
which
looks like a folder (with the letteraand a plus sign :) on the Eclipse toolbar.
Choose a project name. In this case, name the project Droid1.
Choose a location for the project. Because this is a new project
Create New Project in Workspace radio button. Check the Use Default
Location checkbox.
Select a build target for your application. For most applications, you want to
select the
version of Android most appropriate for the devices used by your target audience and
the
needs of your application
Specify an application name. This name is what users will see. In this case,
call the application Droid #1.
Specify a package name, following standard package namespace
conventions for Java. Because all code in this book falls under the
com.androidbook.namespace, use the package name com. androidbook.droid1.
Check the Create Activity check box. This will instruct the wizard to create
a default launch Activity class for the application. Call your activity Droid
Activity.
13
Confirm that the Min SDK Version field is correct. This field will be set to
the API level of the build target. If you want to support older versions of the
Android SDK, you need to change this field.
However, in this case, we can leave it as its default value.
Click the Next button.
The Android project wizard allows you to create a test project in
conjunction with your Android application. For this example, a test project is
unnecessary.
However, you can always add a test project later by clicking the Android
Test Project creator icon, which is to the right of the Android project wizard
icon on the Eclipse toolbar.
Test projects are discussed in detail in Hour 22, Testing Android Applications.
Click the Finish button.
4.3 JAVA
Java is a programming language. The language derives much of its syntax
from C and C++ but has a simpler object model and fewerlow-levelfacilities than
either C or C++.Java applications are typically compiled to byte code(class file) that
can run on any Java Virtual Machine(JVM) regardless of computer architecture.
Java is a programming language and computing platform first released by
Sun Microsystems in 1995.It Is the underlying technology that powers
state_of_the_art programs including utilities, games and business applications. Java
runs on more than 850 million personal computers worldwide, including Mobile and
TV devices.
is
anACID-compliantembeddedrelationaldatabase
management
process that is accessed from the client application, but an integral part of it. SQLite
read operations can be multitasked, though writes can only be performed
sequentially. Thesource codefor SQLite is in thepublic domain.SQLite is a popular
choice for local/client storage onweb browsers.It has manybindingsto programming
languages. It is arguably the most widely deployed database engine, as it is used
today by several widespread browsers, operating systems, and embedded systems,
among others.
4.6 Design
Unlikeclientserverdatabase management systems, the SQLite engine has no
standaloneprocesseswith which the application program communicates. Instead, the
SQLitelibraryislinked inand thus becomes an integral part of the application
program. The library can also be called dynamically. The application program uses
SQLite's functionality through simplefunction calls,which reducelatencyin database
access: function calls within a single process are more efficient thaninterprocesscommunication.SQLite stores the entire database (definitions, tables, indices,
and the data itself) as a singlecross-platformfileon a host machine. It implements this
simple design bylockingthe entire database file during writing.
16
Application layer:
It is the most upper layer in android architecture. All the applications like camera,
Google maps, browser, sms, calendars, contacts are native applications. These
applications works with end user with the help of application framework to operate.
Application framework:
Android applications which are developing, this layer contain needed classes and
services. Developers can reuse and extend the components already present in API. In
this layer, there are managers which enable the application for accessing data. These
are as follows:
Activity manager:
It manages the lifecycle of applications. It enables proper management of all the
activities are controlled by activity manager.
Resource manager:
It provides access to noncoderesources such as graphics etc.
Notification manager:
It enables all applications to display custom alerts in status bar.
Location manager:
It fires alerts when user enters of leaves a specified geographical location.
Package manager:
It is use to retrieve the data about installed packages on device.
Window manager:
It is use to create views and layouts.
Telephony manager:
It is use to handle settings of network connection and all information about services
on device.
Android runtime:
In this section, all the android applications are executed. Android has its own virtual
DVM (Dalvik Virtual Machine), which is used to
android
machine
execute the
application.
With this
DVK, users are able to execute multiple applications at same time.
Libraries:
Android has its own libraries, which is written in C/C++. These libraries cannot be
accessed directly. With the help of application framework, we can access these
libraries.There are many libraries like web libraries to access web browsers, libraries
for android and video formats etc.
17
Linux kernel:
This layer is core of android architecture. It provides service like power
management, memory. Management, security etc. It helps in software or hardware
binding for better communication.
4.9Deployment Options
Confident KillSwitch is an optional feature that can be used with any of our imagebased authentication solutions. Administrators can determine how many
KillSwitch categories users should establish, how many failed authentication
attempts are allowed, and what action should be taken when the KillSwitch is
triggered.
As acloud-basedtechnology, it can be easily integrated with risk engines, frauddetection platforms and other adaptive security systems to provide those systems
actionable data about the attack as its happening and determine a course of
action. It is available forwhite-labelintegrations by security vendors, application
developers and businesses wanting to incorporateimage-basedauthentication in
their own mobile applications, web services or security offerings.
18
Fig:4.1
Fig:4.2
19
Fig:4.3
LOGIN
Login
Priority
Essential
Trigger
Basic Path
1. The user enters the username and password
and clicks submit.
2. This information is validated and then sent
to
the database for authentication.
3. If authenticated, the user is granted
permission and is logged in.
If the user enters incorrect
Alternate Path
username/password,
an error message is displayed and the user is
requested tore-entercredentials.
If the user forgot password, the user clicks the
Forgot Password button and the password will
be send to the users email address.
20
Postconditio The user is logged in and has access to all
n
the
privileges that have been assigned.
LOGOUT
Use Case NameLogout
Priority
Essential
Trigger
Menu
Selection
21
22
6.REFERENCES
Books
1.Professional Android Application Development,Reto Meier,Wiley
Publishing, 2009
2.Database Design,GioWiederhold,McGraw-Hill,1989
3.Android Application Development,Rick Rogers, John Lombardo,
ZigurdMednieks, andBlake Meike, OReilly Media, 2009
4.Android Cookbook,Ian F. Darwin, OReilly Media, 2010
5.The Busy Coder's Guide to Advanced Android Development,Mark L.
Murphy, Commons Ware, 2009
6.Design and Implementation of Improved Authentication System for Android
Smartphone Users,Kwang Il Shin, J. S. (2012).26th International Conference on
Advanced Information Networking and Applications Workshops.
Websites
1.http://developer.android.com
2.www.androidpeople.com
3.www.codeproject.com
4.http://stackoverflow.com
5.www.mkyong.com
6.www.vogella.com
7.http://android-helper.blogspot.in
8.www.androidhive.info
9.http://en.wikipedia.org