A Project Report Three
A Project Report Three
project Report
On
K. S. Jahnavi 19F41A0540
B. Sai Chaitanya 19F41A0514
A. Dorababu 19F41A0505
A. Reddeppa 19F41A0509
2022-2023
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
KUPPAM ENGINEERING COLLEGE
(Approved by AICTE and Affiliated to JNTUA, Anantaputamu)
Accredited by NAAC & ISO 9001-2008 Certified
KES Nagar, Kuppam-517425, Chittoor District
i
KUPPAM ENGINEERING COLLEGE
(Approved by AICTE and Affiliated to JNTUA, Anantaputamu)
Accredited by NAAC & ISO 9001-2008 Certified
KES Nagar, Kuppam-517425, Chittoor District
Certificate
This is to certify that this project report entitled “Three Level Authentication For Safe
Locker” is carried out by K.S.Jahnavi(19F41A0540), B.Sai Chaithanya(19F41A0514), A.
Dorababu(19F41A0505),A. Reddeppa(19F41A0509) in partial fulfilment of the requirement for the
Awarding of the degree of BACHELOR OF TECHNOLOGY in COMPUTER SCIENCE AND
ENGINEERING during the academic year 2022-2023.
ii
DECLARATION
We hereby declare that the project report entitled “Three Level Password Authentication For Safe Locker”
done by us under the guidance of Mr.S.Gnana Murthi,ME., Assistant Professor, is submitted to partial
Fulfilment of the requirements for the award of Bachelor of Technology in the department of Computer
Science and Engineering . This project has not formed the basis for the award of any degree, associate ship,
fellowship or any other similar titles.
K.S.Jahnavi 19F41A0540
A.Dorababu 19F41A0505
A.Reddeppa 19F41A0509
iii
ACKNOWLEDGMENT
An endeavor of a long period can be successful only with the advice of many well wishers. We take this
opportunity to express my deep gratitude and appreciation to all those who encouraged me for successfully
completion of the Project work.
We special thanks to Mr. K.Logesh , M.Tech ,Ph.D. , Associate Professor ,Head of the department of
Computer Science and Engineering, during the progress of Project work, for his timely suggestions and help
in spite of his busy schedule.
We are thankful to my Guide S.Gnana Murthi, ME, Associate Professor, Department of Computer
Science & Engineering, Kuppam Engineering College, Kuppam, for his valuable guidance and suggestions
in analyzing and testing throughout the period, till the end of Project work.
We would like to express my sincere gratitude to Principal Dr. Sudhakar Babu, ME, Ph.D, for his
valuable support and encouragement during Project work.
We wish to express my sincere thanks to Management of Kuppam Engineering College, Kuppam for
their consistent help and encouragement to complete the Project work.
Finally, we would like to express sincere thanks to Faculty Members of C.S.E Department, and Lab
Technicians, one and all who have helped me to complete the project work successfully.
With Regards
K.S.Jahnavi(19F41A0540)
B.SaiChaitanya(19F41A0514)
A.Dorababu(19F41A0505)
A.Reddeppa(19F41A0509)
iv
ABSTRACT
Authentication process are very common mechanisms to confirm the legitimacy of someone’s or
something’s identity in digital and physical systems.
This project presents a new and robust authentication method based on users’ multiple devices. Due to
the popularity of mobile devices, users are becoming more likely to have more than one device (e.g.,
smartwatch, smartphone, laptop, tablet, smart-car, smart-ring, etc.). The authentication system presented here
takes advantage of these multiple devices to implement authentication mechanisms. In particular, the system
requires the devices to collaborate with each other in order for the authentication to succeed. This new
authentication process is robust against theft-based attacks on single device; an attacker would need to steal
multiple devices in order to compromise the authentication system.
The new authentication system comprises an authenticator and at least three level authentication using different
devices, where the user devices are associated with each other. To perform an authentication on a user device,
the user needs to respond a challenge by using his/her associated device. After describing how this
authentication process works, this project will discuss three different versions of the process that have been
implemented. In the first implementation, the authentication process is performed by using face recognition.
In the second implementation, voice recognition technology is used for challenge transmission. In the last
implementation, the usability with different platforms is exposed based on OTP generation. Furthermore, the
authentication process has been verified by using an automated process-verification to check whether the
process satisfies authenticity and secrecy properties. Finally, these implementations are tested and analysed to
demonstrate the performance variations over different versions of the system.
v
Table Of Contents
DESCRIPTION PAGE NUMBER
CERTIFICATE ii
DECLARATION iii
ACKNOWLEDGEMENTS iv
ABSTRACT v
LIST OF TABLES viii
LIST OF FIGURES ix
1. INTRODUCTION 1
1.1 Background 2
1.1.1 Multi-Factor Authentication
1.2 An Overview of the New Authentication Method 3
1.3 Related Work 4
1.3.1 Authentication using something the user Knows 5
1.3.2 Authentication using something the user Is
1.3.3 Authentication using something the user Has 6
1.3.4 Multi Factor Authentication 7
1.3.5 Challenges-Response Mechanisms
2. LITERATURE REVIEW 8
3. SYSTEM ANALYSIS 16
3.1 Requirement Specification 17
3.1.1 Software Requirements
3.1.2 Hardware Requirements
3.2 Existing System 25
3.3 Proposed System 26
4. SYSTEM DESIGN 28
4.1 Architectural Diagram 29
4.2 E-R Diagram 30
4.3 UML Diagram 31
4.3.1 Class Diagram
4.3.2 Object Diagram 32
4.3.3 Deployment Diagram 33
4.3.4 Use Case Diagram
4.3.5 Sequence Diagram 34
vi
4.3.6 State Machine Diagram 35
4.3.7 Activity Diagram 36
5. TESTING AND RESULTS 37
5.1 Testing 38
5.2 Results 42
5.2.1 Model Checking
5.2.2 Modelling the process 43
5.2.3 Experimental Setup 44
5.3 Implementation 50
5.3.1 Public Key Infrastructure Setup
5.3.2 Registration 51
5.3.3 Authentication Phase
5.4 Project Code 52
5.4.1 Arduino Code
5.4.2 Python Code 57
5.5 Screenshots 64
6. FUTURE WORK AND CONCLUSION 68
6.1 Future Work 69
6.1.1 Add/Remove Devices 69
6.1.2 Continuous Authentication
6.1.3 Future Experiments 70
6.1.4 Future Implementation
6.2 Conclusion 71
7. REFERENCES 72
vii
List Of Tables
TABLE TITLE PAGE NUMBER
5.1 Test devices technical specification 44
5.2 Process implementation test configuration 46
5.3 Experimental results with first configuration 46
5.4 Experimental results with second configuration 47
5.5 Experimental results with test configuration 48
5.6 Experimental results described in test device 49
5.7 Implementation with different system configurations 49
viii
List Of Figures
FIGURE TITLE PAGE NUMBER
3.1 Arduino Nano 18
3.2 Keypad 19
3.3 LCD 20
3.4 Servo Motor 21
3.5 GSM SIM800L 22
4.1.1 Architectural Diagram 29
4.1.2 Authentication using two devices 30
4.2 Block Diagram 31
4.3.1 Class Diagram 32
4.3.2 Object Diagram 32
4.3.3 Deployment Diagram 33
4.3.4 Usecase Diagram 34
4.3.5 Sequence Diagram 35
4.3.6 State Machine Diagram 35
4.3.7 Activity Diagram 36
5.2.2 Authentication time measurement 45
5.3 Implementation of the system design 51
5.5.1 Home page 64
5.5.2 Name module 64
5.5.3 Select user 64
5.5.4 Face recognition 65
5.5.5 Add user 65
5.5.6 Voice recognition 65
ix
Three Level Authentication for Safe Lockers
CHAPTER-1
INTRODUCTION
KEC/B.TECH/CSE/2022-23 1
Three Level Authentication for Safe Lockers
INTRODUCTION
Access control is a crucial component in many digital and physical systems in order to prevent
unauthorized access to sensitive information. Access control policies are designed to ensure appropriate access
to sensitive information and resources (e.g., smartphones, servers, smartwatches, operating systems, web
applications). Hence, authentication methods are the key mechanism to enforce access control policies as well
as protect access to secure systems.
1.1 Background
A wide variety of authentication methods has been developed for access control systems. One of the most
popular techniques is using a username and a password for authentication. Another common approach for
extensive security is authentication with bio-metric identity (e.g.: fingerprint, retina). In addition to these
techniques, multi-factor authentication is also commonly accepted by enterprise organizations.
Multi-factor authentication is another approach for implementing access control methods by using at
least two of three authentication factors. Introducing at least one more factor into the authentication process
increases the difficulty of credential falsification.
In some systems, a fingerprint (something the user is) and a password (something the user knows)
combination is used in order to implement multi-factor authentication. Similarly, using a debit card
(something the user has) and a pin number (something the user knows) is also common way to authenticate
the users into banking systems.
KEC/B.TECH/CSE/2022-23 2
Three Level Authentication for Safe Lockers
However, the great concern with these existing authentication methods is the vulnerability against theft-
based attacks . In each scheme, the attacker could steal the identity information, such as a username and a
password, a bio-metric identity or a token device, and access the users’ sensitive information.
The new authentication method presented in this project is an innovative way to authenticate users by using
users’ multiple devices. This method uses at least two pre-associated (paired) devices to authenticate. The user
devices need to cooperate with each other in order to respond to a challenge and successfully authenticate.
Using associated devices is a robust way to prevent theft-based attacks on authentication process. Theoretical
analysis has been done on the new authentication process in Jean-Baptiste Subils’ project . Additionally, a U.S.
Utility Patent Application regarding the new authentication method was filed April 22, 2015 .
This project argues that the presented authentication process can be easily implemented to solve real-life
authentication problems, and these implementations can have satisfactory performance. Furthermore, the
authentication process can be model checked by a model checker to ensure that it satisfies secrecy and
authenticity properties.
Throughout this project, terms “first device” and “device one” refer to the device that is attempting to
authenticate some system. Terms “second device” and “device two” refer to the device with which the user is
performing a task or a challenge to prove his/her identity. Also, the term “challenge” represents a required task
to complete authentication.
After defining the new authentication method, this project will discuss three different versions of the process
that have been designed and implemented. The main purpose of introducing the different set of
implementations is to demonstrate the new authentication process’s adaptability to different authentication
problems.
In the first implementation, the authentication process is performed by using two smartphones. Also, as a
challenge, a QR code is used. When the first device attempts to access the system, the system sends a QR code
to the device one. Then, the user needs to scan this QR code with his/her second smartphone in order to perform
the challenge. Finally, the authenticator system decides whether or not the authentication is successful.
Moreover, to demonstrate the authentication process with two smartphones and a QR code, an Android
application was developed and installed into the smartphones. Also, a web server application was developed
and deployed to represent the authenticator system.
KEC/B.TECH/CSE/2022-23 3
Three Level Authentication for Safe Lockers
In the second implementation, a different challenge transmission technique usage is demonstrated. Instead of
using a QR code, NFC technology is used for challenge transmission. Similar to the first implementation, two
smartphones, which run the Android application, and a web server application are used.
In the last implementation, the usability with different platforms is exposed. Instead of using smartphones, a
laptop computer and a smartphone combination is used. In this particular implementation, the laptop attempts
to access to sensitive information on some system. To perform an authentication, the authenticator system
sends a QR code to the laptop computer, and the user scans this QR code by using his/her smartphone. Finally,
the authenticator system grants or denies access to the laptop computer. Similarly to previous implementations,
the same Android and web server application was used in the smartphone and the authenticator server.
However, new client application have been designed and implemented for laptop computer.
After introducing particular implementations, the authentication process was verified by using an automated
security process verification tool . To check if the authentication process satisfied the authenticity and the
secrecy properties, a security process verification tool needed to be used. At first, the authentication process
was modeled using a high level process specification language. Then, the process was verified to show the
secrecy and the authenticity properties were not violated.
These implementations were tested and analyzed to demonstrate the performance variations over different
versions of the process. The different implementations compared in terms of execution time, battery usage,
network traffic and memory consumption. The most effective authentication performance was observed while
using two smartphones and NFC technology for challenge transmission. Using the NFC process instead of QR
code images significantly decreased the network traffic and battery usage. However, measured execution time
results were close to each other.
Access control determines who can access system resources . There are two main parts of broad access
control definition, authorization and authentication. Authorization is the process of specifying access rights to
the resources. Further, authentication is the set of procedures that determines whether someone or something
should be allowed access to some system or resources .
Authentication methods are a very common way to confirm the legitimacy of someone’s or something’s
identity in digital and physical systems. The standard three factors in authentication techniques are something
the user knows (e.g., a password), something the user has (e.g., a hardware token device) and something the
user is (e.g., a fingerprint) [1]. In order to achieve an authentication, one of the factors can be used. Also, the
KEC/B.TECH/CSE/2022-23 4
Three Level Authentication for Safe Lockers
factors can be combined to create a multi-factor authentication. This chapter compares and contrasts closely
related common authentication methods with the new authentication process.
One of the most popular approaches is using something the user knows as an authentication factor.
Passwords are an example of authentication methods based on something the user knows. Furthermore, a
username and password authentication scheme is mainly used in online web applications (e.g., online banking
applications, social media platforms, mail clients).
Another approach to implement authentication mechanisms based on something the user know is
asking personal questions from the users, such as “What was the make of your first car,” “What is your first
pet’s name” ?
A major advantage of the traditional username and password scheme is that it is very easy to
implement. A wide variety of password encryption tools exist in order to store passwords in the systems.
Moreover, password authentication is relatively easy to use because users are accustomed to it .
Researchers have been studying the vulnerabilities of the username and password schemes. One of the
common problems with passwords is attackers can guess the password . Users are more likely to choose simple
passwords in order to better remember them in the future.
Spear phishing and social engineering is also another major attack model with passwords. The attacker
can send a fake email and ask for the username and/or password from the user . Also, another survey showed
that more than 70% of people would reveal their passwords for just a candy bar .
Biometric identifiers, e.g., finger prints, voice prints, retina scans, are examples of an authentication
scheme based on something the user is. Before the authentication starts, the authenticator system needs to take
users’ biometric measurements in order to identify them. Then, when users want to access the system, the
authentication mechanism analyzes and verifies users’ identities . In order to identify users, systems can read
fingerprints, scan retinas, scan voices, read signatures.
KEC/B.TECH/CSE/2022-23 5
Three Level Authentication for Safe Lockers
User identity theft is one of the major concerns with “something the user is” based authentication
mechanisms. The attacker could steal the fingerprints of users and authenticate the system. Similarly, the
attacker could also spoof voice samples, retina images or signatures of users .
The replay attack is also another vulnerability in the biometric authentication scheme . The attacker
could steal the fingerprint information from the authenticator device after a successful authentication.
Additionally, uniqueness is another concern for biometric authentication. Two different people could have the
same characteristics of their faces, signatures or voice prints .
Some authentication schemes require a physical object in order to complete authentication. These
physical objects, known as “something the user has,” are factors of the authentication. Physical tokens are one
of the most popular examples of this scheme . RSA securId , Battle.net authenticator , yubico are instances of
implementation of the physical tokens.
Magnetic strip cards are another popular example similar to hardware tokens. Magnetic strip cards
(e.g., id cards, credit cards, smart card) are widely used to authenticate the users into the systems.
Theft-based attacks is one of the major concerns in something the user has based authentication
mechanisms . A physical token device, such as an id card, or a credit card could be stolen by an attacker and
the attacker could easily access systems. In addition, another common attack model on token devices are the
replay attacks , in which, physical token devices or credit cards could be copied by an attacker and used to
gain access to systems.
KEC/B.TECH/CSE/2022-23 6
Three Level Authentication for Safe Lockers
Clock drift, battery and synchronization problems are other examples of physical token issues. In a
certain time period, users need to do maintenance in order to reuse their token devices .
In the single factor authentication schemes, a token device can be stolen or a password can get
compromised. Introducing multiple authentication factors can diminish the attack surface. For example, if an
attacker compromises the hardware token in a two-factor authentication scheme using a password and a
hardware token, the system still remain inaccessible.
Although multi factor authentication schemes have improved the security compared to single factor
authentication schemes, the usability is a major concern . Users may need to carry additional devices (e.g.,
physical token) on them. Moreover, since there are multiple factors involved in authentication, extra steps need
to be performed in order to complete authentication. Users can get tired of performing extra steps and disable
the multi-factor authentication feature from systems.
KEC/B.TECH/CSE/2022-23 7
Three Level Authentication for Safe Lockers
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) is another
example of a challenge-response mechanism that tests whether the user is human or not .
Dictionary attacks are a common attack model on challenge-response mechanisms. If an attacker knows the
challenge and the response, a dictionary attack can be performed to predict one-time passwords. Furthermore,
there are many studies showing that CHAPCHA based mechanisms can get compromised by automated
systems .
KEC/B.TECH/CSE/2022-23 8
Three Level Authentication for Safe Lockers
CHAPTER-2
LITERATURE RIVIEW
KEC/B.TECH/CSE/2022-23 9
Three Level Authentication for Safe Lockers
Literature Review
[1] Umut Uludag and Anil K Jain. Attacks on Biometric Systems: a Case Study in Fingerprints. In
Electronic Imaging 2004, pages 622–633. International Society for Optics and Photonics, 2004.
Disadvantages:
• System failures – scanners are subject to the same technical failures and limitations as all
other electronic identification systems such as power outages, errors and
environmental factors.
• Cost – it is true that fingerprint recognition systems are more cost effective than ever, but for
smaller organisations the cost of implementation and maintenance can still be a barrier to
implementation. This disadvantage is lessening as devices become more cost effective and
affordable.
• Exclusions – while fingerprints remain relatively stable over a person’s lifetime there are
sections of the population that will be excluded from using the system. For example, older
people with a history of manual work may struggle to register worn prints into a system or
people who have suffered the loss of fingers or hands would be excluded.
[2] Steven Furnell. An Assessment of Website Password Practices. Computers & Security, 26(7):445–
451, 2007.
KEC/B.TECH/CSE/2022-23 10
Three Level Authentication for Safe Lockers
Password-based authentication is frequently criticised on the basis of the ways in which the approach
can be compromised by end-users. However, a fundamental point in the defence of many users is that
they may not know any better, and lack appropriate guidance and support when choosing their passwords
and subsequently attempting to manage them. Given that such support could reasonably be expected to
come from the systems upon which the passwords are used, this paper presents an assessment of password
practices on 10 popular websites, examining the extent to which they provide guidance for password
selection, enforce restrictions on password choices, and support easy and effective recovery or reset if
passwords are forgotten. The findings reveal that the situation is extremely variable, with none of the
assessed sites performing ideally across all of the assessed criteria. Better efforts are consequently
required if password practices amongst the general populous are expected to improve.
Disadvantages:
• Passwords can be guessed: while passwords are at risk from brute force attacks and social
engineering, simply guessing is often effective too, when “123456” was the most popular password
of 2020!
• Passwords are hard to remember: the common wisdom is to have a different, unique password
for each account. But this quickly becomes a problem when you have multiple accounts and too
many combinations to remember. Secure online face verification means one password—your
face—that’ll you’ll never forget.
[3] Kim-Phuong L Vu, Robert W Proctor, Abhilasha Bhargav-Spantzel, Bik-Lam Belin Tai, Joshua
Cook, and E Eugene Schultz. Improving Password Security and Memorability to Protect Personal
and Organizational Information. International Journal of Human Computer Studies, 65(8):744–757,
2007.
Personal information and organizational information need to be protected, which requires that only
authorized users gain access to the information. The most commonly used method for authenticating users
who attempt to access such information is through the use of username–password combinations.
However, this is a weak method of authentication because users tend to generate passwords that are easy
to remember but also easy to crack. Proactive password checking, for which passwords must satisfy
certain criteria, is one method for improving the security of user-generated passwords. The present study
evaluated the time and number of attempts needed to generate unique passwords satisfying different
restrictions for multiple accounts, as well as the login time and accuracy for recalling those passwords.
KEC/B.TECH/CSE/2022-23 11
Three Level Authentication for Safe Lockers
Imposing password restrictions alone did not necessarily lead to more secure passwords. However, the
use of a technique for which the first letter of each word of a sentence was used coupled with a
requirement to insert a special character and digit yielded more secure passwords that were more
memorable.
[4] Cagri Cetin, Jay Ligatti, Dmitry Goldgof, and Jean-Baptiste Subils. Systems and Methods for
Authentication Using Multiple Devices, April 22 2015. US Patent App. 14A079PRC.
A system and method of authentication using an authenticator computing device and at least two
registered user devices is described. In operation, the authenticator computing device receives a request
to access a resource from one of a plurality of user devices registered to a user. The authenticator
computing device generates an authentication challenge in response to the request and the authentication
challenge is then transmitted to a subset of the plurality of user devices. One or more of the user devices
then subsequently generates and transmits a response to the authentication challenge to the authenticator
computing device. The authenticator computing device then determines whether the responses received
from the one or more user devices in the subset constitutes a valid response and then grants one or more
of the user devices access to the resource if the responses received from the user devices constitutes a
valid response to the authentication challenge.
Disadvantages:
• Consumer friction. One of the major issues with multi-factor authentication is that it’s an
obstacle for people who want to login to their accounts as quickly and smoothly as possible. This
could cause customers to abandon the process during onboarding or leave the platform in
frustration.
• Bias and Inaccuracy. Poor implementation of authentication technology can lead to false
negatives due to inherent demographic biases in the biometric authentication system. Moreover,
most common biometric methods rely on partial information for identity verification. This can
lead to false rejects and false accepts, preventing some genuine users from accessing the system
and allowing malicious players in.
• Biometrics can be spoofed. Although biometrics are extremely hard to spoof, it is not
impossible. And once compromised, the data cannot be reset. This is a significant drawback as
passwords can be reset and changed.
KEC/B.TECH/CSE/2022-23 12
Three Level Authentication for Safe Lockers
• High implementation cost. To balance a secure system with user convenience, sophisticated
hardware and integrations are required. This makes it costly to implement multi-factor
authentication systems.
[5] Hung-Yu Chien, Jinn-Ke Jan, and Yuh-Min Tseng. An Efficient and Practical Solution to Remote
Authentication: Smart Card. Computers & Security, 21(4):372–375, 2002.
In recent years, a new technology has come into picturefor remote user authentication (RUA) in which
the remote server verifies the legitimacy and authenticity of a user over an insecure communication
channel using biometrics. Because of their computational cost and convenient portability for thepurpose
of authentication, remote user authentication scheme based on smart cards is widely adopted. Mutual
authentication and communication privacy are considered as the essential requirements in today's client-
server architecture. Therefore in this paper, a survey on RUA scheme is done by analyzing and classifying
the existing schemes accordingly. The existing schemes have several security pitfalls and are vulnerable
to many attacks. Thus they fail to serve all the purposes of an ideal RUA scheme. An ideal RUA scheme
should inherit all the security advantages of the existing schemes. In this paper, all possible goals and
attacks are defined that an ideal RUA scheme should achieve and withstand respectively. Thus the main
contribution of the paper is to come up with an ideal RUA scheme while keeping the merits of the well-
known smart card based authentication schemes.
Disadvantages:
KEC/B.TECH/CSE/2022-23 13
Three Level Authentication for Safe Lockers
alternate systems, and including clear visual instructions and documentation assist in a
successful rollout.
[6] Geoff Brown. The Use of Hardware Tokens for Identity Management. Information Security
Technical Report, 9(1):22–25, 2004.
Contrasts smart cards with time- and event-based tokens for identity management. Considers
security requirements of the systems. Draws attention to an issue with the key generation process for the
most popular token on the market. With all security there are trade-offs between the level of security and
the convenience of use. Passwords, hardware tokens, biometrics - all represent the identity of the user in
a coded form. With current technology, hardware tokens are a practical compromise to realise good
security at reasonable cost and ease of use. This note explores some of the more popular tokens on the
market and looks at their suitability for identity management.A white paper from Secure Computing
Corporation will give the reader an excellent overview of the subject – just do not take too much notice
of the frequent mention of their products. This is a fast-moving area and the white paper is now two years
old. We will attempt to cover some of the situations that have changed in that time.
Disadvantages:
• Compromised Secret Key: One of the major cons of relying on tokens is that it relies on just one
key. Yes, JWT uses only one key, which if handled poorly by a developer/administrator, would
lead to severe consequences that can compromise sensitive information.It’s essential for businesses
to seek professional help coupled with robust security mechanisms while planning to add JWT to
their authentication mechanism to ensure the highest level of security.
• Data Overhead: The overall size of a JWT is quite more than that of a normal session token, which
makes it longer whenever more data is added to it. So, if you’re adding more information in the
token, it will impact the overall loading speed and thus hamper user experience.
• Shorter Lifespan: Short-lived JWT are harder for users to work with. These tokens require
frequent reauthorization, which can be annoying at times, especially for the clients.
[7] Guomin Yang, Duncan S Wong, Huaxiong Wang, and Xiaotie Deng. Two-factor Mutual
Authentication Based on Smart Cards and Passwords. Journal of Computer and System Sciences,
74(7):1160–1172, 2008.
KEC/B.TECH/CSE/2022-23 14
Three Level Authentication for Safe Lockers
One of the most commonly used two-factor user authentication mechanisms nowadays is based on
smart-card and password. A scheme of this type is called a smart-card-based password authentication
scheme. The core feature of such a scheme is to enforce twofactor authentication in the sense that the
client must have the smart-card and know the password in order to gain access to the server. In this paper,
we scrutinize the security requirements of this kind of schemes, and propose a new scheme and a generic
construction framework for smart-card-based password authentication. We show that a secure password
based key exchange protocol can be efficiently transformed to a smartcard-based password authentication
scheme provided that there exist pseudorandom functions and target collision resistant hash functions.
Our construction appears to be the first one with provable security. In addition, we show that two recently
proposed schemes of this kind are insecure.
Disadvantages:
• Factors can get lost: There is no certainty that your authentication factors will be available when
you need them. Typically, you are locked out of your account after one mistake is made.
• False Security: Two-factor authentication provides a level of security, but it’s typically exaggerated.
For example, if you were locked out of a service because you lost a factor, you’re basically in the
same predicament as a hacker attempting to gain access to your account. If you can reset your
account without an access factor, then a hacker can, too.
KEC/B.TECH/CSE/2022-23 15
Three Level Authentication for Safe Lockers
CHAPTER-3
SYSTEM ANALYSIS
KEC/B.TECH/CSE/2022-23 16
Three Level Authentication for Safe Lockers
System Analysis
For the development of this project both hardware and software were required. The hard required is any
machine compatible for running the software and resources required.
● Anaconda Navigator: Anaconda Navigator enables you to run specific Python programs without
using command-line commands and quickly manage conda packages, environments, and channels.
Moreover, both Anaconda Cloud and a local Anaconda Repository are searchable by Navigator.
● Arduino IDE: The Arduino IDE is an open-source software, which is used to write and upload
code to the Arduino boards. The IDE application is suitable for different operating systems such as
Windows, Mac OS X, and Linux. It supports the programming languages C and C++.
• ARDUINO NANO
NANO Version 3 is the open source smallest Embedded Development board based on Atmega328
SMD Package Microcontroller. It is a Surface mount Breadboard Friendly board integrated with Mini
USB Port. DC Power Jack is not available on this Board, so power can be given through Mini USB
Cable. It automatically sense and switch to the higher potential source of power, there is no need for
the power select jumper.
Specifications:-
KEC/B.TECH/CSE/2022-23 17
Three Level Authentication for Safe Lockers
• KEYPAD
4×3 Matrix Membrane Keypad is high-quality soft touch feeling button keypad with 100 million life-
stroke lifespans and good resistance to environmental conditions. It is a high-quality product at very
low cost for your application needs.
This 12-button keypad provides a useful human interface component for microcontroller projects.
Convenient adhesive backing provides a simple way to mount the keypad in a variety of applications.
KEC/B.TECH/CSE/2022-23 18
Three Level Authentication for Safe Lockers
The Keypad 4×3 features a total of 12 buttons in Matrix form. This is a membrane keypad with no
moving parts. A female 7-pin berg connector is require for interfacing it with your microcontroller
circuits.
• Ultra-thin design & adhesive backing provides easy integration to any project
• Excellent price-performance ratio
• Easy communication with any microcontroller
• Sticker can peel off for adhesive mounting.
• Used widely in industrial and home electronic equipments, instrument, etc.
• This allows a microcontroller to ‘scan’ the 7 output pins to see which of the 12 buttons is
being pressed
3.2 Keypad
KEC/B.TECH/CSE/2022-23 19
Three Level Authentication for Safe Lockers
• LCD
This is a basic 16 character by 2 line Alphanumeric display. White text on Blue background.
Utilizes the extremely common HD44780 parallel interface chipset . Interface code is freely available.
You will need Minimum 6 general I/O pins to interface to this LCD screen. Includes LED backlight.
Works in 4bit and 8 bit Mode.
Features:
• 16 Characters x 2 Lines
• Blue Backlight
• 5x7 Dot Matrix Character + Cursor
• HD44780 Equivalent LCD Controller/driver Built-In
• 4-bit or 8-bit MPU Interface
• Standard Type
• Works with almost any Microcontroller
3.3 LCD
KEC/B.TECH/CSE/2022-23 20
Three Level Authentication for Safe Lockers
• SERVO MOTOR
A servo motor is a type of motor that can rotate with great precision. Normally this type of
motor consists of a control circuit that provides feedback on the current position of the motor shaft,
this feedback allows the servo motors to rotate with great precision. If you want to rotate an object at
some specific angles or distance, then you use a servo motor. It is just made up of a simple motor which
runs through a servo mechanism. If motor is powered by a DC power supply then it is called DC servo
motor, and if it is AC-powered motor then it is called AC servo motor. For this tutorial, we will be
discussing only about the DC servo motor working. Apart from these major classifications, there are
many other types of servo motors based on the type of gear arrangement and operating characteristics.
A servo motor usually comes with a gear arrangement that allows us to get a very high torque servo
motor in small and lightweight packages. Due to these features, they are being used in many
applications like toy car, RC helicopters and planes, Robotics, etc.
Servo motors are rated in kg/cm (kilogram per centimeter) most hobby servo motors are rated
at 3kg/cm or 6kg/cm or 12kg/cm. This kg/cm tells you how much weight your servo motor can lift at
a particular distance. For example: A 6kg/cm Servo motor should be able to lift 6kg if the load is
suspended 1cm away from the motors shaft, the greater the distance the lesser the weight carrying
capacity. The position of a servo motor is decided by electrical pulse and its circuitry is placed beside
the motor.
KEC/B.TECH/CSE/2022-23 21
Three Level Authentication for Safe Lockers
• GSM SIM800L
Whether you want to monitor your home from afar or activate the sprinkler system in your
garden with a missed call; then the SIM800L GSM/GPRS module can serve as a solid launching
point.The SIM800L GSM/GPRS module is a miniature GSM modem that can be used in a variety of
IoT projects. You can use this module to do almost anything a normal cell phone can do, such as
sending SMS messages, making phone calls, connecting to the Internet via GPRS, and much more.
To top it all off, the module supports quad-band GSM/GPRS networks, which means it will work
almost anywhere in the world.
Hardware Overview
At the heart of the module is a SIM800L GSM cellular chip from Simcom.
The operating voltage of the chip ranges from 3.4V to 4.4V, making it an ideal candidate for direct
LiPo battery supply. This makes it an excellent choice for embedding in projects with limited space.
All the necessary data pins of the SIM800L GSM chip are broken out to a 0.1″ pitch headers, including
the pins required for communication with the microcontroller over the UART. The module supports
baud rates ranging from 1200 bps to 115200 bps and features automatic baud rate detection.
The module requires an external antenna in order to connect to the network. So the module usually
comes with a helical antenna that can be soldered to it. The board also has a U.FL connector If you
wish to keep the antenna at a distance from the board.
KEC/B.TECH/CSE/2022-23 22
Three Level Authentication for Safe Lockers
There’s a SIM socket on the back! Any 2G Micro SIM card will work perfectly. The proper way to
insert the SIM card is typically engraved on the surface of the SIM socket.
Features
Even though this module is incredibly small only 1 square inch it contains a surprising number of features.
Some of them are as follows:
The SIM800L module has an LED that indicates the status of your cellular network. It will blink at
different rates depending on the state it is in.
Blink every 1s
The chip is running but hasn’t made a connection to the cellular network yet.
KEC/B.TECH/CSE/2022-23 23
Three Level Authentication for Safe Lockers
Blink every 2s
Blink every 3s
The module has made contact with the cellular network and can send/receive voice and SMS.
KEC/B.TECH/CSE/2022-23 24
Three Level Authentication for Safe Lockers
In existing system most users are using password authentication. This authentication system validates
user for accessing the system only when they have input correct password. Passwords have been used
throughout history to verify someone's identity by checking if they possess the knowledge required (i.e., a
password) to access something. passwords were stored in a database as plain text. When you wanted to sign-
in, a gatekeeper application would ask you for your password. It would take whatever you typed in and check
if it was equal to whatever it had stored in the database and if true, you were granted access.
Disadvantages :
• Easy passwords can be cracked: The end users behaviour such as choosing passwords that are easy
to remember introduces the majority of the password weaknesses. For a hacker, these passwords can
easily be cracked or guessed. Surveys show that frequent passwords are the word password, personal
names of family members, names of pets, and dictionary words.
• Random passwords cant be remembered: A random password should not have a content, context,
and should not be familiar. It can only be learned by using it over and over again. However, since
repetition is a weak way of remembering, users often completely ignore the recommendations for
pseudo-random passwords.
• Remembering Multiple Passwords: The more passwords a person has to remember, the chances for
remembering any specific password decreases. Having multiple passwords also increases the chance
of interference among similar passwords. This is especially true for systems that are not used
frequently.
• Problems with passwords that needs to be continuously changed: Computer systems require
frequent password changes, to make the system robust from various attacks. Users must think of new
passwords that conform to all of the organizations requirements but that are also easy to remember.
System-enforced password policies, however, cannot guarantee password secrecy.
KEC/B.TECH/CSE/2022-23 25
Three Level Authentication for Safe Lockers
In this project, we proposed a smart locker, which is mainly based on IOT. We mainly introduce a smart
locker with face detection and voice recognition approach. After completion of face and voice recognition an
OTP is sent to the registered user mobile number, the lock will open only when the OTP is entered correctly.
If the user did not enter correct details then the lock would not open.
First the user has to register him/her with the locker. We introduce a face detection approach. Here we
have a face detector to detect the face of the user. The image of the registered user will be stored in the server
through the registration process of the user. If the face exists, then an unlock request of the locker will send.
Then the system will count the number of faces. If the count is 1 then the system will go to the next step. Then
it proceeds to next step that is voice recognition. If voice recognition is successful then an OTP is sent to
registered user mobile number. The user will enter the unlock OTP. Server will verify the OTP. If the OTP that
is send to the user and the OTP that is stored in the server is matched, then the locker will be unlocked. If any
mismatch is happened, then the system will capture an image of the intruder and send it to the server. The face
count approach will help to reduce the chance of any kind of inconvenience to occur by any unauthorized user.
This approach will ensure the security and authenticity of the locker.
This proposed Smart locker system has been implemented by using the combination of some hardware
and software. In this proposed system Atmega328 microcontroller based Arduino Nano board has been used
for decision-making purpose. For locking and unlocking function 4*4 keypad has been used. The mobiles
connected with Internet to send data into the server. The keypad is used to send OTP to the server through
microcontroller. Here, a LCD (Liquid Crystal Display) is used to identify the sent OTP on the mail and given
OTP to the controller is correct. The matrix 4*4 keypad functions according to matrix. This keypad has four
columns and four rows. Every row is set to zero logic and every column is set to one. If one button is pressed,
then the row will be connected to column and change the previous column’s status into low. By scanning the
column by sending one to rows, the exact column value can be identified.
KEC/B.TECH/CSE/2022-23 26
Three Level Authentication for Safe Lockers
Advantages:
• It’s More Secure: While passwords are still widely used to screen out unauthorized users, they are
insecure and impractical. Phishing attacks are getting increasingly sophisticated, making it easy for
hackers to obtain your login credentials. They can also be either guessed, tracked with keylogging
surveillance, or cracked through brute force attack.
• It’s User Friendly: Most identity verification technologies come with a learning curve. However,
facial recognition simply requires a person to stand in front of a camera or screen to be scanned. No
need for downtime to learn how to use it.
• It’s Convenient: Even if you have robust password policies such as using password generator
software, changing them regularly, and requiring two-factor authentication if a person loses access to
their generator or forgets their password, they have to go through a process of recovery, then coming
up with a different (previously unused) password.
KEC/B.TECH/CSE/2022-23 27
Three Level Authentication for Safe Lockers
CHAPTER-4
SYSTEM DESIGN
KEC/B.TECH/CSE/2022-23 28
Three Level Authentication for Safe Lockers
System Design
This chapter introduces the system design of the new authentication process. Unlike the traditional
authentication techniques (e.g., username and password, bio-metric identity, RSA securId), this new
authentication method requires at least two associated (paired) devices to complete the authentication process.
This new authentication method is a one-factor authentication mechanism. Furthermore, this technique uses
at least two user devices as the “what the user has” factor of authentication. Instead of using additional devices
(e.g., hardware token, id-card), using user devices is a cost-effective solution to implement this authentication
process. Therefore, the authentication process implementations are easy to deploy into systems.
The association of multiple devices with a user is an innovative way to prevent device theft. All user devices
need to be granted a private key or create their own private key, during the registration phase. In this regard,
all of the associated devices need to participate in the authentication process. For example, if two smartphones
are associated with a particular user and one of them is stolen, the attacker needs the private key of the other
device to authenticate the stolen device.
The public key infrastructure (PKI) has been used to ensure confidentiality and integrity of shared information
during the authentication process . The device pairing process is an essential part to sharing public keys of the
devices. The device pairing process should be done in registration phase and the registration should be
performed before the authentication starts.
KEC/B.TECH/CSE/2022-23 29
Three Level Authentication for Safe Lockers
During the current investigation and analysis of the process, the following assumptions have been made:
• The public key infrastructure is sound and robust against network-based attacks (e.g.: man in the middle,
eavesdropping, masquerading).
• The device registration process was completed properly and the devices were paired with each other and
the user.
Figure 3.1 provides an overview of the authentication process with two devices. In the first step, the
authentication process starts with an access request from the first device. Then in the second step, the
authenticator server generates an authentication challenge and sends it to the first device. In the third step, the
first device transmits the challenge to the second device. In the fourth step, the second device generates a
response and sends this response to the authenticator server. Finally, in the fifth step, if the received
authentication challenge is valid, the server sends a successful access acknowledgment to the access requesting
device.
KEC/B.TECH/CSE/2022-23 30
Three Level Authentication for Safe Lockers
Unified Modeling Language (UML) is a general purpose modelling language. The main aim of UML is to
define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used
in other fields of engineering.UML is not a programming language, it is rather a visual language. We use
UML diagrams to portray the behavior and structure of a system.
There are different types of UML diagrams :
The most widely use UML diagram is the class diagram. It is the building block of all object oriented
software systems. We use class diagrams to depict the static structure of a system by showing system’s
classes,their methods and attributes. Class diagrams also help us identify relationship between different
classes or objects.
KEC/B.TECH/CSE/2022-23 31
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 32
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 33
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 34
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 35
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 36
Three Level Authentication for Safe Lockers
CHAPTER-5
TESTING AND RESULTS
KEC/B.TECH/CSE/2022-23 37
Three Level Authentication for Safe Lockers
5.1 Testing
• Alpha Testing
Alpha testing is conducted in the organization and tested by a representative group of end-users at the
developer's side and sometimes by an independent team of testers. Alpha testing is simulated or real
operational testing at an in-house site. It comes after the unit testing, integration testing, etc. Alpha
testing used after all the testing are executed. It can be a white box, or Black-box testing depends on
the requirements - particular lab environment and simulation of the actual environment required for
this testing.
1. Requirement Review: Review the design of the specification and functional requirement
2. Test Development: Test development is base on the outcome of the requirement review. Develop
the test cases and test plan.
3. Test case design: Execute the test plan and test cases.
4. Logging Defects: Logging the identified and detected bug found in the application.
5. Bug Fixation: When all the bugs are identified and logged, then there is a need to fix the bug.
6. Retesting: When all the issues are solved, and fixed retesting is done.
• Beta Testing
Beta testing is performed by real users of the software application in a real environment. Beta
testing is one of the types of User Acceptance Testing. A Beta version of the software, whose
feedback is needed, is released to a limited number of end-users of the product to obtain feedback
on the product quality. Beta testing helps in minimization of product failure risks and it provides
increased quality of the product through customer validation. It is the last test before shipping a
product to the customers. One of the major advantages of beta testing is direct feedback from
customers.
KEC/B.TECH/CSE/2022-23 38
Three Level Authentication for Safe Lockers
1. Beta Testing is performed by clients or users who are not employees of the company.
2. Reliability, security, and robustness are checked during beta testing.
3. Beta Testing commonly uses black-box testing.
4. Beta testing is carried out in the user’s location.
5. Beta testing doesn’t require a lab or testing environment.
1. Traditional Beta testing: Product is distributed to the target market and related data is
gathered in all aspects. This data can be used for Product improvement.
2. Public Beta Testing: Product is released publicly to the world through online channels and
data can be collected from anyone. Based on feedback, product improvements can be done. For
example, Microsoft conducted the largest of all Beta Tests for its operating system Windows 8
before officially releasing it.
3. Technical Beta Testing: Product is released to a group of employees of an organization and
collects feedback/data from the employees of the organization.
4. Focused Beta Testing: Software product is released to the market for collecting feedback on
specific features of the program. For example, important functionality of the software.
5. Post-release Beta Testing: Software product is released to the market and data is collected to
make improvements for the future release of the product.
KEC/B.TECH/CSE/2022-23 39
Three Level Authentication for Safe Lockers
White box testing is also known as structural testing or code-based testing, and it is used to
test the software’s internal logic, flow, and structure. The tester creates test cases to examine the
code paths and logic flows to ensure that they meet the specified requirements.
• Unit testing − Unit testing is frequently the first type of application testing performed. As each
unit or block of code is developed, it is subjected to unit testing. The programmer is primarily
responsible for unit testing. As a software developer, you write a few lines of code, a single
function, or an object, then test it to ensure it works before moving on to the next step. Early in
the software development lifecycle, unit testing helps in the detection of the majority of issues.
Bugs discovered at this stage are less expensive and easier to fix.
• Testing for Memory Leaks − Memory leaks are one of the most common reasons for slow-
running apps. When you have a slow-running software application, you need a QA professional
who is skilled in detecting memory leaks. Apart from the aforementioned, both black box and
white box testing include a few forms of testing. Below is a list of them.
• White Box Penetration Testing − In this type of testing, the tester/developer has access to the
entire source code of the program, as well as extensive network information, IP addresses
involved, and all server information. The goal is to attack the code from several aspects in order
to expose security flaws.
• White Box Mutation Testing − White box mutation testing is frequently used to determine the
optimum coding strategies for growing a software solution.
• Black box
This testing is a type of software testing in which the functionality of the software is not known.
The testing is done without the internal knowledge of the products.
KEC/B.TECH/CSE/2022-23 40
Three Level Authentication for Safe Lockers
1. Syntax-Driven Testing –
This type of testing is applied to systems that can be syntactically represented by some language. For
example- compilers, language that can be represented by context-free grammar. In this, the test cases
are generated so that each grammar rule is used at least once.
2. Equivalence partitioning –
It is often seen that many types of inputs work similarly so instead of giving all of them separately
we can group them and test only one input of each group. The idea is to partition the input domain
of the system into several equivalence classes such that each member of the class works similarly,
i.e., if a test case in one class results in some error, other members of the class would also result in
the same error.
• Integration Testing
Integration testing is the technique in which individual components or modules are grouped
together and tested. It occurs after testing. The input for the integrated testing, are the modules that
have already been unit tested.
KEC/B.TECH/CSE/2022-23 41
Three Level Authentication for Safe Lockers
• System Testing
System testing is conducted on the entire system as a whole to check whether the system meets
its requirements or not. ‘Valar Morghulis’ was installed on different systems and any errors or bugs that
occurred were fixed.
• Acceptance Testing
User Acceptance is defined as a type of testing performed by the Client to certify the system
with respect to the requirements that was agreed upon. This testing happens in the final phase of
testing before moving the software application to the Market or Production environment.
5.2. Results
In this chapter, the new authentication process design presented will be examined, and the implementations
presented will be tested in detail. First, the authentication process was validated by using an automated
validation tool for Internet security process. Then, the implementations were tested by using different devices
and platforms to determine their performance.
In this section, the authentication process is modelled and verified. To verify that the authentication process
guarantees authenticity and secrecy of the communication between devices and the authenticator server, a
model checker must be used. Thus, AVISPA model checker was used to check authenticity and secrecy
properties. Automated Validation of Internet Security Process and Applications (AVISPA) is an automated
model checker for large scaled security process. The AVISPA automation tool supports four verification
backend tools :
KEC/B.TECH/CSE/2022-23 42
Three Level Authentication for Safe Lockers
CL-AtSe and SATMC backend platforms are used to verify the bounded number of sessions and process
falsification. OFMC backend is useful for detecting guessing and replay attacks . TA4SP backend provides
unbounded security process verification by using tree-based languages .
security process .
The authentication process was modelled by using HLPSL in Alice and Bob notation as shown in Figure 5.2.1.
The server represents the system that authenticates the devices.
Alice represents the first device and Bob represents the second device of the authentication process. Ka, Kb,
Ks are the public keys of the first device, the second device, and the server respectively. The inverse function
(inv) retrieves the private keys of the public keys.
There are two security goals exist in the AVISPA. To verify if the devices are being authenticated, the following
goals were specified:
KEC/B.TECH/CSE/2022-23 43
Three Level Authentication for Safe Lockers
Furthermore, to verify if the authentication communication was kept secret, the following goal was specified:
The implementations of the authentication process use two devices and a web server application.
During the experiments, three different Android smartphones and two different laptop computers were used.
Table 5.1 shows the technical specifications of the devices, which are used during the experiments. One device
is a Samsung Galaxy S3 I9300, which has a
Quad-core 1.4 GHz processor, 1GB RAM, 16GB storage, a 2100mAh lithium ion battery, a
8MP camera and Android 4.4.4 operating system. The second mobile device is a LG Nexus
KEC/B.TECH/CSE/2022-23 44
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 45
Three Level Authentication for Safe Lockers
For each process implementation, the same tests were performed. For each test, 20 iterations of the
authentication procedure were executed to measure the average authentication time, memory usage, network
consumption, and battery drain on each device. Authentication time was measured by summing up two
different timer functions not including human interaction time. The first timer starts at time T1 and ends at
time T3 as shown in Figure 5.1. Then the second timer starts at time T4 and ends at time T6. As a result,
execution time calculated as shown below:
The memory usage was measured by Android DDMS (Dalvik Debug Monitor Server) [49]. The sampling
frequency of the allocated memory on the heap was set to 10 seconds. The network consumption was measured
by the network traffic tool provided by Android DDMS. To measure battery consumption, a third-party tool
was used. During the experiments, mobile devices and computers never went to sleep. Target programs were
compiled with Eclipse Luna using required frameworks. The web server application implementation has a
total of 2184 lines of code (not including empty lines). The desktop application has a total of 1339 lines of
code (not including empty lines) and the Android mobile application has a total of 2467 lines of code without
empty lines.
KEC/B.TECH/CSE/2022-23 46
Three Level Authentication for Safe Lockers
5.2.3.1 Test: Device One: a Smartphone, Device Two: a Smartphone, Challenge Transmission by QR Code
The authentication process implementation presented in Subsection 4.4.1 was tested. Two Android
smartphones were used to represent the first and second devices. In this implementation, two sets of tests were
performed. First, the experiments were performed with a Samsung Galaxy S3 as the first device and an LG
Nexus 4 as the second device.
Then, the second experiments were performed with an LG Nexus 4 as the first device and a Samsung Galaxy
S3 as the second device.
Table 5.3 shows the test results with a Samsung Galaxy S3 as the first device and an LG Nexus 4 as the second
device. Similarly, Table 5.4 shows the results with an LG Nexus 4 as the first device and a Samsung Galaxy
S3 as the second device. Average execution time for one complete authentication is 0.0754 seconds with the
first configuration. To demonstrate the efficiency of the system, the time performance was measured with a
different set of Table 5.4.
Table 5.4 Experimental results with the second configuration described in Subsection 5.2.3.1
KEC/B.TECH/CSE/2022-23 47
Three Level Authentication for Safe Lockers
smartphones, in which the first device was upgraded to a device with better resources (e.g., faster CPU, bigger
memory) as shown in Table 5.4. As a result, execution time was not
The network usage for the first device is approximately 10 times higher than the second device on each test.
Indeed, the server exchanges more data with the first device. There are three network communications between
the server and the first device and one of them contains an image. Between the server and the second device,
there is only one network communication, and this communication does not contain large data (e.g., an image).
The LG Nexus 4 consumes more memory than the Samsung Galaxy S3 in each test. Memory allocation is
managed by the Android operating system . Since the LG Nexus 4 has larger memory, the memory allocation
on runtime is larger for the LG Nexus 4 regardless of its role (e.g., the first or second device) in the
authentication system.
Since both smartphones are using the same battery, it is expected that they will have close battery consumption
results during the authentication process. The slight difference comes from the screen contrast setup of each
phone. Furthermore, the network consumption causes a slight difference between the first and second device
on the battery consumption. Since the first device uses more network, it also consumes more battery. To better
understand the battery drain, average battery consumption of the Android message application was measured
while sending a message. To send a message, this application consumes 7.4j energy with the Samsung Galaxy
S3.
The authentication process implementation presented in Subsection 4.4.2 was tested. Similar to the previous
implementation, this implementation also contains two Android smartphones to represent the first and second
devices. Furthermore, NFC technology was used to transmit the challenge. One set of tests was performed to
KEC/B.TECH/CSE/2022-23 48
Three Level Authentication for Safe Lockers
measure the performance differences while transmitting the challenge with NFC technology. The experiment
was performed with a Samsung Galaxy S3 as the first device and an LG Nexus 6 as the second
device.
Table 5.5 shows the experimental results for the specific implementation presented in Subsection 4.4.2. The
average execution time for one authentication process is 0.0689 seconds. Since only one device is being
authenticated during the authentication process, the same execution time was measured for both devices.
The network usage for the first device is approximately 30% greater than the second device. Sending a random
number instead of a QR code image for challenge transmission results closer network usage numbers for both
devices. Because the first device makes more network communications than the second device during the
authentication process, the battery usage is slightly higher in the first device.
5.2.2.3 Test: Device One: a Laptop Computer, Device Two: a Smartphone, Challenge Transmission by QR
Code
The last experiment was performed on the implementation presented in Subsection 4.4.3.Instead of using two
Android devices, a Windows laptop computer and an Android smart
KEC/B.TECH/CSE/2022-23 49
Three Level Authentication for Safe Lockers
Table 5.6 presents the test results for the specific implementation presented in Subsection 4.4.3. Similar to the
previous tests, the execution time measured the same for the first and second device. QR code image dominates
the network usage on the first device. On the other hand, since the smartphone only sends a random number,
not the QR code, the network usage on the second device is noticeably lower than the first device.
The first device uses 80 MB and the second device uses 22 MB of memory space. Memory allocation is
entirely managed by the Windows and Android operating systems for the laptop computer and the smartphone
respectively. Hence, the monitored memory space is not related to application size.
5.3 Implementation
The asymmetric encryption was implemented for all communication steps in the authentication process. To
implement asymmetric encryption, RSA encryption algorithm was used in Java [40]. During the registration
process, the server shares its public key with the device. Then, the device creates its own public and private
key pair and sends the public key to the server. In every communication step, the server encrypts the data with
devices’ public key. Also, the devices decrypt the data with their private key as shown in Figure 5.3. For
example, in the second step in Figure 4.3, the server generates a random number and sends it to the first device.
The server encrypts this message with the first device’s public key. After the first device receives this encrypted
data, it decrypts by using its private key.
In order to prove the authenticity of the data in the system communication, a digital signature scheme was
used. In every communication step, the data are signed with the devices’ private key as shown Figure 5.3.
First, the server creates a hash function by using
KEC/B.TECH/CSE/2022-23 50
Three Level Authentication for Safe Lockers
SHA-1 hashing algorithm. SHA-1 is a cryptographic hash function . Then, in the second step, the server
encrypts the hash function with its own private key by using RSA encryption algorithm, which creates the
signature. Finally, the signature and the data are merged by the server and sent to the device as digitally signed
data. After the device receives the signed data, it needs to verify it. First, the signature is decrypted with the
server’s public key by using the same algorithm; then the device creates another hash code from the data.
Finally, if the two hash codes match with each other, the authenticity of the data is ensured.5.3.2 Registration
Phase
One particular registration process was implemented in order to perform the authentication process. In this
section, the registration phase implementation is explained in detail.
In this section, a different set of implementations of the authentication process will be presented. All these
implementations were embodied from the authentication process. Although these implementations were
designed with a different set of system configurations, they use the same shared modules.
KEC/B.TECH/CSE/2022-23 51
Three Level Authentication for Safe Lockers
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <SoftwareSerial.h>
#include<Servo.h>
Servo myServo;
#define Password_Length 4
int pos=0;
bool Pass_is_good;
char customKey;
String values,Data;
bool flag=false;
int Count=0;
char hexaKeys[ROWS][COLS] = {
};
void GSM_setup()
lcd.clear();
lcd.setCursor(0,0);
KEC/B.TECH/CSE/2022-23 52
Three Level Authentication for Safe Lockers
lcd.setCursor(0,1);
lcd.print("Your Phone");
delay(2000);
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
//Serial.begin(9600);
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
updateSerial();
updateSerial();
mySerial.println("AT+CMGS=\"+919381279848\"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
updateSerial();
updateSerial();
mySerial.write(26);
lcd.clear();
lcd.setCursor(0,0);
void updateSerial()
delay(500);
while (Serial.available())
while(mySerial.available())
KEC/B.TECH/CSE/2022-23 53
Three Level Authentication for Safe Lockers
void setup(){
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(5,0);
lcd.setCursor(0,1);
lcd.print("Authentication");
myServo.attach(9);
myServo.write(0);
void loop()
while(Serial.available()>0)
values=Serial.readString();
lcd.clear();
lcd.setCursor(0,1);
lcd.print("OTP is Ready..!");
delay(1000);
GSM_setup();
flag=true;
Again:
if(flag==true)
do
//lcd.clear();
//lcd.setCursor(0,0);
KEC/B.TECH/CSE/2022-23 54
Three Level Authentication for Safe Lockers
customKey = customKeypad.getKey();
if (customKey)
Data += customKey;
lcd.setCursor(0,1);
lcd.print(Data);
data_count++;
if(data_count==4){
data_count=0;
break;
}while(1);
if(values == Data){
lcd.clear();
lcd.setCursor(0,1);
//Serial.println("Hello");
lcd.print("Door is Opened");
//digitalWrite(Relay, HIGH);
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myServo.write(pos);
//lcd.print(pos);
delay(3000);
//digitalWrite(Relay, LOW);
lcd.clear();
lcd.print("Door is Closed");
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myServo.write(pos);
KEC/B.TECH/CSE/2022-23 55
Three Level Authentication for Safe Lockers
Data="";
flag=false;
else
lcd.clear();
lcd.setCursor(0,0);
lcd.print("InCorrect OTP");
Data="";
Count=Count+1;
if (Count<3)
lcd.setCursor(0,1);
delay(2000);
lcd.clear();
goto Again;
else
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Max Chances");
lcd.setCursor(0,1);
lcd.print("Completed..!!");
flag=false;
}}
KEC/B.TECH/CSE/2022-23 56
Three Level Authentication for Safe Lockers
import tkinter as tk
import speech_recognition as sr
import serial
import time
import math
import random
r = sr.Recognizer()
digit="0123456789"
OTP =""
names = set()
class MainUI(tk.Tk):
global names
x = f.read()
z = x.rstrip().split(" ")
for i in z:
names.add(i)
self.title("Face Recognizer")
self.resizable(False, False)
self.geometry("500x250")
self.protocol("WM_DELETE_WINDOW", self.on_closing)
self.active_name = None
container = tk.Frame(self)
container.grid(sticky="nsew")
KEC/B.TECH/CSE/2022-23 57
Three Level Authentication for Safe Lockers
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
page_name = F.__name__
self.frames[page_name] = frame
self.show_frame("StartPage")
frame = self.frames[page_name]
frame.tkraise()
#self.controller.show_frame("PageFive")
def on_closing(self):
global names
f = open("nameslist.txt", "a+")
for i in names:
f.write(i+" ")
self.destroy()
class StartPage(tk.Frame):
tk.Frame.__init__(self, parent)
self.controller = controller
#load = Image.open("homepagepic.png")
render = PhotoImage(file='homepagepic.png')
img.image = render
label.grid(row=0, sticky="ew")
KEC/B.TECH/CSE/2022-23 58
Three Level Authentication for Safe Lockers
def on_closing(self):
global names
for i in names:
self.controller.destroy()
class PageOne(tk.Frame):
tk.Frame.__init__(self, parent)
self.controller = controller
tk.Label(self, text="Enter the name", fg="#263942", font='Helvetica 12 bold').grid(row=0, column=0, pady=10, padx=5)
def start_training(self):
global names
if self.user_name.get() == "None":
return
return
elif len(self.user_name.get()) == 0:
KEC/B.TECH/CSE/2022-23 59
Three Level Authentication for Safe Lockers
return
name = self.user_name.get()
names.add(name)
self.controller.active_name = name
self.controller.frames["PageTwo"].refresh_names()
self.controller.show_frame("PageThree")
class PageTwo(tk.Frame):
tk.Frame.__init__(self, parent)
global names
self.controller = controller
self.menuvar = tk.StringVar(self)
self.dropdown.config(bg="lightgrey")
self.dropdown["menu"].config(bg="lightgrey")
def nextfoo(self):
if self.menuvar.get() == "None":
return
self.controller.active_name = self.menuvar.get()
self.controller.show_frame("PageFour")
def refresh_names(self):
global names
self.menuvar.set('')
self.dropdown['menu'].delete(0, 'end')
KEC/B.TECH/CSE/2022-23 60
Three Level Authentication for Safe Lockers
class PageThree(tk.Frame):
tk.Frame.__init__(self, parent)
self.controller = controller
def capimg(self):
x = start_capture(self.controller.active_name)
self.controller.num_of_images = x
def trainmodel(self):
return
train_classifer(self.controller.active_name)
self.controller.show_frame("PageFour")
class PageFour(tk.Frame):
tk.Frame.__init__(self, parent)
self.controller = controller
label.grid(row=0,column=0, sticky="ew")
KEC/B.TECH/CSE/2022-23 61
Three Level Authentication for Safe Lockers
def openwebcam(self):
status = main_app(self.controller.active_name)
#print(status)
#print(pred)
if(status==True):
print("hello")
#def gender_age_pred(self):
# ageAndgender()
#def emot(self):
# emotion()
def openSpeech(self):
print("Speak:")
audio = r.listen(source)
try:
Speech =r.recognize_google(audio)
print("hello")
KEC/B.TECH/CSE/2022-23 62
Three Level Authentication for Safe Lockers
else:
self.controller.show_frame("PageFour")
except sr.UnknownValueError:
except sr.RequestError as e:
def GenerateOTP(self):
global OTP
for i in range(4):
OTP=OTP+digit[math.floor(random. random()*10)]
otp=OTP
time.sleep(2)
while True:
var = str(input())
print(type(var))
var=var.upper()
if(var == 'Y'):
print("Anil")
arduino.write(str.encode(otp))
app = MainUI()
app.iconphoto(False, tk.PhotoImage(file='icon.ico'))
app.mainloop()
KEC/B.TECH/CSE/2022-23 63
Three Level Authentication for Safe Lockers
5.5. Screenshots
The image 5.5.1 is home page where user can register newly if not existing user or the user can check his
details here if he/she is an existing user.
The image 5.5.2 is generated when user click on add an user option from 5.4.1. figure. Here the user can
enter his/her name to register.
5.5.3.select user
KEC/B.TECH/CSE/2022-23 64
Three Level Authentication for Safe Lockers
The 5.5.3 image generated when user selects check user from 5.4.1 figure. Here the user can select his/her
name to proceed with further authentication process.
The 5.5.4 image generated when an user selects his/her name from 5.4.3 figure.Here system proceeds with
first stage of authentication for safe locker.
KEC/B.TECH/CSE/2022-23 65
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 66
Three Level Authentication for Safe Lockers
KEC/B.TECH/CSE/2022-23 67
Three Level Authentication for Safe Lockers
CHAPTER-6
FUTURE WORK AND
CONCLUSION
KEC/B.TECH/CSE/2022-23 68
Three Level Authentication for Safe Lockers
In this chapter, several extensions will be addressed and future opportunities will bediscussed.
Although many authentication schemes are being introduced, most of them are vulnerable to theft-based
attacks. The new authentication process using two associated devices has been proposed to minimize attack
surface over theft-based attacks. Several real-life examples of the authentication process were designed and
implemented by using multiple sets of devices. Then, the authentication process was modeled with a high level
process specification language and verified by a model checker in order to indicate the soundness of its secrecy
and authenticity properties. Finally, the performance overhead of the process was evaluated to demonstrate the
performance differences between multiple implementations.
A particular registration method was implemented and used in all configurations to pair devices with each
other and the user. This registration phase can be done only once. To increase usability, it would be a very
useful feature to allow users to add or remove additional devices into the system after the first device pairing
process.
Continuous authentication is an emerging topic in the security field. The main concern in standard user
authentication schemes (e.g., username/password) is that after a certain amount of time the user can become
inactive. However, asking for authentication within a period of time could be used to track activity of the user.
In the proposed authentication process, if the system successfully authenticates the user, then that
authentication remains active until the defined session time. However, an attacker can steal the authenticated
device before the authentication session expires and get access to the system. To solve this problem, a
continuous authentication approach could be integrated into the proposed implementations. The system could
send a challenge to the first device every few minutes, and the user could perform this challenge with the
second device in order to keep authenticated.
KEC/B.TECH/CSE/2022-23 69
Three Level Authentication for Safe Lockers
Various experiments have been performed on the proposed implementation to demonstrate the performance
overhead of the authentication system. During the experiments, the user interaction time was not considered.
Using human participants and measuring their challenge performing times could be a good way to evaluate
real authentication time with user interaction. Furthermore, similar experiments could be performed on other
authentication schemes (e.g., username and password, physical token, two-factor authentication) to illustrate
the performance advantages and disadvantages over different schemes.
three particular implementations were presented. These authentication process implementations introduce
solutions to distinct authentication problems. However, it would be useful to demonstrate more
implementations to solve real life authentication problems.
Table 6.1 shows further possible implementations to solve common authentication problems in daily life.
One general problem with cars is if the car key is stolen, an attacker also can steal the car itself. However,
adopting the proposed authentication process could solve
Table 6.1. Further implementation ideas
Authenticator System First device Second device Challenge transmission
method
Car Smartwatch Smartphone NFC
Home door Smartphone Smartwatch QR code
Hotel door Smartring Smartwatch NFC
Garage door Car Smartphone Bluetooth
GPS navigator Car Smartphone Bluetooth
Military facility Smart necklace Smartwatch Bluetooth
Server Laptop Smartwatch Image
the problem without extra overhead cost. For example, the car can represent the authenticator system. When
the user gets close to the car, the car sends a challenge to the smartwatch, then the user taps the smartphone to
perform the challenge. Finally, the smartphone sends the challenge back to the car and the car unlocks the
doors and/or starts the car.
KEC/B.TECH/CSE/2022-23 70
Three Level Authentication for Safe Lockers
Another common problem is garage door or facility gate access. In this particular problem, the garage door
represents the authenticator system and the user’s car and smartphone act as the first and second devices. When
the car gets close to the garage door, the garage door sends a challenge to the car. Then, the smartphone reads
this challenge via bluetooth, and sends it back to the garage door. Finally, the garage authenticates the car and
opens the door.
Alternatively, this authentication process can be implemented with any other lock system. The lock can act as
the authenticator system and the user’s multiple devices (e.g., a smart ring and a smart military necklace, a
smart “dog tag”) can act as the first and second devices. When the user comes within a threshold proximity of
the lock, the smart ring will initiate the authentication process with the lock. Then, the lock sends a challenge
to the smart ring. The smart ring sends the challenge to the smart dog tag. In this particular implementation,
the process executes automatically, without user involvement, based on proximity to the lock.
Furthermore, more than two devices could be implemented during the authentication process. Two devices
might not be enough for theft protection, especially when authenticating users to more sensitive information,
such as, military source, intelligence agency source, etc. In this particular solution, a military base could house
an authenticator system, and a user could use a smartphone, a smartwatch and a smart ring all together in order
to complete authentication.
6.2. Conclusion
The authentication process implementations’ performances were analyzed in terms of execution time, network
usage, memory usage, and battery consumption in the previoussubsections.
The greatest performance differences were caused by the challenge transmission methodology. Instead of using
a QR code, sending only a random number as a challenge dramatically increased the performance of the
execution time and the network usage. Sound waves, infrared technology, or motion detection can also be used
as alternatives to a QR code in order to improve the performance of the authentication process.
In addition, the different device hardware specifications did not significantly effect the network usage.
However, the execution time performance slightly increased while using higher performance devices during
the authentication process. Moreover, the variety of the devices showed that the proposed authentication
process can be implemented by using even slower devices.
Finally, none of the configurations significantly effected the battery life of the devices during the authentication
process.
KEC/B.TECH/CSE/2022-23 71
Three Level Authentication for Safe Lockers
CHAPTER-7
REFERENCES
KEC/B.TECH/CSE/2022-23 72
Three Level Authentication for Safe Lockers
List of References
[1] Matt Bishop. Computer Security: Art and Science, volume 200. Addison-Wesley, 2012.
[2] Mark Stamp. Information Security: Principles and Practice. John Wiley & Sons, 2011.
[3] Anil K Jain, Patrick Flynn, and Arun A Ross. Handbook of Biometrics. Springer Science & Business
Media, 2007.
[4] Lawrence O’Gorman. Comparing Passwords, Tokens, and Biometrics for User Authentication.
Proceedings of the IEEE, 91(12):2021–2040, 2003.
[5] Jean-Baptiste Subils. Authentication Via Multiple Associated Devices. Master’s project, University of
South Florida, 2015. To appear.
[6] Cagri Cetin, Jay Ligatti, Dmitry Goldgof, and Jean-Baptiste Subils. Systems and Methods for
Authentication Using Multiple Devices, April 22 2015. US Patent App. 14A079PRC.
[7] Messaoud Benantar. Access Control Systems: Security, Identity Management and Trust Models.
Springer Science & Business Media, 2006.
[8] Steven Furnell. An Assessment of Website Password Practices. Computers & Security, 26(7):445–451,
2007.
[9] Kim-Phuong L Vu, Robert W Proctor, Abhilasha Bhargav-Spantzel, Bik-Lam Belin Tai, Joshua Cook,
and E Eugene Schultz. Improving Password Security and Memorability to Protect Personal and
Organizational Information. International Journal of HumanComputer Studies, 65(8):744–757, 2007.
[10] Robert Morris and Ken Thompson. Password Security: A Case History. Communications of the ACM,
22(11):594–597, 1979.
[11] David L Jobusch and Arthur E Oldehoeft. A Survey of Password Mechanisms: Weaknesses and
Potential Improvements. part 1. Computers & Security, 8(7):587–604, 1989.
[12] David L Jobusch and Arthur E Oldehoeft. A Survey of Password Mechanisms: Weaknesses and
Potential Improvements. part 2. Computers & Security, 8(8):675–689, 1989.
[15] Umut Uludag and Anil K Jain. Attacks on Biometric Systems: a Case Study in Fingerprints. In
Electronic Imaging 2004, pages 622–633. International Society for Optics and Photonics, 2004.
[16] Anil K Jain, Lin Hong, Sharath Pankanti, and Ruud Bolle. An Identity-Authentication System Using
Fingerprints. Proceedings of the IEEE, 85(9):1365–1388, 1997.
[17] Ravikanth Pappu, Ben Recht, Jason Taylor, and Neil Gershenfeld. Physical One-way Functions.
Science, 297(5589):2026–2030, 2002.
KEC/B.TECH/CSE/2022-23 73
Three Level Authentication for Safe Lockers
[18] EMC Corporation. RSA SecurID Hardware Tokens | Two-Factor Authentication, 2015.
http://www.emc.com/security/rsa-securid/rsa-securid-hardware-tokens.htm.
[21] Amos Fiat and Adi Shamir. How to Prove Yourself: Practical Solutions to Identification and Signature
Problems. In Advances in Cryptology—CRYPTO’86, pages 186–194. Springer, 1987.
[22] Manik Lal Das, Ashutosh Saxena, and Ved P Gulati. A Dynamic ID-based Remote User Authentication
Scheme. Consumer Electronics, IEEE Transactions on, 50(2):629–631, 2004.
[23] Hung-Yu Chien, Jinn-Ke Jan, and Yuh-Min Tseng. An Efficient and Practical Solution to Remote
Authentication: Smart Card. Computers & Security, 21(4):372–375, 2002.
[24] Dwayne Mercredi, Joseph Robinson, and Joachim Vance. Token Authentication System, October 17
2005. US Patent App. 11/252,040.
[25] Yen Sung-Ming and Liao Kuo-Hong. Shared Authentication Token Secure Against Replay and Weak
Key Attacks. Information Processing Letters, 62(2):77–80, 1997.
[26] Geoff Brown. The Use of Hardware Tokens for Identity Management. Information Security Technical
Report, 9(1):22–25, 2004.
[27] Guomin Yang, Duncan S Wong, Huaxiong Wang, and Xiaotie Deng. Two-factor Mutual Authentication
Based on Smart Cards and Passwords. Journal of Computer and System Sciences, 74(7):1160–1172,
2008.
[28] Fadi Aloul, Syed Zahidi, and Wassim El-Hajj. Two Factor Authentication Using Mobile Phones. In
Computer Systems and Applications, 2009. AICCSA 2009. IEEE/ACS International Conference on,
pages 641–644. IEEE, 2009.
[29] Luis Von Ahn, Manuel Blum, Nicholas J Hopper, and John Langford. CAPTCHA: Using Hard AI
Problems for Security. In Advances in Cryptology—EUROCRYPT 2003, pages 294–311. Springer,
2003.
[30] Jeff Yan. Bot, Cyborg and Automated Turing Test. In Security Process, pages 190– 197. Springer, 2009.
[31] Philippe Golle. Machine Learning Attacks Against the Asirra CAPTCHA. In Proceedings of the 15th
ACM conference on Computer and communications security, pages 535–542. ACM, 2008.
[32] Elie Bursztein, Matthieu Martin, and John Mitchell. Text-based CAPTCHA Strengths and Weaknesses.
In Proceedings of the 18th ACM conference on Computer and communications security, pages 125–
138. ACM, 2011.
[33] Carlisle Adams and Steve Lloyd. Understanding Public-key Infrastructure: Concepts, Standards, and
Deployment Considerations. Sams Publishing, 1999.
[34] Mark Masse. REST API Design Rulebook. ” O’Reilly Media, Inc.”, 2011.
KEC/B.TECH/CSE/2022-23 74
Three Level Authentication for Safe Lockers
[37] Alan Paller Dennis Kirby Bob Martin, Mason Brown. Improper Neutralization of Special Elements
used in an SQL Command (’SQL Injection’), 2011. http://cwe.mitre.org/top25/CWE-89.
[38] The Apache Software Foundation. Apache Maven Project, 2015. https://maven.apache.org/.
[40] Rich Helton and Johennie Helton. Java Security Solutions. John Wiley & Sons, Inc., 2002.
[41] D. Eastlake, 3rd and P. Jones. US Secure Hash Algorithm 1 (SHA1), 2001.
[44] Gerald Madlmayr, Josef Langer, Christian Kantner, and Josef Scharinger. NFC Devices: Security and Privacy.
In Availability, Reliability and Security, 2008. ARES 08. Third International Conference on, pages 642–647. IEEE,
2008.
[45] Google. Near Field Communication | Android Developers.
https://developer.android.com/guide/topics/connectivity/nfc/index.html.
[46] The AVISPA Project, funded by the European Union in the Future and Emerging Technologies (FET Open)
programme, Project Number: IST-2001-39252., 2003. http://www.avispa-project.org/.
[47] Luca Vigan`o. Automated Security Process Analysis with the AVISPA Tool. Electronic Notes in Theoretical
Computer Science 155 (2006) 61–86, pages 64–66, 2006.
[48] David Basin Carlos Caleiro, Luca Vigan`o. Deconstructing Alice and Bob. Electronic Notes in Theoretical
Computer Science 135 (2005) 3–22, pages 19–20, 2005.
[50] Patrick Dubroy. Memory Management for Android Apps. Google I/O Development Conference, https://www.
youtube.com/watch?v=CruQY 55HOk,2011.
KEC/B.TECH/CSE/2022-23 75