The SD4L project wishes to thank SourceForge for hosting us!
SD4L - ScramDisk for Linux
SD4L is a suite of Linux tools and a graphical user interface (GUI) which allow the creation of, and access to ScramDisk encrypted container files. In particular, SD4L provides a Linux driver which enables mounting ScramDisk containers. ScramDisk for Linux also encrypts partitions on a hard disk or storage media such as USB sticks or floppy disks entirely as devices. Version 2.1, moreover, opens and creates TrueCrypt containers from TrueCrypt version 4.1 to 7.0a.
Related LinksWikipedia: Comparison of disk encryption software
|Main window of ScramDisk for Linux 2.1|
This project has entered its production/stable phase with version 1.0. The latest release is 2.1-0. Mailing lists and the tracker system are available on the SourceForge Summary Page for this project.
ScramDisk for Linux comprises the kernel driver scramdisk.ko, the GUI scramdisk and five small command line utilities sdcreate, sdchange, sdmount, sdreformat and sdumount as well as the program sdhelper which is for internal use by the kernel driver only. At present, the GUI has english and german translations. The language is chosen at start time from the configuration file or the locale set in the LANG variable in the users environment. English and german documentation is provided in the files ScramDisk_2.1-0_en.pdf and ScramDisk_2.1-0_de.pdf in the file release, the english one is also available here.
Scramdisk started as an OpenSource project written by Shaun Hollingworth for Windows 9x, and provided the ability to create and use virtual encrypted drives which were mapped to container files, as well as the creation and use of encrypted partitions. This was accomplished through the use of strong encryption algorithms and On-The-Fly-Encryption (OTFE). One distinguishing feature of ScramDisk containers was that they appeared to be filled with random data, thus permitting plausible deniability. The original author of ScramDisk has since moved on to a related commercial enterprise named SecurStar which sells the new product DriveCrypt.
The last stable OpenSource ScramDisk software (v3.01r3c) for Windows has been in existence for quite awhile, and has had the luxury of much peer review by members of the cryptographic community. As such, it was a time-tested and useful cryptographic privacy tool, and it was widely accepted in some circles. Unfortunately, it is no longer maintained. Until August 2005, there has not been a Linux driver to access encrypted ScramDisk containers or partitions. Now, the existence of a Linux driver and accompanying toolset allows cross-platform portability of ScramDisk encrypted containers. ScramDisk for Linux can also open and create TrueCrypt containers since version 1.0. The supported TrueCrypt container format is that of versions 4.1 to 7.0a.
It is the goal of the ScramDisk for Linux (SD4L) project to maintain the Linux driver, as well as the tools needed to create and maintain ScramDisk encrypted containers. With Scramdisk for Linux 2.0 packages for the major Linux distros have been released. The latest version provides packages for 5.0 (Lenny) and 6.0 (Squeeze), Fedora 14, SuSE 11.3 and Ubuntu 10.04 and 10.10. Packages for earlier versions of some of these distros may be found in back packages of SD4L. The Linux driver is written in C, the additional tools in C++. The GUI utilizes the Qt library (version 3). Cryptographic code was taken from the Catacomb Library written by Mark Wooding. The kernel driver supports the Linux kernel versions 2.4.x and 2.6.x up to 2.6.37.
ScramDisk For Linux is licensed by the GPL. Among the features which the SD4L suite provides, are:
After a container has been "mounted" any data could be read from or written to the file system inside the container transparently with help of the driver scramdiks.ko. By "unmounting" the container the file system becomes inaccessible again. New encrypted containers to be used by ScramDisk can be created using the Create button. The passphrase of a container can be changed later using the Change button. All ciphers of the Windows ScramDisk v3.01r3c and some additional ciphers like AES are supported except for Idea, wich is patented, Tea with 16 rounds and Misty1. Moreover, ScramDisk for Linux supports the additional digests Ripemd160, SHA256, SHA512 and Whirlpool. If windows container compatibility is checked, the created container can be opened by the Windows ScramDisk as well. In this case a digest or a cipher not supported by the Windows ScramDisk is not accepted and the container is formatted msdos/vfat. On the other hand, any container created with ScramDisk for Windows can be opened with ScramDisk for Linux if it does not use Idea, Tea with 16 rounds or Misty1. For TrueCrypt containers ScramDisk for Linux supports exactly the cipher and digest algorithms which are implemented by the TrueCrypt software. The encryption mode of ScramDisk for Linux for TrueCrypt containers is the LRW mode which is named after Liskov, Rivest and Wagner or the XTS mode which is an improved variant of the former. The mode depends on the chosen TrueCrypt version, for TrueCrypt 4 the LRW mode and for TrueCrypt 5, 6 and 7 the XTS mode is used.
ScramDisk for Linux developement was started roughly in July 2000 by Andy Jeffries with support from Sam Simpson. Andy published a first, not yet working version of the kernel driver in April 2003 together with a container creation utility sdcreate 0.2 from Ulrich Jüttner. The SourceForge project SD4L was registered by Hannes Beinert on 2004-02-12. The first complete version 0.8-2 was published on SourceForge.net on 2005-08-06.
An internationalization with a german translation besides the english language was introduced with version 0.9-0. This release also had several new features such as brutal unmounting or bookmarks.
Version 1.0-0 implemented support for TrueCrypt containers and the handling of block devices as containers. Version 1.0-1 fixed two vulnerabilities by which a normal user could obtain root privileges. We advise everyone not to use earlier releases productively. Version 1.0-2 fixed two bugs and solved a small feature request. The bugs concern mounting of ext3 file systems with option "auto" and unmounting from kernel if file system mount failed. The new feature disables access right checks on block devices to be mounted as containers.
Version 1.1-0 has reworked the kernel driver. It now handles input and output requests in separate kernel threads for each container. Thereby, input/output errors are fixed which occasionally occured in previous versions under heavy load. It, moreover, fixes a bug in the handling of large containers of 2 GB and above. In order to comply with the behavior of Scramdisk for Windows v3.01r3c, the SD4L passphrase dialog for scramdisk containers has been modified sligthly in version 1.1-0 to accept only 39 characters per line (instead of 40 characters previously).
Version 1.2-0 offers the new option of reformatting containers from ScramDisk to TrueCrypt container format. Only this direction of format change is supported since the TrueCrypt format with the LRW mode is the more modern on. A file based container decreases by 9728 bytes in size in this format change. A section Encryption Scheme and Container Format was added to the documentation. It provides technical background information. Finally, version 1.2-0 fixed six bugs of earlier versions.
Version 1.3-0 added an optional container timeout which takes effect when a container is inactive for a configurable period of time. Support for the NTFS file system was added in this version. Moreover, size, position and font size of the GUI have been made adjustable. Version 1.3-1 added some includes to the sources which new compilers considered an error if missing. Version 1.3-2 fixed crashes with kernels 2.6.26 and 2.6.27, a rare deadlock in the GUI and a wrong reporting of the size of containers which are partitions on a drive.
Version 2.0-0 implemented support for TrueCrypt 5 and 6 containers and the XTS mode. Support for partitioned containers and for encrypted swap space has been added. Moreover, there is a new option to use default mount points. These are directories created by ScramDisk below the directory /media when they are needed. On unmounting these directories are removed again. Version 2.0-1 fixes wrong size information for partitions in the kernel driver for kernels 2.6.28 and higher and version 2.0-2 fixes some dependencies of options which weren't always satisfied on start of the GUI. Version 2.0-3 compiles on kernels 2.6.34 to 2.6.37.
Finally version 2.1-0 implementes support for TrueCrypt 7 containers.