IoT device for password manager.
A project for IoT Security
course at University of Salerno.
In this section we introduce context informations for the project.
PassChain is an IoT device to store user's credentials (like username and password) and send them to other devices with a Bluetooth connection. Datas are encrypted with AES-128 bit in GCM mode and the board setup is made connecting PassChain to a server Python with a SSL communication. Each operation is authorized only if the user authenticates himself with a fingerprint.
The project is produced for the IoT Security course of Master's Degree in Cybersecurity at University of Salerno.
In this section we introduce technical informations and installing guides!
In this section we can see the circuit, in particular, how all the sensors have been connected to the Esp32 and board's datasheet.
- GPIO 15: metal plaque to wake up the device when it goes in deep sleep after a constant time;
- GPIO 12: battery circuit is composed of two resistence of 47K, because the board has a voltage between 2.3V - 3.6V. The line red and black are connected to the back of the board: here there is a connector that connect battery to the board;
- G: connection with GND (black line);
- Red line: connection with 3V;
- GPIO 26: is TX on the board (RX on fingerprint);
- GPIO 27: is RX on the board (TX on fingerprint);
The blue and white line of the fingerprint are used to connect it to serial adapter but in this case we donβt need to use them.
We can see how the user does a quick login to a website using PassChain and how the board does connect to server with SSL protocol.
- Arduino IDE - The programming language used for the board development.
- Lora TTgo Esp32 - Board used for the project.
- Adafruit Fingerprint - Sensor for user authentication.
- LiPo battery 500 mAh - Battery of 3.7V.
- mbedtls/gcm - Library used to encrypt and decrypt datas with AES-128 bit (GCM mode).
- WiFiClientSecure/gcm - Library used to create and setup SSL communication.
- BleKeyboard - Library used to simulate a virtual keyboard.
- Openssl - To generate certificates for SSL communication.
- Python - The programming language used for server development.
Alberto Montefusco - Developer - Alberto-00
Email - a.montefusco28@studenti.unisa.it
LinkedIn - Alberto Montefusco
My WebSite - alberto-00.github.io