Strongbox: A System for Self-Securing Programs

Security is a pressing problem for distributed systems. Distributed systems exchange data among a variety of users over a variety of sites, which may be geographically separated. A user who stores important data on processor A must trust not just processor A but also the processors B C D . . . with which A communicates. The distributed security problem is difficult, and few major distributed systems attempt to address it. In fact, conventional approaches to computer security are so complex that they actually discourage designers from trying to build a secure distributed system: A software engineer who wishes to build a secure distributed data application finds that he or she must depend on the security of a distributed database which depends on the security of a distributed file system which depends on the security of a distributed operating system kernel, etc. Under this traditional design approach, security necessarily becomes a secondary concern since just making an (unsecure) distributed system work efficiently is a daunting task. And adding security raises the difficulty by an order of magnitude. We propose a new model of security: self-securing programs. Self-securing programs are designed to run in environments where only a minimal number of

[1]  John McCrindle,et al.  Smart Cards , 1990 .

[2]  Alfred Z. Spector,et al.  Distributed Transaction Processing and The Camelot System , 1987 .

[3]  Michael O. Rabin,et al.  Probabilistic Algorithms in Finite Fields , 1980, SIAM J. Comput..

[4]  I. Niven,et al.  An introduction to the theory of numbers , 1961 .

[5]  Maurice Herlihy,et al.  How to Make Replicated Data Secure , 1987, CRYPTO.

[6]  J. Doug Tygar,et al.  ITOSS: An Integrated Toolkit For Operating System Security , 1989, FODO.

[7]  B. Chor Two Issues in Public Key Cryptography: RSA Bit Security and a New Knapsack Type System , 1986 .

[8]  Jim Gray,et al.  A Transaction Model , 1980, ICALP.

[9]  Maurice Herlihy,et al.  General quorum consensus : a replication method for abstract data types , 1984 .

[10]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[11]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[12]  Richard M. Karp,et al.  Efficient Randomized Pattern-Matching Algorithms , 1987, IBM J. Res. Dev..

[13]  Steve R. White,et al.  ABYSS: ATrusted Architecture for Software Protection , 1987, 1987 IEEE Symposium on Security and Privacy.

[14]  Roger M. Needham,et al.  Using encryption for authentication in large networks of computers , 1978, CACM.

[15]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[16]  Maurice Herlihy,et al.  Implementing Distributed Capabilities without a Trusted Kernel , 1991 .

[17]  Alfred Z. Spector,et al.  Transactions: a construct for reliable distributed computing , 1983, OPSR.

[18]  Joshua J. Bloch The Camelot library: A C language extension for programming a general purpose distributed transaction system , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[19]  M. Rabin DIGITALIZED SIGNATURES AND PUBLIC-KEY FUNCTIONS AS INTRACTABLE AS FACTORIZATION , 1979 .

[20]  Gary L. Miller,et al.  On taking roots in finite fields , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[21]  Lily B. Mummert,et al.  Camelot and Avalon: A Distributed Transaction Facility , 1991 .

[22]  Manuel Blum,et al.  How to generate cryptographically strong sequences of pseudo random bits , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[23]  L. Devroye Non-Uniform Random Variate Generation , 1986 .

[24]  Martín Abadi,et al.  A logic of authentication , 1990, TOCS.

[25]  Adi Shamir,et al.  The discrete log is very discreet , 1990, STOC '90.

[26]  Amos Fiat,et al.  Zero Knowledge Proofs of Identity , 1987, STOC.

[27]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

[28]  Silvio Micali,et al.  Probabilistic encryption & how to play mental poker keeping secret all partial information , 1982, STOC '82.

[29]  Alfred Z. Spector Camelot : a distributed transaction facility for mach and the internet - an interim report , 1987 .

[30]  John E. Dobson,et al.  Reliability and Security Issues in Distributed Computing Systems , 1986, Symposium on Reliability in Distributed Software and Database Systems.

[31]  E. Berlekamp Factoring polynomials over large finite fields* , 1970, SYMSAC '71.

[32]  Roger M. Needham,et al.  Using cryptography for authentication , 1990 .

[33]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.