Secure Implementation of Channel Abstractions

Communication in distributed systems often relies on useful abstractions such as channels, remote procedure calls, and remote method invocations. The implementations of these abstractions sometimes provide security properties, in particular through encryption. In this paper we study those security properties, focusing on channel abstractions. We introduce a simple high-level language that includes constructs for creating and using secure channels. The language is a variant of the join-calculus and belongs to the same family as the pi-calculus. We show how to translate the high-level language into a lower-level language that includes cryptographic primitives. In this translation, we map communication on secure channels to encrypted communication on public channels. We obtain a correctness theorem for our translation; this theorem implies that one can reason about programs in the high-level language without mentioning the subtle cryptographic protocols used in their lower-level implementation. 2002 Elsevier Science (USA).

[1]  Rance Cleaveland,et al.  Divergence and Fair Testing , 1995, ICALP.

[2]  B. Lampson,et al.  Authentication in distributed systems: theory and practice , 1991, TOCS.

[3]  John Linn,et al.  Generic interface to security services , 1994, Comput. Commun..

[4]  John McLean,et al.  A General Theory of Composition for a Class of "Possibilistic'' Properties , 1996, IEEE Trans. Software Eng..

[5]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[6]  Andrew Birrell Secure communication using remote procedure calls , 1985, TOCS.

[7]  Martín Abadi,et al.  A Calculus for Cryptographic Protocols: The spi Calculus , 1999, Inf. Comput..

[8]  Martín Abadi,et al.  Authentication primitives and their compilation , 2000, POPL '00.

[9]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[10]  Edward Wobber,et al.  The AltaVista Tunnel Using the Internet to Extend Corporate Networks , 1997, Digit. Tech. J..

[11]  R. Atkinson,et al.  A Socket-Based Key Management API ( and Surrounding Infrastructure ) , 1996 .

[12]  Jean-Jacques Lévy,et al.  A Calculus of Mobile Agents , 1996, CONCUR.

[13]  Martín Abadi,et al.  Secure communications processing for distributed languages , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[14]  Cédric Fournet,et al.  A Hierarchy of Equivalences for Asynchronous Calculi , 1998, ICALP.

[15]  Roger Riggs,et al.  A Distributed Object Model for the Java System , 1996, Comput. Syst..

[16]  Leslie Lamport,et al.  Artificial Intelligence and Language Processing ]acques Cohen Editor a Simple Approach to Specifying Concurrent Systems , 2022 .

[17]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[18]  Martín Abadi,et al.  Secure implementation of channel abstractions , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[19]  John C. Mitchell,et al.  A probabilistic poly-time framework for protocol analysis , 1998, CCS '98.

[20]  Cosimo Laneve,et al.  Implicit Typing à la ML for the Join-Calculus , 1997, CONCUR.

[21]  Nobuko Yoshida,et al.  On Reduction-Based Process Semantics , 1995, Theor. Comput. Sci..

[22]  Cédric Fournet,et al.  The reflexive CHAM and the join-calculus , 1996, POPL '96.

[23]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[24]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[25]  John Linn,et al.  Generic Security Service Application Program Interface , 1993, RFC.

[26]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[27]  Claudia Eckert On security models , 1996, SEC.

[28]  Martín Abadi,et al.  A calculus for cryptographic protocols: the spi calculus , 1997, CCS '97.

[29]  Martín Abadi,et al.  Protection in Programming-Language Translations , 1998, ICALP.

[30]  Martín Abadi,et al.  A Top-Down Look at a Secure Message , 1999, FSTTCS.

[31]  Martín Abadi,et al.  Secrecy by typing in security protocols , 1999, JACM.

[32]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

[33]  Arend Rensink,et al.  Fair testing , 1995, Inf. Comput..

[34]  Mads Dam Proving trust in systems of second-order processes , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[35]  Martín Abadi,et al.  Secure Network Objects , 1999, Secure Internet Programming.

[36]  Martín Abadi,et al.  Secure Web Tunneling , 1998, Comput. Networks.

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

[38]  Paul C. van Oorschot,et al.  Authentication and authenticated key exchanges , 1992, Des. Codes Cryptogr..

[39]  Alfred Menezes,et al.  Handbook of Applied Cryptography , 2018 .

[40]  Martín Abadi,et al.  Secure network objects , 1996, Proceedings 1996 IEEE Symposium on Security and Privacy.

[41]  Cosimo Laneve,et al.  Bisimulations in the join-calculus , 1998, PROCOMET.

[42]  Hugo Krawczyk,et al.  Design and Implementation of Modular Key Management Protocol and IP Secure Tunnel on AIX , 1995, USENIX Security Symposium.

[43]  Robin Milner,et al.  The Problem of "Weak Bisimulation up to" , 1992, CONCUR.

[44]  Martín Abadi,et al.  Reasoning about Cryptographic Protocols in the Spi Calculus , 1997, CONCUR.