Multi-Platform Encrypted Disk Image Formats?
LockedDisk asks: I'm looking at an application that will use USB flash devices to distribute information that, while not "top-secret", is sensitive enough that I'd prefer not to distribute it in plaintext. It'll be accessed from multiple platforms by the users who get them. What I'm hoping to find is a tool to build encrypted disk images that can be mounted on Windows, MacOS X, and hopefully Linux as well. What I'd do in distributing these is put the encrypted image on the device, with mounters already on the thumb drive. Users would be able to simply use the right mounter for their platform. For instance, I know PGPdisk would support the multi-platform part, but the mounter doesn't look like it's very well-suited to what I'm looking for. Mac .DMG files can be encrypted, but I know of no way to mount them on any other platform. Any ideas, folks?"
why not just use a standard filesystem (msdos/vfat) and leave an encrypted zip or gpg encrypted tar file in the root directory? How is this any less secure? As an added bonus it is very simple to implement and will be supported under any platform (that is dos friendly).
Marques Johansson
Well, if you're felling ambitious, you could allways try porting the hdiutil command line utility from the Darwin source to whatever platforms you need. Then you could use UIFS images (mac .dmg files) on multiple platforms. Actually someone probably ought to do that anyway, from what I understand it's a pretty nifty flexible device image format.
If you're not looking to do quite so much work, it would be pretty trivial to just use a plain old .iso image encrypted by GPG, and include a script to decrypt the image then mount it for each platform.
"The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
why does everyone feel the need to over-engineer? vfat is understood ubiquitously and so are many encrypted file formats. awesome first post.
Why not use CDROM ios images? It's standard, supported on every platform, and the software should be free. For windows, try Deamon Tools (read only). If you need read and write access, you may have to find some special software to make the .iso files to work, but I know It's possible.
I am a viral sig. Please help me spread.
I believe you may be able to do this with the PGP tools. Not sure if that capability is included with the free version of the tool or not.
has the ability to create encrypted images with any given cipher and mount them. They've made a version for both, Windows and Linux (not sure if they have a Mac though). It creates a .jbc file that you can copy and manipulate to your heart's content. Here's their site.
'A lie if repeated often enough, becomes the truth.' - Goebbels
I've wished for something similar in the past. One solution that occurred to me would be to create an encrypted loopback filesystem under Linux (details here). For those not familiar with this scheme, it essentially encapsulates a filesystem in a regular file and [en|de]crypts it at the kernel level.
One potential way to access this from Windows would be using Namespace Extensions. I believe this is the way that "special folders" such as Control Panel and Scheduled Tasks are integrated into the Explorer. It would seem to be straightforward for someone knowledgable in the area to create a Namespace Extension that could mount an encrypted loopback filesystem created in Linux.
83chrise.nuf
If you're adventurous, you could use Samba as the front end (since it compiles and runs on Windows, Mac, and Linux) and write a custom VFS module to read whatever kind of image you want. The easiest thing to do would be to take something like ramfs from Linux and port it to userspace/samba. That would provide a portable way to share front-ends (keeping in mind three copies of Samba isn't exactly tiny)....
:)
And for platforms that don't support CIFS natively (are there any of this now a days?) you can use jCIFS
int func(int a);
func((b += 3, b));
You might take a look at BestCrypt from Jetico. I used to use it when I was using both Windows and Linux. It supports a number of ciphers including Rijndel (AES), IDEA, Blowfish, Blowfish-448, Blowfish-128, DES, 3DES, CAST andTwofish. There is also an availible development kit if you are interested. I don't recall the details of the license but all the products are availible for free download and evaluation.
I'm sure you could hack up some BSD/Linux utility to transparently mount encrypted filesystems and include a minimal Cygwin installation for the Windows folks. IIRC, Cygwin accesses the Windows filesystem(s) directly, so mounting an encrypted file loopback and accessing it's contents directly from Windows should be possible. Getting Cygwin onto a USB pen drive might be a chore, though. Sounds like a fun project.
"I assumed blithely that there were no elves out there in the darkness"
(I am not a filesystem expert) ...but I think filesystem stuff must be done in kernel space, while cygwin is entirely userspace userland tools (not kernel) (did I mention user?)-level stuff. So cygwin would not provide any sort of filesystem helpfulness at all. But I might be wrong.
The second part is to get transparent encryption/decryption. That's a matter of convenience. There is no single good solution for all platforms. Some programs (editors like vi and emacs) can automate this for you. You can write scripts or batch files to do this for you as needed.
On Linux, you can get transparent encrypt/decryption for almost all programs using LD_PRELOAD. Look at the "Plastic File System" (some assembly required). Similar DLL hacks are possible on Windows, though harder and less reliable.
From what I can gather, this is how OpenAFS provides seamless filesystem access on platforms (Windows) that no-one wants to write drivers for. The scheme is basically:
FAT formatted USB drive->encrypted file->SMB/CIFS server->SMB/CIFS client on OS
"I assumed blithely that there were no elves out there in the darkness"
I think this might be a good application for a simple Java application. Just put your encrypted data file(s) and Java binaries in a ".jar" file. Use something command line oriented or using pre-Swing (AWT?) APIs that'd work on a 1.1.x JVM and you'll have everything you need (aside from a JVM) with you. Maybe whip up a simple Applet so all you need is a Java capable Browser.
The biggest issue with this idea is cross-platform. So far a few suggestions have been raised, and I like the idea of a samba frontend, though it seems a little extreme.
BestCrypt is the only cross-platfrom encrypted drive/volume software I know of, its only free for Linux though. :(
Scramdisk/ e4m are options. Though Scramdisk doesn't run on w2k or XP, nor Linux. E4M doesn't run on linux either. The source for Scramdisk and E4M is available, but I've forgotten what the license is. I *think* its GPL, but don't count on it.
DriveCrypt is made by the same people as ScramDisk, but DC is closed source. Though they are promising a Linux release (as well as the current XP/2K/etc clients).
You may also like to try The Linux crypto mailing list to search for answers there.
Developing On-The-Fly encrypted drives for linux isn't all that hard, afterall, its been done before a few times. Doing so for Windows 95 though to XP is a lot harder.
As for the Mac side, I have no idea. I think the most portable option would be the Samba idea mentioned before. It shows the most promise, you are esentially piggybacking off a known and support product.
I use to have a funny sig, but slash cut it off, and I forgot what the punchline was.
I'm afraid that there might not be much of these around that works perfectly and transparently. One of the reasons is probably that Windows doesnt have a standard and well working loopback device mount function that is modular (can add own read/write-modules) like for instance OS X and Linux has. Finding or making some of these existing work on OS X and Linux is probably feasible (not sure if they exist) but Windows is a problem. It's not like Microsoft lets people know how to code filesystems to Windows - otherwise im sure we'd see atleast ext2fs support in Windows.
But for a temporary solution i present BCrypt - powerful multiplatform file encryption tool. Its also small and light but uses a 448bit Blowfish-encryption. You can carry the different version of the binary on your pendrive and encrypt/decrypt on virtually any platform. Of course it just encrypts files so you need to add zip or something for multiple files - yes its a bitch if there is alot of them but its the best suggestion i have.
I don't see why the "mounter" in PGPdisk doesn't seem like what you're looking for. It sounds like exactly what you're looking for. Please explain what PGPdisk lacks that you need.
If so, you could use WebDNA and give it any extension you want so no one would know WebDNA was serving up the info.
;)(*&#$KLJFLKjkhegdlksdfg09814
You can also use the [protect admin] tag to require username and password.
It is cross platform and the Developer Edition is FREE.
You can download it at Click Here
Here is the sample encrypt tag
[Encrypt seed=abcdefg]Some Text that is private[/Encrypt]
[Decrypt seed=abcdefg][Encrypt seed=abcdefg]Some Text that is private[/Encrypt][/Decrypt]
In the example above, the first line of displayed text will be unintelligible, as seen below.
The second line decrypts the text and displays it as it was before:
Some Text that is private
Good Luck!!