We often store important and confidential files in pen drives or flash storage drives for transferring/sharing data. Although convenient, there remains a concern regarding misplacing these storage devices that can go into wrong hands and create problems. So we need special storage devices, which we can securely save and share our files. There are several software available in the market that allow us to encrypt and lock our files but they require a certain ‘know-how’ for installation in the laptops and PCs, which will be used with the flash drive. Also available are some flash devices that work on fingerprint or password authentication. However, these require installation of special drivers in a PC and only support Windows 10 or 8 but not Linux.
Therefore I have decided to make a smart flash storage device that is based on fingerprint authentication and works without installing any software or drivers in a PC.
Using Bluetooth serial terminals, a user’s fingerprint or password authentication is done via an app on a phone. This concept project can be used for developing a reliable smart flash storage solution.
Bill Of Material
To allow only authenticated users access the flash storage device, we will create a code for controlling the VCC and GND pins of a flash drive. We will also use a Bluetooth HC 05 so that the app can wirelessly perform user authentication. This will enable safe usage of the flash device with any OS including Linux, Windows, Android, or with any other system that supports USB flash storage.
First, create a string variable, which will store the password for device authentication and another variable to store the password coming from Bluetooth for authentication. Then, define the pin number to control the VCC pin of the USB flash storage device.
Next, create a setup function where the serial Baud Rate for Bluetooth HC 05 is 9600.
Now create a loop function that will check the incoming password and compare it with the already saved password. If there is a successful match between the two, then it gives the VCC pin of the USB to power and the USB device will be recognised by the PC, allowing access to the files inside it.
To create an app that connects with a pendrive through fingerprint authentication, use Kodular. You can also use MIT App Inventor or Android Studio to create the app.
First, create a layout (as shown in pic below) and add the following components to it:
- Clock (from Sensors section)
- Fingerprint (from Sensors section)
- Listpicker (from Layout section)
- TextView (from Layout section)
- Bluetooth Client (from Connectivity section)
Now join the code blocks (as shown the in fig. below)
Now take the female part of the USB. Solder the RX and TX pins of any flash drive to the RX and TX pins of the USB. Make sure to solder the GND to -ve. Then connect the VCC pin of the USB flash drive to pin 9 of the Arduino for controlling the flash drive power. Also connect the VCC and GND pins of the Arduino to the VCC and GND pins of the female USB.
After that, make the following connections:
|Bluetooth HC-05 → Arduino|
|VCC → 5V|
|GND → GND|
|RX → TX|
|TX → RX|
Connect the USB and Bluetooth with the app. Press the fingerprint icon as seen in the app. After successful authentication, you will be able to see the recognized device in the PC.
Note:- This is a Concept project. the whole thing needed to be fabricated into single Chip to make such reliable solution