Linux Cryptographic File System

Xiaosong Yang        Ye Chen
    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 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