08-17-2017, 12:43 AM
[attachment=15189]
Introduction
1.1 Motivation
Today, data security has come to be of utmost importance. Computer-based data
storage is ubiquitous, even for confidential data. Large corporations and institutions
usually have centralized storage devices and with an ever-increasing number of users
with portable computers. A result of these two developments is that data theft has
become alarmingly common [1, 2].
While several solutions that have been devised to address this problem [3, 4,
5, 6, 7, 8], these have been found wanting in certain aspects, such as strong trust
models, and flexibility with regards to file sharing. A need was felt for a file system
that addresses these issues. It is in this light that the TransCrypt encrypting file
system [9, 10] was created.
TransCrypt is a transparent, enterprise-class, encrypting file system. Being
1
transparent, no changes need to be made to existing programs and tools in order to
use TransCrypt. The trust model employed is stronger than most existing solutions
even the super user (root) is not trusted in the TransCrypt trust model. However,
flexibility is not compromised the standard UNIX semantics for sharing files
between users are supported to a reasonable extent.
The TransCrypt implementation was initially carried out as a set of modifications
to the ext3 file system [11] in the Linux kernel. This included changes to
the Linux kernel as well as the userspace e2fsprogs package [12] which contains libraries
and tools to work with ext3 volumes. As the code base grew more complex,
maintaining TransCrypt code against the ext3 code grew harder. Moreover, it was
not possible to exploit more advanced file systems such as XFS [13], JFS [14], and
ReiserFS [15].
Thus, there was a need to redesign certain parts of the TransCrypt implementation
so as to make it independent of the underlying file system. This would greatly
reduce the amount of external code that needed to be modified, significantly improving
code maintainability. Moreover, the ability to use more advanced file systems
with TransCrypt would allow users to benefit from these file systems performance,
reliability and other improvements without requiring substantial work on the Trans-
Crypt code itself. This thesis describes the approach that was used to accomplish
this goal.