TCFS v.2.0 FREQUENTLY ASKED QUESTIONS WITH ANSWERS
V.1.7.3.
Angelo Celentano <angcel@mikonos.dia.unisa.it>
This is a list of Frequently Asked Questions about TCFS 2.0, the Transparent
Cryptographic File System [see Q1.1 'What is TCFS?' for more details]
developed at the Universita' di Salerno (Italy). It should be read in
conjunction with the General Documentation, which is available via HTTP in
* mikonos.dia.unisa.it (192.41.218.253) : /tcfs
* edu-gw.dia.unisa.it (192.41.218.253) : /tcfs
* www.globenet.it (194.184.182.2) : /~ermmau/tcfs
* www.inopera.it (194.184.82.4) : /~ermmau/tcfs
For info and bug-report contact us at tcfs@mikonos.dia.unisa.it.
A mailing list is available at tcfslist@mikonos.dia.unisa.it
Index
- Section 1. Introduction and General Information
Q1.1 What is TCFS?
Q1.2 How does TCFS work?
Q1.3 On which platforms does it run?
Q1.4 Which are the main differences between TCFS and Matt Blaze's CFS?
Q1.5 How fast (or slow) is TCFS?
Q1.6 What about TCFS v.1.0?
Q1.7 Is TCFS suitable for encrypting file systems on non-networked
machines- i.e., just a stand-alone system?
Q1.8 For such a use, does TCFS have any speed advantage over CFS?
Q1.9 Is TCFS as secure as CFS?
Q1.10 Does it mean that root can't read my files when they are not in
/dev/kmem?
- Section 2. TCFS Components
Q2.1 How are files encrypted?
Q2.2 Are there any plans to extend the cryptographic options to
include ciphers other than DES?
Q2.3 How does TCFS build the encryption key?
- Section 3. Administrator Information
Q3.1 How do I install TCFS?
Q3.2 Which Operating System is required for the TCFS Server machine?
Q3.3 Which Operating System is required for the TCFS Client machine?
Q3.4 Why must I use your modified passwd command?
Q3.5 Why do I need to use your mount command?
Q3.6 What is in the file /etc/tcfspasswd?
Q3.7 Can I use the standard NFS protocol together TCFS?
Q3.8 Can I install the TCFS client and server on the same machine?
Q3.9 How can I enable a user to use TCFS Filesystem's features?
- Section 4. User Information
Q4.1 How do I use the TCFS features?
Q4.2 Why must I execute tcfslogin command?
Q4.3 Why must I execute tcfslogout before closing my session?
Q4.4 How do I change the flag X on my files?
Q4.5 If I set the X flag on a directory, what happens to the files in
the directory?
Q4.6 How is the X flag inherited?
Q4.7 How do I check if a file is encrypted?
Q4.8 Can I share my files with other users in my same workgroup?
Q4.9 Why can't I read my secure files?
- Section 5. Getting Infos and Bugs Report
Q5.1 How do I report bugs?
Q5.2 I want to subscribe to TCFS mailing list, what should I do?
Q5.3 Where can I find the latest TCFS release?
Q5.4 Where can I find more informations about TCFS?
- Section 6. Who, What and Why.
Q6.1 Who made TCFS?
Q6.2 Who needs TCFS?
- Section 7. Administrative information and acknowledgements.
Q7.1 Feedback is invited
Q7.2 Formats in which this FAQ is available
Q7.3 Authorship and acknowledgements
Section 1. Introduction and General Information
- Question 1.1. What is TCFS?
TCFS is a Transparent Cryptographic File System that is a suitable solution to
the problem of privacy for distributed file system. By a deeper integration
between the encryption service and the file system, it results in a complete
trasparency of use to the user applications. Files are stored in encrypted
form and are decrypted before they are read. The encryption/decryption process
takes place on the client machine and thus the encryption/decryption key never
travels on the network.
- Question 1.2. How does TCFS works?
TCFS operates like NFS (Network File System). We added a new flag X to make
the file secure (encrypted). A TCFS filesystem can be accessed by applications
using the same system calls as NFS (open,read,write,...) whence the name
transparent. Blocks of data are correctly decrypted only if the right key is
available to the kernel.
- Question 1.3 On which platforms does it run?
Currently, TCFS works only on Linux Boxes (Kernel version 2.0.x). We are
working to port TCFS under Digital Unix (tm) and BSD (tm).
- Question 1.4 Which are the main differences between TCFS and Matt Blaze's CFS?
The main difference is that using CFS you have a secure directory where all
files are encrypted. Before accessing encrypted files you need to attach your
directory to a special mount directory (usually /crypt) and provide a key for
each attached directory. TCFS instead is completely transparent to the user
and can be used just like NFS, where encrypted and decrypted files can be
accessed in the same way (easy, isn't it?). Actually, a user needs not be
aware the his/her files are encrypted. From a more techinical point of view,
CFS works in user space while TCFS works in the kernel space thus resulting in
improved performances and security.
- Question 1.5 How fast (or slow) is TCFS?
To reduce the influence of external factors, such as network traffic and
physical disk access time, we run the test in the following framework:
- The client machine running TCFS is an Intel 80486 100 Mhz processor running Linux.
- The server is a fast file server SPARCstation10 running Linux, with a 2 Gb fast SCSI disk.
We run the test on a 10Mbits Ethernet Network.
All the values reported in the table are
average values over ten different runs, and the execution of all tests are
mixed to avoid caching side effect. The times are expressed in seconds.
The main reason we have a better performance than CFS is due to a
``double-mount'' mechanism employed by CFS.
- Question 1.6. What about TCFS v.1.0?
The first release of TCFS can be found via HTTP at mikonos.dia.unisa.it:/tcfs
but that is an INSTABLE release; it's just an EXPERIMENTAL product. It runs
in user space and is quite similar to CFS in design. The 2.0 version has been
completely redesigned and has a better performance; so we don't recommend
using TCFS v.1.0!
- Question 1.7. Is TCFS suitable for encrypting file systems on non-networked machines - ie, just a stand-alone system?
Sure, TCFS is a kernel modules and operates like NFS, so you can use it on a
standalone machine like you could do with NFS. One needs only to compile the
kernel with TCFS file system support, to export a directory on the client to
itself and run NFSD and XATTRD (a special daemon required for TCFS).
- Question 1.8. For such a use, does TCFS have any speed advantage over CFS?
Sure... Since TCFS is internal to the kernel, it doesn't generate any overhead
due to use any expecial mounting procedure (CFS needs to do a double mount to
operate). The TCFS time is equal to the NFS time plus DES time. [See Q1.5 'How fast (or slow) is TCFS?'].
- Question 1.9. Is TCFS as secure as CFS?
We use CBC-DES cipher in TCFS to hide all meta-data. Security of the model is
based on user password, the keys-database can be accessed only using this
password. TCFS doesn't ask user to remember other keys.
In future release we plan to encrypt the encryption/decryption key using a
passphrase (not just the login password).
- Question 1.10. It means that root can't read my files when they are not currently in /dev/kmem?
Sure, root on client can only access /dev/kmem. Data are readable only while
in process memory and in VFS caches. The client root can nonetheless access
encrypted blocks of data. However, that is not very helpful, isn't it?
Section 2. TCFS Components
Section 3. Administrator Information
- Question 3.1. How do I install TCFS?
The TCFS installation is divided into two steps: server installation and
client installation.
- The server installation consists in running the xattrd daemon and
in configuring the machine to export at least one directory to the
TCFS client machine.
- The client installation consists in recompiling the kernel to support TCFS
filesystems, mounting the remote directory exported by the TCFS server with
the command "mount" that you find in TCFS distribution, and enabling the
users to use TCFS features using tcfsgenkey.
[See Q3.9 'How can I enable a user to use TCFS Filesystem's features?]
- Question 3.2. Which Operating System is required for the TCFS Server?
At this moment TCFS works only on Linux Boxes (Kernel version 2.0.x). [See Q1.3 'On which platforms does it run?']
- Question 3.3. Which Operating System is required for the TCFS Client?
See Q3.2.
- Question 3.4. Why must I use your modifyed passwd command?
Because the encryption key is encrypted with the user password. For this
reason, we have modified the passwd command by inserting the routine that
decrypt and encrypt the key every time the user changes his login password.
- Question 3.5. Why do I need to use your mount command?
Because we have inserted the new file system (TCFS) in the standard command
line. In this way you can mount a TCFS file system with the standard mount
usage - i.e., "mount -t tcfs tcfs-srv:/remotedir /localdir".
- Question 3.6. What is in the file /etc/tcfspasswd?
The file /etc/tcfspasswd contains some informations about the TCFS users,
like login name, encrypted user key.
In the next release of TCFS, this file will contain a lot of informations :)
- Question 3.7. Can I use the standard NFS protocol together TCFS?
Sure... you can use NFS and TCFS independently. They are different
filesystems, so, they do not create conflicts. Moreover, you can use the same
server machine for both NFS and TCFS.
- Question 3.8. Can I install the TCFS client and server on the same machine?
Sure... [See Q1.7 'Is TCFS suitable for encrypting file systems on non-networked machines - i.e., just a stand-alone system?']
- Question 3.9. How can I enable a user to use TCFS Filesystem's features?
Each user must have an encryption/decryption key in the /etc/tcfspasswd file.
This is done using tcfsgenkey command.
Section 4. User Information
Section 5. Getting Infos and Bugs Report
Section 6. Who, What and Why.
Section 7. Administrative information and acknowledgements.
Angelo Celentano