🤖 AI Summary
Existing language-level information-flow control (IFC) frameworks struggle to model asymmetric security assumptions—such as semi-honest agents—due to their inherent symmetry in confidentiality and integrity guarantees.
Method: This paper introduces a lattice-based algebraic semantic framework that formally captures *asymmetric delegation*: the independent and partial delegation of confidentiality and integrity policies. The framework uniformly supports secure downgrading, non-malleable information flow (NMIF) guarantees, and static inference of bounded-label polymorphism. It innovatively incorporates NMIF constraints to preserve security during downgrading and designs an efficient label inference algorithm alongside a sound NMIF static verifier.
Results: The framework enables writing label-agnostic, generic secure code, achieving a balanced trade-off among expressiveness, security, and practicality. Empirical evaluation on real-world programs demonstrates its feasibility, effectiveness, and scalability in enforcing fine-grained, asymmetric IFC policies.
📝 Abstract
Language-based information flow control (IFC) enables reasoning about and enforcing security policies in decentralized applications. While information flow properties are relatively extensional and compositional, designing expressive systems that enforce such properties remains challenging. In particular, it can be difficult to use IFC labels to model certain security assumptions, such as semi-honest agents. Motivated by these modeling limitations, we study the algebraic semantics of lattice-based IFC label models, and propose a semantic framework that allows formalizing asymmetric delegation, which is partial delegation of confidentiality or integrity. Our framework supports downgrading of information and ensures their safety through nonmalleable information flow (NMIF). To demonstrate the practicality of our framework, we design and implement a novel algorithm that statically checks NMIF and a label inference procedure that efficiently supports bounded label polymorphism, allowing users to write code generic with respect to labels.