LJGS is a lightweight Java core calculus with a gradual security type system. The calculus
guarantees secure information flow for sequential, class-based, object-oriented programming with
mutable objects and virtual method calls. An LJGS program is
composed of fragments that are checked either statically or
dynamically. Statically checked fragments adhere to a security type system so
that they incur no run-time penalty whereas
dynamically checked fragments rely on run-time security labels.
The programmer marks the boundaries between static and dynamic
checking with casts so that it is always clear whether a program
fragment requires run-time checks.
LJGS requires security annotations on fields and methods.
A field annotation either specifies a fixed static security level or it prescribes dynamic
checking. A method annotation specifies a constrained polymorphic security signature.
The types of local variables in method bodies are analyzed flow-sensitively and
require no annotation. The dynamic checking of fields relies on a static points-to analysis to approximate implicit flows.
We prove type soundness and non-interference for LJGS.
Thu 21 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
Thu 21 Jul
Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:45 - 15:00 | |||
13:45 25mTalk | LJGS: Gradual Security Types for Object-Oriented Languages Research Track Link to publication DOI Media Attached | ||
14:10 25mTalk | Lightweight session programming in Scala Research Track Link to publication DOI Media Attached | ||
14:35 25mTalk | Trace Typing: An Approach for Evaluating Retrofitted Type Systems Research Track Esben Andreasen Aarhus University, Colin Gordon Drexel University, Satish Chandra Samsung Research America, Manu Sridharan Samsung Research America, Frank Tip Samsung Research America, Koushik Sen University of California, Berkeley Link to publication DOI Pre-print Media Attached |