DeepAI AI Chat
Log In Sign Up

First-order Gradual Information Flow Types with Gradual Guarantees

by   Abhishek Bichhawat, et al.

Gradual type systems seamlessly integrate statically-typed programs with dynamically-typed programs. The runtime for gradual type systems can be viewed as a monitor which refines and enforces constraints to ensure type-preservation. Gradual typing has been applied to information flow types, where information flow monitors are derived from gradual information flow types. However, existing work gives up the dynamic gradual guarantee – the property that loosening the policies of a program should not cause more runtime errors – in favor of noninterference – the key security property for information flow control systems. In this paper, we re-examine the connection between gradual information flow types and information flow monitors, and identify the root cause for the tension between satisfying gradual guarantees and noninterference. We develop a runtime semantics for a simple imperative language with gradual information flow types that provides both noninterference and the dynamic gradual guarantee. We leverage a proof technique developed for FlowML, which reduces noninterference proofs to preservation proofs, to prove the key security property.


page 1

page 2

page 3

page 4


Towards a Flow- and Path-Sensitive Information Flow Analysis: Technical Report

This paper investigates a flow- and path-sensitive static information fl...

Secure Information Flow Typing in LUSTRE

Synchronous reactive data flow is a paradigm that provides a high-level ...

Giving Semantics to Program-Counter Labels via Secure Effects

Type systems designed for information-flow control commonly use a progra...

Normalising Lustre Preserves Security

The synchronous reactive data flow language LUSTRE is an expressive lang...

Graduality from Embedding-projection Pairs (Extended Version)

Gradually typed languages allow statically typed and dynamically typed c...

Typed-based Relaxed Noninterference for Free

Despite the clear need for specifying and enforcing information flow pol...

VST-Flow: Fine-grained low-level reasoning about real-world C code

We show how support for information-flow security proofs could be added ...