Data storage on personal computers is inherently insecure as authentication and file access control are handled by the host operating system. These security provisions can be bypassed if another operating system is used on the same personal computer. To address this problem, file encryptors, disk encryptors and file system encryptors were developed, each with its drawbacks. By combining the strengths of file encryptors and file system encryptors, these drawbacks can be overcome. To achieve this, a user space file system library must be used. The file system must also have its own authentication and authorization routines to provide uniform access across multiple operating systems. This paper describes the design and development of such a file system for Linux using the FUSE library and the OpenSSL library. The design for this file system was mathematically modelled and formally verified using Alloy analyser. The file system requires the user to provide user name and password for authentication. Each file is encrypted using a separate key to provide security against cryptanalysis. This key is encrypted using the owner’s private key to allow for change of ownership. The password is used to decrypt the user’s private key. The developed file system was tested for authentication and access control successfully. The optimal performance of the file system was perceived at file sizes between 1 kilobyte and 256 megabytes. The performance degradation due to encryption was also measured and found to be within usable limits. This stackable file system can be used on all Unix clones that have FUSE and OpenSSL libraries.
[1]
Yongdae Kim,et al.
Securing distributed storage: challenges, techniques, and systems
,
2005,
StorageSS '05.
[2]
Erez Zadok,et al.
Extending File Systems Using Stackable Templates
,
1999,
USENIX Annual Technical Conference, General Track.
[3]
Matt Blaze,et al.
Key Management in an Encrypting File System
,
1994,
USENIX Summer.
[4]
Erez Zadok,et al.
Cryptographic File Systems Performance: What You Dont Know Can Hurt You
,
2003,
Second IEEE International Security in Storage Workshop.
[5]
Erez Zadok,et al.
Cryptfs: A Stackable Vnode Level Encryption File System
,
1998
.
[6]
David Mazières,et al.
Separating key management from file system security
,
1999,
SOSP.
[7]
Gerald J. Popek,et al.
Frigate: An Object-Oriented File System for Ordinary Users
,
1997,
COOTS.
[8]
Ashish Gehani,et al.
Performance and extension of user space file systems
,
2010,
SAC '10.
[9]
James P. Hughes,et al.
Architecture of the Secure File System
,
2001,
2001 Eighteenth IEEE Symposium on Mass Storage Systems and Technologies.