Fyp Full
Fyp Full
BELAGAVI
Project Report on
“AUTOFILL APPLICATION”
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE AND ENGINEERING
Submitted By
ABHINAV RAJ 1BY20CS005
ASSISTANT PROFESSOR
Department of CSE,
BMSIT&M
2023-2024
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
BELAGAVI
BMS INSTITUTE OF TECHNOLOGY AND MANAGEMENT
YELAHANKA, BENGALURU – 560064
CERTIFICATE
External VIVA-VOCE
1.
2.
ACKNOWLEDGEMENT
We are pleased to present this project report upon its successful completion. This project
would not have been possible without the guidance, assistance, and suggestions of many
individuals. We would like to express our deep sense of gratitude to each and every person who
has contributed to making this project a success.
First and foremost, we extend our heartfelt thanks to Dr. Sanjay H. A, Principal, BMS
Institute of Technology & Management, for his constant encouragement and inspiration in
undertaking this project.
We are grateful to our project guide, Mrs. Druga Devi G Y, Assistant Professor,
Department of Computer Science and Engineering, for her invaluable encouragement and
guidance throughout the project.
We extend our heartfelt thanks to our project coordinators, Dr. Vidya R Pai and
Dr. Arunakumari B. N, Assistant Professor, Department of Computer Science and
Engineering, for their constant support and valuable advice during the project.
Special thanks are due to all the staff members of the Computer Science and
Engineering Department for their help and cooperation.
Finally, we would like to express our gratitude to our parents and friends for their
unwavering encouragement and support throughout the duration of this project.
By,
Abhinav Raj
Aryan Agrawal
Ayush Raj
Himanshu Sharma
I
DECLARATION
II
ABSTRACT
III
TABLE OF CONTENTS
Acknowledgement……………………………………………………………...…..… I
Declaration………………………………………………………………………….…II
Abstract…………………………………………………………………………….…III
Contents………………………………………………………………………………IV
List of Figures………………………………………………………………………..VI
List of Tables………………………………………………………………………...VIII
Chapter 1: Introduction………………………………………………………………………1
1.1 Background………………………………………………………………………1
1.3 Motivation……………………………………………………………………….4
1.6 Scope…………………………………………………………………………….5
1.7 Challenges……………………………………………………………………….6
Chapter 2: Overview……………………………………………………………………….....7
Chapter 5: Implementation………………………………………………………………….20
5.2 Algorithms……………………………………………………………………...22
5.4 Code…………………………………………………………………….............26
Chapter 6: Testing…………………………………………………………………………....33
7.2 Login……………………………………………………………………………40
7.3 Registration……………………………………………………………………..40
7.8 Model….……………………………………………………………………….45
Chapter 8: Conclusion…………………………………………………………………….....47
References…………………………………………………………..……………………….49
V
LIST OF FIGURES
VII
LIST OF TABLES
VIII
CHAPTER 1
INTRODUCTION
CHAPTER 1
INTRODUCTION
1.1. Background
In the paper titled "The Emperor’s New Autofill Framework: A Security Analysis
of Autofill on iOS and Android" (2021), a comprehensive examination of autofill
functionalities on both iOS and Android platforms is conducted. This analysis sheds
light on potential vulnerabilities and security risks inherent in autofill systems,
offering valuable insights for enhancing user data protection. However, it's essential
to note that while the paper provides critical findings, it may not encompass all
emerging security threats or future updates to autofill systems. Therefore, continuous
analysis and updates are imperative to maintain the efficacy of security measures in
safeguarding user information.
1.3. Motivation
The increasing reliance on mobile devices for storing and managing sensitive
information necessitates the development of advanced security measures. Traditional
methods of data protection on mobile platforms are often insufficient to counter the
sophisticated threats posed by modern cyber attacks. The motivation behind this
project is to leverage the robust security features of blockchain technology to create
an Android autofill app that ensures the highest level of data protection and user
privacy. By integrating blockchain, we aim to provide a decentralized storage
solution that significantly reduces the risk of data breaches and unauthorized access.
This approach not only enhances the security of sensitive information but also builds
user trust in mobile applications handling critical data. The ultimate goal is to offer a
secure, reliable, and user-friendly solution that addresses the growing concerns over
data privacy and protection in the digital age.
1.6. Scope
The scope of this project aims to develop an Android Autofill application that
optimizes user experience while ensuring robust data protection and privacy. Key
objectives include creating an intuitive interface with machine learning to
streamline form filling, implementing secure data storage using blockchain with
strong encryption and smart contracts, and adhering to Object-Oriented
Programming (OOP) principles for a modular, scalable codebase. The project seeks
to balance user convenience with stringent data protection throughout the
application's lifecycle.
1.7. Challenges
Some of the key challenges encountered during the implementation of our project are
listed below:
[1] Seamless Blockchain Integration: Ensuring smooth integration of blockchain
technology into the Android autofill app while maintaining mobile compatibility.
[2] Data Security and Privacy: Balancing robust data protection with user privacy,
employing advanced encryption methods and adhering to regulations.
[3] User Experience Optimization: Designing intuitive interfaces and efficient autofill
functionalities without compromising security.
OVERVIEW
The project embarked on the development journey with the creation of an intermediate
blockchain prototype, crafted in Java to encapsulate fundamental blockchain principles
such as block creation, transaction management, and basic consensus mechanisms.
Leveraging the robust ecosystem of the Android platform, it was decided to build the
application as an Android app, with the backend infrastructure hosted on Firebase, a
scalable platform offered by Google. This decision facilitated seamless integration
between the Java-based blockchain backend and the Android frontend, ensuring a user-
friendly interface for interacting with blockchain functionalities.
REQUIREMENT SPECIFICATION
• Software Requirements: This lists the required software components needed for
developing and running the autofill app. It includes the Android operating system,
the blockchain platform for secure data storage, backend programming language,
development environment, database management system, security measures,
machine learning libraries, and Continuous Integration/Continuous Deployment
(CI/CD) tools. These software components provide the necessary framework and
tools for building and deploying the app.
• Storage & Connectivity: This section specifies the storage and network
requirements for the app. It includes minimum storage requirements for the
Android device and the server hosting the blockchain ledger. Additionally, stable
internet connectivity is necessary for blockchain transactions to ensure data
integrity and security.
[2] Efficient Form Filling: Here, the user requirements related to form filling
efficiency are outlined. It includes the need for predictive form field
population to streamline the form filling process and improve user
efficiency.
[3] Data Privacy and Security: This section details the user requirements
related to data privacy and security. It includes the need for assurance of
data security and privacy, ensuring that sensitive information stored in the
app remains protected from unauthorized access or disclosure.
Android Device:
Minimum 2 GB RAM: Sufficient memory for smooth app operation.
Quad-core processor or higher: Ensures efficient processing power for running the
app.
Display resolution of 720x1280 pixels or better: Provides a clear and visually
pleasing interface for users.
Storage:
Android Device: Minimum 16 GB internal storage: Provides ample space for
storing app data and user information.
Server: Depending on data volume, 100 GB or more: Ensures sufficient storage
capacity for storing the blockchain ledger and associated data.
Network Connectivity:
Stable internet connection for blockchain transactions: Reliable internet
connectivity is required for communicating with the blockchain network and
validating transactions.
[5] Database Management: Database management system for storing app data
and managing user information.
DETAILED DESIGN
The use cases and actors in use-case diagrams describe what the system does and how
the actors use it, but not how the system operates internally. Use-case diagrams
illustrate and define the context and requirements of either an entire system or the
important parts of the system. The use case diagram in context of our project is
depicted below:
5.1.1. Java
Java, a robust and versatile programming language, has solidified its
position as one of the most popular languages in the software development
landscape. Its extensive adoption is attributed to a multitude of factors that
contribute to its efficiency, scalability, and reliability.
At the core of Java's design philosophy lies its strong emphasis on object-
oriented programming (OOP) principles. Java provides support for
encapsulation, inheritance, and polymorphism, enabling developers to
build modular and reusable code. This promotes code organization,
enhances maintainability, and fosters scalability, making Java suitable for
projects of varying sizes and complexities.
Scalability is another area where Java excels. Its support for multi-
threading and concurrency enables developers to build applications that
can efficiently utilize system resources and handle concurrent tasks. By
leveraging Java's threading model and concurrency utilities, developers
can create high-performance applications that can scale to meet the
demands of growing user bases and workloads.
5.2. Algorithm
5.2.1. SHA Algorithm
The SHA (Secure Hash Algorithm) is a family of cryptographic hash
functions designed to produce a fixed-size output (hash value) from an input
of arbitrary size. These hash functions are widely used in various security
applications, including digital signatures, message authentication codes
(MACs), and password hashing.
There are several versions of the SHA algorithm, each with different hash
lengths and security properties. Some of the most commonly used versions
include:
1. SHA-1: Developed by the National Security Agency (NSA), SHA-1
produces a 160-bit hash value. However, it is now considered insecure
due to vulnerabilities that have been discovered, making it susceptible
to collision attacks.
Blockchain Driver
The Blockchain Driver module orchestrates the encryption process utilizing the SHA-256
algorithm, a widely recognized cryptographic hashing function. Through Java's inline
functionalities, it efficiently generates complex hexadecimal representations of data,
which are subsequently converted into hash codes. This driver forms the backbone of data
AI Handler
The API Handler, a critical component implemented using Postman, acts as the
intermediary between disparate system components and external services. Leveraging
RESTful API endpoints, it facilitates seamless communication for data retrieval,
submission, and interaction with external platforms such as the Blockchain Driver and
Firebase console. This module ensures efficient data exchange and integration across the
application ecosystem, enhancing system scalability and flexibility.
Service Module
The Service Module, while currently serving primarily for resource management, holds
significant potential for future expansion and enhanced functionality within the
application architecture. Its stateful nature enables efficient management of system
resources and lays the groundwork for incorporating advanced features and services in
subsequent iterations of the application. As the project evolves, this module will play a
pivotal role in driving innovation and enhancing overall system performance.
5.4. Code
5.4.1. SHA-256 Helper
The provided Java code defines a SHA256Helper class with a static method
generateHash that generates a SHA-256 hash for a given input string. The
method obtains an instance of the SHA-256 MessageDigest, converts the
input string to a byte array, and computes the hash. The resulting byte array
is then converted to a hexadecimal string, which is returned as the hash value.
If an exception occurs, it is caught and rethrown as a RuntimeException.
5.4.4. Constants
The provided Java code defines a Constants class that holds constant values
used in the blockchain application. The DIFFICULTY constant sets the
mining difficulty by specifying the number of leading zeros required in a
valid block hash, set to 1 in this case. The MINER_REWARD constant
specifies the reward amount for mining a block, set to 10. The
GENESIS_PREV_HASH constant represents the previous hash for the
genesis block, which is a string of 64 zeros since it is the first block and has
no predecessor.
TESTING
• System testing includes compatibility testing to verify that the system operates
seamlessly across different platforms, devices, browsers, and configurations,
ensuring a consistent user experience across various environments.
Data Entry Main Page User should be able to add new data
entries.
Data Retrieval Cloud Data should be retrieved from the cloud
without errors.
Encryption and Security Sensitive data should be encrypted and
Decryption decrypted securely.
Machine Machine Machine learning algorithms should
Learning Learning enhance form filling and data
Algorithms extraction.
EXPERIMENTAL RESULTS
7.2. Login
The login page of our Android application provides users with a straightforward
interface to access their accounts securely. It features fields for entering an email
address and password, ensuring that users can authenticate their identities
seamlessly.
Upon inputting their credentials, users can validate their login information by
clicking the LOGIN button. Robust validation mechanisms verify the accuracy of
the email address and password, ensuring the integrity of user authentication.
With a simple and efficient design, our login page offers users a reliable gateway
to access their accounts with confidence.
This enhances data accuracy and minimizes errors during input. By incorporating
regex validation, users can confidently input their information, knowing that it
meets the required criteria. This streamlined approach to data entry enhances user
experience and reinforces data integrity within the application.
Fig 7.8: View Autofill Form Fig 7.9 Edit Autofill Form
CONCLUSION
In conclusion, this project showcases the successful integration of object-oriented
programming (OOP) principles with cutting-edge blockchain technology to develop a
secure and efficient autofill service. By encapsulating complex cryptographic operations
and emphasizing data integrity within the blockchain structure, the system ensures robust
data protection. The Autofill Service module further enhances user convenience and
security by securely managing autofill entries, prioritizing user privacy while
maintaining code reusability and modularity. This project not only demonstrates the
practical application of OOP principles but also highlights the importance of user-centric
design and data security in modern software systems.
FUTURE ENHANCEMENT
Future enhancements for our system include a strategic trajectory aimed at augmenting
functionality, fortifying security measures, and optimizing operational efficiency.
Principal among these initiatives is the integration of the Autofill Framework, poised to
streamline data input procedures, thereby enhancing user experience while fortifying
data security protocols. Concurrently, the project charts a course toward local blockchain
structure generation, fostering system decentralization and resilience by minimizing
reliance on external servers and fostering robust transaction validation mechanisms.
[4] The Emperor’s New Autofill Framework: A Security Analysis of Autofill on iOS and
Android, 2021.
[5] Decentralized File Transfer System Blockchain-based File Transfer Anusree K, Jagan
Sathiaseelan Vadekkat, Abhinu R Dev, Abhinav Department of Computer Science &
Engineering Sahrdaya College of Engineering and Technology, Thrissur, Kerala, 2022.
[6] Blockchain-Based Address Alias System April 2021Journal of theoretical and applied
electronic commerce research 16(5):1280-1296.
[12] "Recent Trends in Blockchain and Its Applications," MDPI, 2024. [Online].
Available: https://www.mdpi.com. [Accessed: 28-May-2024].
[14] "South Korea Revolutionizes Job Applications with Blockchain Digital Badge,"
Coinspeaker, Apr. 5, 2024. [Online]. Available: https://www.coinspeaker.com/south-
korea-blockchain-job-applications. [Accessed: May 28, 2024].
[16] "Top Blockchain Applications and Use Cases in 2023," G2 Learning Hub, 2023.
[Online]. Available: https://learn.g2.com/blockchain-applications. [Accessed: May 28,
2024].
[17] "46 Blockchain Companies to Know in 2024," Built In, 2024. [Online]. Available:
https://builtin.com/blockchain-companies. [Accessed: May 28, 2024].