Security-typed languages enforce secrecy or integrity policies by type-checking. This paper investigates continuation-passing style (CPS) as a means of proving that such languages enforce noninterference and as a rst step towards understanding their compilation. We present a low-level, secure calculus with higher-order, imperative features and linear continuations. Linear continuations impose a stack discipline on the control
ow of programs. This additional structure in the type system lets us establish a strong information-ow security property called noninterference. We prove that our CPS target language enjoys the noninterference property and we show how to translate secure high-level programs to this low-level language. This noninterference proof is the rst of its kind for a language with higher-order functions and state. 1.
|
811
|
Proof-Carrying Code
– Necula
- 1997
|
|
657
|
Advanced Compiler Design and Implementation
– Muchnick
- 1997
|
|
588
|
Compiling with Continuations
– Appel
- 1992
|
|
552
|
Partial evaluation and automatic program generation
– Jones, Gomard, et al.
- 1993
|
|
483
|
From System F to typed assembly language
– Morrisett, Walker, et al.
- 1998
|
|
479
|
On the unity of logic
– Girard
- 1993
|
|
432
|
Security policy and security models
– Goguen, Meseguer
- 1982
|
|
393
|
A syntactic approach to type soundness
– Wright, Felleisen
- 1994
|
|
329
|
A lattice model of secure information flow
– Denning
- 1976
|
|
251
|
Call-by-name, call-by-value and the *-calculus
– Plotkin
- 1975
|
|
241
|
A sound type system for secure flow analysis
– Volpano, Smith, et al.
- 1996
|
|
231
|
Certification of programs for secure information flow
– Denning, Denning
- 1977
|
|
230
|
JFlow: Practical Mostly-Static Information Flow Control
– Myers
- 1999
|
|
211
|
Computational interpretations of linear logic
– Abramsky
- 1993
|
|
205
|
The essence of compiling with continuations
– Flanagan, Sabry, et al.
- 1993
|
|
179
|
The SLam calculus: programming with secrecy and integrity
– Heintze, Riecke
- 1998
|
|
168
|
Typed memory management in a calculus of capabilities
– Crary, Walker, et al.
- 1999
|
|
153
|
Secure information flow in a multithreaded imperative language
– Smith, Volpano
- 1998
|
|
148
|
A core calculus of dependency
– Abadi, Banerjee, et al.
- 1999
|
|
128
|
Call-by-name, call-by-value and the λ-calculus
– Plotkin
- 1975
|
|
113
|
A decentralized model for information flow control
– Myers, Liskov
- 1997
|
|
100
|
Linear types can change the world
– WADLER
- 1990
|
|
96
|
Transforming out timing leaks
– Agat
- 2000
|
|
80
|
Probabilistic noninterference for multithreaded programs
– Sabelfeld, Sands
- 2000
|
|
70
|
For a better support of static data flow
– Consel, Danvy
|
|
68
|
A PER model of secure information flow in sequential programs
– Sabelfeld, Sands
|
|
67
|
Explicit polymorphism and CPS conversion
– Harper, Lillibridge
- 1993
|
|
58
|
Information flow inference for free
– Pottier, Conchon
- 2000
|
|
56
|
Representing control: A study of the CPS transformation
– Danvy, Fillinski
- 1992
|
|
56
|
A taste of linear logic
– Wadler
- 1993
|
|
54
|
Abstracting control
– Danvy, Filinski
- 1990
|
|
50
|
A uniform type structure for secure information flow
– Honda, Yoshida
- 2002
|
|
41
|
Secure information flow as typed process behaviour
– Honda, Vasconcelos, et al.
- 2000
|
|
33
|
A denotational framework for data flow analysis
– Nielson
- 1982
|
|
29
|
Linear continuations
– Filinski
- 1992
|
|
21
|
Is continuation-passing useful for data flow analysis
– Sabry, Felleisen
- 1994
|
|
19
|
Syntactic Accidents in Program Analysis: On the Impact of the CPS Transformation
– Damian, Danvy
- 2000
|
|
18
|
Semantics-directed compilation of non-linear patterns
– Danvy
- 1991
|
|
17
|
On proving syntactic properties of CPS programs
– Danvy, Dzafic, et al.
|
|
15
|
Formalizing implementation strategies for first-class continuations
– Danvy
|
|
12
|
Properties of terms in continuation-passing style in an ordered logical framework
– Polakow, Pfenning
- 2000
|
|
10
|
Continuation passing transformation and abstract interpretation
– Filho, Burn
- 1993
|
|
8
|
A classical linear lambda calculus
– Bierman
- 1999
|
|
7
|
A PER model of secure information in sequential programs
– Sabelfeld, Sands
- 1999
|
|
6
|
Reasoning about
– Sabry, Felleisen
- 1993
|
|
3
|
Polymorphic Type Assignment and
– Harper, Lillibridge
- 1993
|
|
2
|
2002, `CPS Transformation of Flow Information
– Palsberg, Wand
- 2002
|
|
2
|
For a better support of static data
– Consel, Danvy
- 1991
|
|
1
|
Thielecke: 2001, `Linearly Used Continuations
– Berdine, O'Hearn, et al.
|
|
1
|
Myers: 2001, `Secure Information Flow and CPS
– Zdancewic, C
|