1. Introduction
Data security in modern distributed computing systems
is a difficult problem. Network connections and remote file system services
often make it possible for an intruder to gain access to sensitive data
by compromising only a single component of a large system. Cryptographic
techniques offer a promising approach for protecting files against unauthorized
access. When properly implemented and appropriately applied, modern cipher
algorithms (such as the Data Encryption Standard (DES)) are widely believed
sufficiently strong to render encrypted data unavailable to virtually any
adversary who cannot supply the correct key. In our project we install
CFS, which pushes encryption services into the file system itself and supports
secure storage at the system level through a standard Unix file system
interface to encrypted file.
2. General Schemes of Cryptography
-
User-level Cryptography
-
Simple Approach
Use tools , such as Unix crypt program,
to encipher (or decipher) a file or data stream with a specified key. It
allows great flexibility in its application, but also invited mistakes.
-
Encryption and decryption are under the user's direct control.
-
Cleartext may or may not automatically be deleted when encrypting.
-
Cumbersome for enter the key manually again and again
-
Integrate encryption in application software
Each program which is to manipulate sensitive data has
built-in cryptographic facilities.
-
Functional Redundency: the same encryption mechanism is spread
among multiple application.
-
A single poorly designed component can introduce a significant
problem to the whole system.
-
System level cryptography
In this scheme, cryptographic services is a basic part
of the underlying system.
-
Lacks of flexibility: The user has little choice but to trust
some components of the system.
-
Design difficulty. It is very difficult to provide protection
both on the physical media and during network connection .
-
Performance problem.
3. CFS: Cryptographic Service in File System
CFS occupies something of a middle ground between system
level and user level cryptography.
It does not suffer from many of the difficulties inherent
in the above cryptographic method.
It not only protects content, but also network connection.
CFS pushes file encryption entirely into the client file
system interface.
When you use CFS, you need not to enter the same key
again and again.
If we ignore the 2nd and 3rd part in this graph, the rest
of the graph is a typical model of NFS.
CFS is simulating a remote host in the NFS system, but
actually , it is running inside the local host . Before you can use CFS
, the first thing you need to do is to run CFS daemon, the second one is
to mount it as a remote directory in the local file system. Usally , the
directory is named as /crypt.
The whole procedure begins with a user-level application
's access to the crypt directory. For example , copy some cleartext
to the crypt directory. When the NFS system receive this require , it pass
it to the CFS. Here , CFS is running like a remote host . CFS encrypt the
cleartext and mapping the virtual file directory into real directory which
the encrypted data should be stored . Then CFS pass the request back to
the local host file system, together with the encrypted text . Using the
real file directory , the NFS finishs the rest file access . if the real
file should be store in remote directory , the encrypted text will trasfering
through network.
The first 4 steps of the procedure are running in the
local host . So there is no chance for cleartext to appear in file format
or transfer through network . the procedure is entirely safe.
And also the CFS layer is entirely transperant to user.
So everything is through local file sytem interface .
4. Our experiment
-
Download the package from Internet.