This tutorial provides a complete and homogeneous account of the latest advances in fine- and coarse-grained dynamic information-flow control (IFC) security. Since the 70s, the programming language and the operating system communities have proposed different IFC approaches. IFC operating systems track information flows in a coarse-grained fashion, at the granularity of a process. In contrast, traditional language-based approaches to IFC are fine-grained: they track information flows at the granularity of program variables. For decades, researchers believed coarse-grained IFC to be strictly less permissive than fine-grained IFC -- coarse-grained IFC systems seem inherently less precise because they track less information -- and so granularity appeared to be a fundamental feature of IFC systems. We show that the granularity of the tracking system does not fundamentally restrict how precise or permissive dynamic IFC systems can be. To this end, we mechanize two mostly standard languages, one with a fine-grained dynamic IFC system and the other with a coarse-grained dynamic IFC system, and prove a semantics-preserving translation from each language to the other. In addition, we derive the standard security property of non-interference of each language from that of the other via our verified translation. These translations stand to have important implications on the usability of IFC approaches. The coarse- to fine-grained direction can be used to remove the label annotation burden that fine-grained systems impose on developers, while the fine- to coarse-grained translation shows that coarse-grained systems -- which are easier to design and implement -- can track information as precisely as fine-grained systems and provides an algorithm for automatically retrofitting legacy applications to run on existing coarse-grained systems.
翻译:这个教程完整和一致地描述了微小和粗粗粗的动态信息流控制(IFC)安全的最新进展。自70年代以来,编程语言和操作系统社区都提出了不同的IFC方法。IFC操作系统以粗糙、粗糙的方式,在一个过程的颗粒上跟踪信息流动。相比之下,传统的基于语言的IFC方法是细微的:它们跟踪程序变量颗粒的信息流动。几十年来,研究人员认为粗粗粗的IFC系统比精细的IFC系统严格不那么宽松。粗糙的IFC系统由于跟踪信息较少,其方向和操作系统本身似乎不那么精确。我们显示,跟踪系统的颗粒性并没有从根本上限制其精确或宽松的动态IFC系统。为此,我们机械化了两种大多数标准语言,其中一种是精细粗的、粗易变现的 IFCFC系统,另一个是精细的精细的、精细的IFC翻译系统 -- -- 粗精细的IFC系统,因为其精细的走向本的走向精细的IFC翻译系统 -- -- 每一个的翻译系统都是我们通过SFCFCSDD系统运行的精细的翻译系统。