A Uniform Type Structure for Secure Information Flow

Kohie Honda and Nobuko Yoshida


The pi-calculus is a formalism of computing in which we can
compositionally represent dynamics of major programming constructs by
decomposing them into a single communication primitive, the name passing.
This work reports our experience in using a linear/affine
typed pi-calculus for analysis and development of type systems of
programming languages, focusing on secure information flow
analysis. After presenting a basic typed calculus, its type structure
is instrumented to capture secrecy. We demonstrate the usage of the
resulting calculus by a sound embedding of the dependency core
calculus (DCC) and by development of a novel type discipline for
imperative programs which properly extends both a secure
multi-threaded imperative language by Volpano and Smith and
(a call-by-value version of) DCC. In each case, the embedding gives a
simple proof of noninterference.

This paper is a full version of its earlier version in POPL'02, with
detailed proofs. The emphasis is on illustrating, through concrete
examples, how the typed pi-calculus can be used for developing and
justifying a non-trivial type-based analysis of programming languages.
Along this spirit, the presentation of the call-by-value version of
DCC and the extended version of Smith-Volpano language is considerably
simplified from the POPL'02 version by reformulation of encodings and
a simplification of the linear/affine pi-calculus with state. The
present version also gives more comparisons with related work,
including a formal conservative extenstion result with respect to
Smith's recent secure imperative language.