Reducing TCB complexity for security-sensitive applications
- 18 April 2006
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGOPS Operating Systems Review
- Vol. 40 (4), 161-174
- https://doi.org/10.1145/1218063.1217951
Abstract
The large size and high complexity of security-sensitive applications and systems software is a primary cause for their poor testability and high vulnerability. One approach to alleviate this problem is to extract the security-sensitive parts of application and systems software, thereby reducing the size and complexity of software that needs to be trusted. At the system software level, we use the Nizza architecture which relies on a kernelized trusted computing base (TCB) and on the reuse of legacy code using trusted wrappers to minimize the size of the TCB. At the application level, we extract the security-sensitive portions of an already existing application into an AppCore. The AppCore is executed as a trusted process in the Nizza architecture while the rest of the application executes on a virtualized, untrusted legacy operating system. In three case studies of real-world applications (e-commerce transaction client, VPN gateway and digital signatures in an e-mail client), we achieved a considerable reduction in code size and complexity. In contrast to the few hundred thousand lines of current application software code running on millions of lines of systems software code, we have AppCores with tens of thousands of lines of code running on a hundred thousand lines of systems software code. We also show the performance penalty of AppCores to be modest (a few percent) compared to current software.Keywords
This publication has 14 references indexed in Scilit:
- A Nitpicker’s guide to a minimal-complexity secure GUIPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- Implementing an untrusted operating system on trusted hardwarePublished by Association for Computing Machinery (ACM) ,2003
- Xen and the art of virtualizationPublished by Association for Computing Machinery (ACM) ,2003
- Bugs as deviant behaviorPublished by Association for Computing Machinery (ACM) ,2001
- Quantitative analysis of faults and failures in a complex software systemIEEE Transactions on Software Engineering, 2000
- EROSPublished by Association for Computing Machinery (ACM) ,1999
- The performance of μ-kernel-based systemsPublished by Association for Computing Machinery (ACM) ,1997
- On micro-kernel constructionPublished by Association for Computing Machinery (ACM) ,1995
- An Empirical Study of a Syntactic Complexity FamilyIEEE Transactions on Software Engineering, 1983
- The protection of information in computer systemsProceedings of the IEEE, 1975