Although cryptographic techniques are playing an increasingly important role in modern computing system security, user-level tools for encrypting file data are cumbersome and suffer from a number of inherent vulnerabilities. The Cryptographic File System (CFS) pushes encryption services into the file system itself. CFS supports secure storage at the system level through a standard Unix file system interface to encrypted files. Users associate a cryptographic key with the directories they wish to protect. Files in these directories (as well as their pathname components) are transparently encrypted and decrypted with the specified key without further user intervention; cleartext is never stored on a disk or sent to a remote file server. CFS can use any available file system for its underlying storage without modification, including remote file servers such as NFS. System management functions, such as file backup, work in a normal manner and without knowledge of the key.
This paper describes the design and implementation of CFS under Unix. Encryption techniques for file system-level encryption are described, and general issues of cryptographic system interfaces to support routine secure computing are discussed.
[1]
Steve R. Kleiman,et al.
Vnodes: An Architecture for Multiple File System Types in Sun UNIX
,
1986,
USENIX Summer.
[2]
Xuejia Lai,et al.
A Proposal for a New Block Encryption Standard
,
1991,
EUROCRYPT.
[3]
Ralph Howard,et al.
Data encryption standard
,
1987
.
[4]
Mahadev Satyanarayanan,et al.
Scale and performance in a distributed file system
,
1988,
TOCS.
[5]
David A. Goldberg,et al.
Design and Implementation of the Sun Network Filesystem
,
1985,
USENIX Conference Proceedings.