Skip to main content
QUICK REVIEW

[论文解读] Flexible Dynamic Information Flow Control in the Presence of Exceptions

Deian Stefan, Alejandro Russo|arXiv (Cornell University)|Jul 5, 2012
Security and Verification in Computing参考文献 13被引用 4
一句话总结

本文提出了一种使用 Haskell 中的带标签 I/O 单子(LIO)的动态、浮动标签信息流控制机制,通过运行时标签跟踪和许可边界强制实现机密性和完整性。该系统引入了对带标签异常和可变引用的新支持,证明了非干扰性和封闭性定理,并通过一个安全的会议评审系统(λChair)展示了其实际可行性。

ABSTRACT

We describe a new, dynamic, floating-label approach to language-based information flow control. A labeled IO monad, LIO, keeps track of a current label and permits restricted access to IO functionality. The current label floats to exceed the labels of all data observed and restricts what can be modified. Unlike other language-based work, LIO also bounds the current label with a current clearance that provides a form of discretionary access control. Computations may encapsulate and pass around the results of computations with different labels. In addition, the LIO monad offers a simple form of labeled mutable references and exception handling. We give precise semantics and prove confidentiality and integrity properties of a call-by-name λ-calculus and provide an implementation in Haskell.

研究动机与目标

  • 解决静态信息流控制在运行时用户和数据类型可动态添加的动态环境中所面临的局限性。
  • 提供一种灵活且实用的基于语言的信息流控制(IFC)系统,支持动态标签创建与强制执行,同时不牺牲安全性。
  • 引入许可机制作为自主访问控制手段,以限制当前标签并减少对敏感数据的暴露。
  • 在安全的带标签计算模型中实现对异常和可变状态的安全处理。
  • 通过一个真实应用场景——基于利益冲突和评审人分配的动态访问控制机制——展示该方法的实用性。

提出的方法

  • 设计一个带标签 I/O 单子(LIO),用于跟踪当前标签,并强制要求所有观察或修改的数据标签均小于或等于当前标签。
  • 引入许可机制,通过词法作用域限制当前标签,强制实施自主访问控制并缩小攻击面。
  • 实现 toLabeled 操作符,用于封装具有更高标签的计算结果,从而实现敏感数据在标签边界之间的安全传递。
  • 支持带标签的可变引用和异常处理,其中异常被赋予当前标签,以防止信息通过异常通道泄露。
  • 在带标签类型的名值演算(call-by-name λ-calculus)中形式化该系统,并证明非干扰性和封闭性定理。
  • 完全使用类型安全在 Haskell 中实现 LIO 库,证明整个系统可作为库构建,无需语言扩展。

实验结果

研究问题

  • RQ1如何设计一种动态、浮动标签的信息流控制机制,以支持基于用户输入或上下文的运行时标签创建?
  • RQ2能否将许可机制集成到基于语言的信息流控制机制中,以提供自主访问控制并降低隐蔽信道的风险?
  • RQ3如何在动态 IFC 系统中安全处理异常,而不会通过异常标签泄露敏感信息?
  • RQ4在不违反非干扰性原则的前提下,标签可变引用在动态 IFC 模型中能在多大程度上被安全支持?
  • RQ5在 Haskell 中采用纯库式方法实现 IFC,能否在保持实用性与可组合性的同时,实现强大的安全保证?

主要发现

  • LIO 系统强制执行非干扰性,证明低层级结果无法依赖高层级输入,从而防止信息泄露。
  • 许可机制有效限制了作用域内任何计算的标签,提供一种自主访问控制形式,减少可信代码表面。
  • 通过将异常标记为当前标签,系统实现了对异常的安全处理,防止信息通过异常通道泄露。
  • toLabeled 操作符实现了对高标签计算结果的安全封装与传递,支持对标签传播的细粒度控制。
  • 形式化模型与实现表明,动态 IFC 既具有表达力又足够安全,其安全保证可与静态方法相媲美。
  • λChair 系统原型表明,该模型能够安全地管理现实世界场景中的动态访问控制,包括利益冲突和评审人分配。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。