The problem with hardware encryption is that operating system engineers and cryptographers have their own view on encryption and/or design goals; this can create implementation incompatibilities with different operating systems; and with different operating systems comes different filesystems; and with different filesystems comes a wealth of new issues with encryption at the filesystem level.
This means that:
- There must be a standard among operating systems to create a compatibility with eachother for encryption, and...
- There must be a standard filesystem among operating systems, and...
- The encryption method used must be open source for peer review.
I have my own solution:
- Create two partitions; one about 100MB and the other the rest of the space using TrueCrypt. Alternatively, just create a TrueCrypt volume container.
- The compatibility between Linux, Windows, and Mac comes from ensuring that your filesystem is a compatible one between OS's such as FAT.
The incompatibilities with Linux and encryption most likely stems from LUKS
and the new standard ecryptfs
.
Encryption with TrueCrypt can be defeated by dumping keys (easily done with aeskeyfind
). I should note that decryption in general requires the secret key; this means that in order to read the data off of the hardware encrypted flash drive the key must be present somewhere (most likely in RAM like with TrueCrypt). I do not know of any way to break truecrypts encryption other than dumping the keys from RAM or by brute-force which leaves the same issue present with the hardware encrypted flash drives.