The USB-based memory devices referred to as USB flash drives, “thumb drives” or “pen drives” have revolutionized the way data storage and portability have evolved. Since their inception in 2000, millions of these devices have been manufactured and sold in all corners of the globe. Approximately 170 Million units of such USB-based flash drives were manufactured in the year 2008 alone.
Some of the reasons which have contributed to the ubiquitous presence of these devices are:
- Portability: The physical form factor of these devices are generally quite small and light, making them very convenient for carrying around in one’s pocket (hence the name ‘pen drives!’)
- Ease of use: With the increasing acceptance of USB as a standard interface, these USB based storage devices are extremely simple to use. Just a simple plug-and-play is all it takes to use them!
- Low price
- Fast speeds
- Big (and growing) capacities
Of late, one of the major challenges facing individuals as well as companies regarding USB flash drives is that of data leakage and theft of/from these devices. There have been a number of cases ranging from misplaced to stolen or misused flash drives reported ,which have resulted in losses up to 2.5 Million USD* from a single such incident!
The losses are a result of confidential personal or corporate-level data getting leaked and misused. In the light of such occurrences, there is a need to make the USB-based flash devices more secure and ‘leak proof.’ Data security can be maintained in USB flash drives using encryption/decryption mechanisms to enable reading/writing to the device only by authorized personnel.
Security in USB flash drives
The two widely used methods for securing USB flash drives are:
- Software encryption: Encryption keys are stored in the device’s memory and used to encrypt/decrypt the data. Although quite a safe methodology, the presence of the keys on the device memory exposes them to the hackers who know where to look for the keys and their unique format.
- Hardware encryption: The encryption keys do not ever leave the hardware device, thus never exposing them. This aspect makes hardware encryption potentially more foolproof than the software encryption alternative.
Both software and hardware encryption methodologies use the Advanced Encryption Standard (AES) 128-bit or 256-bit (As of now, neither the 128-bit nor the 256-bit algorithms have been reportedly compromised). However, just deploying the AES algorithm does not suffice, as the manner in which it is executed is equally important.
As is the case with software encryption, user-passwords are fed into the AES engine to generate the encryption keys, which makes the strength of the encryption directly dependant on the strength of the password. Also, ideally a 128-bit AES would require the password to be of 16 characters (8 bits/character) and similarly, the 256-bit AES would require a 32-character password. Creating and remembering a difficult-to-guess password can make the device user-unfriendly.
On the other hand, hardware-based random number generators could be used to generate number patterns which would be fed to the AES engine to generate encryption keys. The encryption key is unlocked by the user password and is used by the AES engine for encrypting the data. Evidently, the hardware-ased methodology is a more secure option.
A point worth noting is that both the software and the hardware encryption methodologies require a user password. However, the hardware encryption method is deemed to be more foolproof since it does not allow direct access to the encryption keys and the quality of encryption is not determined by the strength of the user password.
A generic block diagram of such encryption enabled devices available today looks like this:
In this figure, the USB controller receives data from the PC/laptop’s USB port and passes it on to the AES engine which subsequently passes the data on to mass storage in the encrypted format. Data retrieval also follows the same path in which the memory controller reads from the mass storage and passes the data on to the AES engine which decrypts the data and pushes it out to the USB controller.