一句话:提出 λIFC★,在不牺牲类型引导分类与 no-sensitive-upgrade 下同时满足非干涉与渐进保证。
渐进信息流控制语言需兼顾非干涉与渐进保证,但已有工作(如 GSL Ref 等)发现二者存在张力,只能牺牲类型引导分类、no-sensitive-upgrade 或二者之一。本文提出 λIFC★,重新将未知标签 ★ 纳入运行时安全标签,保留 GSL Ref 的类型引导分类,并用标准 no-sensitive-upgrade 机制阻止可变引用引发的隐式流。其语义首次采用 coercion calculi(Henglein 风格)刻画渐进信息流控制。作者形式化定义 λIFC★,证明渐进保证与非干涉,说明无需牺牲即可同时满足两项性质。
Languages with gradual information-flow control combine static and dynamic techniques to prevent security leaks. Gradual languages should satisfy the gradual guarantee: programs that only differ in the precision of their type annotations should behave the same modulo cast errors. Unfortunately, Toro et al. [ 2018 ] identify a tension between the gradual guarantee and information security; they were unable to satisfy both properties in the language GSL Ref and had to settle for only satisfying information-flow security. Azevedo de Amorim et al. [ 2020 ] show that by sacrificing type-guided classification, one obtains a language that satisfies both noninterference and the gradual guarantee. Bichhawat et al. [ 2021 ] show that both properties can be satisfied by sacrificing the no-sensitive-upgrade mechanism, replacing it with a static analysis. In this paper we present a language design, λ IFC ★ , that satisfies both noninterference and the gradual guarantee without making any sacrifices. We keep the type-guided classification of GSL Ref and use the standard no-sensitive-upgrade mechanism to prevent implicit flows through mutable references. The key to the design of λ IFC ★ is to walk back the decision in GSL Ref to include the unknown label ★ among the runtime security labels. We give a formal definition of λ IFC ★ , prove the gradual guarantee, and prove noninterference. Of technical note, the semantics of λ IFC ★ is the first gradual information-flow control language to be specified using coercion calculi (a la Henglein), thereby expanding the coercion-based theory of gradual typing.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{ChenS24,
title = {Quest Complete: The Holy Grail of Gradual Security},
author = {Tianyu Chen and Jeremy G. Siek},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {PLDI},
year = {2024},
doi = {10.1145/3656442}
}