Password Typer Using Arduino
Password Typer Using Arduino
Password Typer Using Arduino
BONAFIDE CERTIFICATE
Certified that this project report PASSWORD TYPER FOR SECURE LOGIN
SIGNATURE SIGNATURE
This project report submitted for the Autonomous Project Viva-voce examination
held on____________
Page | 1
TABLE OF CONTENTS
ABSTRACT 4
1. INTRODUCTION
Page | 2
4. APPLICATION 21
5. CONCLUSION 23
6. REFERENCE 24
Page | 3
ABSTRACT :
Page | 4
1. INTRODUCTION
This allows you to store a very secure password, and never have a need to
remember it.
Alternatively, you could store all of your passwords on this device and
use it as a quick reference that safely stores your critical information
offline and off your computer. Completely unavailable to hackers and
other less than reputable individuals..
Page | 5
1.2 DESCRIPTION OF THE BLOCK DIAGRAM
THE
PERSONAL
COMPUTER
ATMEGA 328
MICROCONTROLLER
UNIT
PUSH BUTTON
PASSWORD TYPER:
Page | 6
1.3 CIRCUIT DIAGRAM
Page | 7
1.4 EXPLAINATION OF CIRCUITS
This circuit does not have much explainations as the circuit is much
simple and complex less in understanding as you can see the schematics
present above which I have made.
This circuit actually makes sense of our basic micro controller logic that
is the push button actuation the pin d4 (ie., the digital i/o pin in the micro
controller) doesnt have any signals during normal state after it gets
programmed except the password string.
The password string is not present in the pin d4 actually but at the register
which belongs to the digital i/o pin d4.
When the connections are given as per the circuit diagram normally the
digital i/o pin d4 gets the power signal of five volts and the pin is naturally
at high state.
Whenever the push button gets actuated the digital i/o pin d4 will reach
the state low from the state high , as per the logic which has been
programmed the microcontroller now types the password when is receives
the low signal.
And as the result of the logic programmed the password is typed , the
password string is programmed in the microcontroller with the help of the
compiler.
Page | 8
2. DESCRIPTION OF THE HARDWARE COMPONENTS
2.Arduino (NANO)
3.Push button
5.Usb cable
6. Dot board
7. Female headers
Page | 9
2.2 COMPONENTS DESCRIPTION
Memory:
The ATmega328 has 32 KB, (also with 2 KB used for the bootloader. The
ATmega328 has 2 KB of SRAM and 1 KB of EEPROM.
Page | 10
Input and Output:
Each of the 14 digital pins on the Nano can be used as an input or output,
using pinMode(), digitalWrite(), and digitalRead() functions. They
operate at 5 volts. Each pin can provide or receive a maximum of 40 mA
and has an internal pull-up resistor (disconnected by default) of 20-50
kOhms. In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL
serial data. These pins are connected to the corresponding pins of the
FTDI USB-to-TTL Serial chip.
External Interrupts: 2 and 3. These pins can be configured to trigger an
interrupt on a low value, a rising or falling edge, or a change in value. See
the attachInterrupt() function for details.
PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the
analogWrite() function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI
communication, which, although provided by the underlying hardware, is
not currently included in the Arduino language.
LED: 13. There is a built-in LED connected to digital pin 13. When the
pin is HIGH value, the LED is on, when the pin is LOW, it's off.
The Nano has 8 analog inputs, each of which provide 10 bits of resolution
(i.e. 1024 different values). By default they measure from ground to 5
volts, though is it possible to change the upper end of their range using
the analogReference() function. Analog pins 6 and 7 cannot be used as
digital pins. Additionally, some pins have specialized functionality:
Page | 11
There are a couple of other pins on the board:
Communication:
Programming:
Rather then requiring a physical press of the reset button before an upload,
the Arduino Nano is designed in a way that allows it to be reset by
software running on a connected computer. One of the hardware flow
control lines (DTR) of the FT232RL is connected to the reset line of the
ATmega328 via a 100 nanofarad capacitor. When this line is asserted
(taken low), the reset line drops long enough to reset the chip. The
Arduino software uses this capability to allow you to upload code by
simply pressing the upload button in the Arduino environment. This
means that the bootloader can have a shorter timeout, as the lowering of
DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Nano is connected to either a
computer running Mac OS X or Linux, it resets each time a connection is
made to it from software (via USB). For the following half-second or so,
the bootloader is running on the Nano. While it is programmed to ignore
malformed data (i.e. anything besides an upload of new code), it will
intercept the first few bytes of data sent to the board after a connection is
opened. If a sketch running on the board receives one-time configuration
or other data when it first starts, make sure that the software with which it
communicates waits a second after opening the connection and before
sending this data.
Page | 13
2.2.2 330 E RESISTOR
Page | 14
2.2.3. PUSH BUTTONS
Page | 15
In popular culture, the phrase "the button" (sometimes capitalized) refers
to a (usually fictional) button that a military or government leader could
press to launch nuclear weapons.
To avoid the operator from pushing the wrong button in error, pushbuttons
are often color-coded to associate them with their function. Commonly
used colors are red for stopping the machine or process and green for
starting the machine or process.
Red pushbuttons can also have large heads (called mushroom heads) for
easy operation and to facilitate the stopping of a machine. These
pushbuttons are called emergency stop buttons and for increased safety
are mandated by the electrical code in many jurisdictions. This large
mushroom shape can also be found in buttons for use with operators who
need to wear gloves for their work and could not actuate a regular flush-
mounted push button.
The source of the energy to illuminate the light is not directly tied to the
contacts on the back of the pushbutton but to the action the pushbutton
controls. In this way a start button when pushed will cause the process or
machine operation to be started and a secondary contact designed into the
operation or process will close to turn on the pilot light and signify the
action of pushing the button caused the resultant process or action to start.
Page | 16
3. DESCRIPTION OF THE SOFTWARE COMPONENTS
When coming to the software part there is nothing much rather than
the the compiler used for the programming the microcontroller and
the source code used for the application and programming the
microcontroller for its functionality.
3.1 ABOUT THE COMPILER
The compiler used here in our project is Arduino compiler its based on
free ware GCC compiler. Arduino is an open source, computer hardware
and software company, project, and user community that designs and
manufactures Single-board microcontrollers and microcontroller kits for
building digital devices and interactive objects that can sense and control
objects in the physical world. The project's products are distributed
Page | 17
as open-source hardware and software, which are licensed under the GNU
Lesser General Public License (LGPL) or the GNU General Public
License (GPL), permitting the manufacture of Arduino boards and
software distribution by anyone. Arduino boards are available
commercially in preassembled form, or as do-it-yourself kits.
Arduino board designs use a variety of microprocessors and controllers.
The boards are equipped with sets of digital and analog input/output (I/O)
pins that may be interfaced to various expansion boards (shields) and
other circuits. The boards feature serial communications interfaces,
including Universal Serial Bus (USB) on some models, which are also
used for loading programs from personal computers. The microcontrollers
are typically programmed using a dialect of features from the
programming languages C and C++. In addition to using traditional
compiler tool chains, the Arduino project provides an integrated
development environment (IDE) based on the Processing language
project.
The Arduino project started in 2003 as a program for students at
theInteraction Design Institute Ivrea in Ivrea, Italy,[2] aiming to provide a
low-cost and easy way for novices and professionals to create devices that
interact with their environment using sensors and actuators.
The name Arduino comes from a bar in Ivrea, Italy, where some of the
founders of the project used to meet. The bar was named after Arduin of
Ivrea, who was the margrave of the March of Ivrea and King of Italy from
1002 to 1014.
Page | 18
3.2 SOURCE PROGRAM
/*
The code serial prints the desired string.
When used with the windows and mac program AAC Keys,
this program will type in the desired phrase or password wherever
the PC cursor is.
The circuit:
* pushbutton attached from pin 2 to +5V
* 10-kilohm resistor attached from pin 4 to ground
*/
const int buttonPin = 4; // input pin for pushbutton
int previousButtonState = HIGH; // for checking the state of a
pushButton
int counter = 0; // button push counter
void setup() {
// make the pushButton pin an input:
pinMode(buttonPin, INPUT);
// initialize control over the keyboard:
Serial.begin(9600);
}
Page | 19
void loop()
{
// read the pushbutton:
String pass_1 = "type_your_password_here!"; //make sure you leave
the quotes around the password!
int buttonState = digitalRead(buttonPin);
// if the button state has changed,
if ((buttonState != previousButtonState)
// and it's currently pressed:
&& (buttonState == HIGH)) {
// increment the button counter
counter++;
// type out a message
//Keyboard.print("You pressed the button ");
//Keyboard.print(counter);
//Keyboard.println(" times.");
Serial.print(pass_1);
}
// save the current button state for comparison next time:
previousButtonState = buttonState;
}
Page | 20
4. APPLICATIONS
The following provides a deeper dive into the specifics of the Lastpass
application. We will look at some of its additional features, the technology
it uses for security, its security vulnerabilities, and the reported data
breaches it has endured.
Overview Lastpass is currently the most widely used password manager
with over seven million users and 15000 businesses. It was founded in
2008, and was just recently acquired. A company by the name of Logmein
acquired Lastpass in October of 2015 for about 110 million dollars (Perez,
2015).
Pricing Lastpass on a single device is free. But the cost is twelve dollars
per year to use it across multiple devices. Additional features Lastpass has
many additional features that are not offered by the other password
applications.Multifactor authentication Lastpass includes many additional
options for multifactor authentication.
Web Authentication Applications It supports many web authentication
applications such as Google Authenticator, Microsoft Authenticator,
Authy, Duo Mobile, and Transat.
Physical Grid This option uses a printable GRID to provide an additional
PIN for 2 factor sign-on. 2016 The SANS Institute Author retains full
rights. Password Management Applications and Practices 9 Scott
Standridge, [email protected]
USB Lastpass supports Yubiko and Sesame USB based authentication.
Fingerprint LastPass has support for various fingerprint readers, including
Windows Biometric Framework. One time passwords (OTP) A One Time
Password (OTP), as the name implies, is a password which can only be
used once. These passwords are to be used instead of the master password
Page | 21
when there is more of a risk that the master password may be stolen.
Lastpass recommends using them for access from a public computer or a
public network.
Page | 22
5. CONCLUSION
I'd like to open a github repo to store all the possible software tools for
this project and to improve the quality of the sketch running on this
hardware. I'd like to build a microSD version of my Password Typer, too.
I've already drawn a circuit and PCB layout for the micro SD version
using the ATmega328 directly on the PCB. Using a micro SD the new
PassType will never have memory problem (up to 32 GB) and it will be
capable of a lot of new features.
Your Password Typer is now ready for use but the exposed circuit is not
the safest and most beautiful thing. I wrapped my prototype in electrical
tape and I rounded the edgy corner of the PCB. The finished product is
size comparable to a normal key and to a combination lock. However
Password Typer can store a lot of "digital" keys and combinations.
Now you have a fully working Password Typer a password manager,
creator and typer, small as a key and capable of memorizing more than
250 up to 16 characters long passwords, each using letters in upper and
lower case, numbers and symbol.
The logo on the first page of the UI (user interface) was quite a mess to
create, however if you want you can customize it and this tool helped me
a lot. Developing sketches for this project is very simple, however try to
reduce as much as you can the writing operation on the EEPROM to
increase its lifespan. Feel free to change and customize the software I
provided you as you want. Feel free to collaborate.
Page | 23
6. REFERENCE
[3] Martn Abadi, T. Mark A. Lomas, and Roger Needham. Strengthening passwords. Technical
Report 1997 - 033, 1997.
[4] Mihir Bellare, David Pointcheval, and Phillip Rogaway. Authenticated key exchange secure
against dictionary attacks. In EUROCRYPT, pages 139155, 2000.
[5] E. Felten, D. Balfanz, D. Dean, and D. Wallach. Web spoofing: An Internet con game. Proc.
20th National Information Systems Security Conference, 1997.
[6] Eran Gabber, Phillip B. Gibbons, Yossi Matias, and Alain J. Mayer. How to make personalized
web browsing simple, secure, and anonymous. In Financial Cryptography, pages 1732, 1997.
[7] Rosario Gennaro and Yehuda Lindell. A framework for password-based authenticated key
exchange. In EUROCRYPT, pages 524543, 2003.
[8] J. Jeff, Y. Alan, B. Ross, and A. Alasdair. The memorability and security of passwords some
empirical results, 2000.
[9] Ian Jermyn, Alain Mayer, Fabian Monrose, Michael K. Reiter, and Aviel D. Rubin. The design
and analysis of graphical passwords. 1999.
[10] Jonathan Katz, Rafail Ostrovsky, and Moti Yung. Efficient password-authenticated key
exchange using human-memorable passwords. In EUROCRYPT 01: Proceedings of the
International Conference on the Theory and Application of Cryptographic Techniques, pages 475
494. Springer-Verlag, 2001. [11] J. Kelsey, B. Schneier, C. Hall, and D. Wagner. Secure
applications of low-entropy keys. Lecture Notes in Computer Science, 1396:121134, 1998.
[12] David P. Kormann and Aviel D. Rubin. Risks of the Passport single signon protocol. In Proc.
9th international World Wide Web conference on computer networks, pages 5158. North-Holland
Publishing Co., 2000.
[13] U. Manber. A simple scheme to make passwords based on one-way functions much harder
to crack, 1996.
Page | 24
Page | 25