首页> 外文期刊>LIPIcs : Leibniz International Proceedings in Informatics >Verifying That a Compiler Preserves Concurrent Value-Dependent Information-Flow Security
【24h】

Verifying That a Compiler Preserves Concurrent Value-Dependent Information-Flow Security

机译:验证编译器保留并发的值相关的信息流安全性

获取原文
           

摘要

It is common to prove by reasoning over source code that programs do not leak sensitive data. But doing so leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. This task is complicated when programs enforce value-dependent information-flow security properties (in which classification of locations can vary depending on values in other locations) and complicated further when programs exploit shared-variable concurrency. Prior work has formally defined a notion of concurrency-aware refinement for preserving value-dependent security properties. However, that notion is considerably more complex than standard refinement definitions typically applied in the verification of semantics preservation by compilers. To date it remains unclear whether it can be applied to a realistic compiler, because there exist no general decomposition principles for separating it into smaller, more familiar, proof obligations. In this work, we provide such a decomposition principle, which we show can almost halve the complexity of proving secure refinement. Further, we demonstrate its applicability to secure compilation, by proving in Isabelle/HOL the preservation of value-dependent security by a proof-of-concept compiler from an imperative While language to a generic RISC-style assembly language, for programs with shared-memory concurrency mediated by locking primitives. Finally, we execute our compiler in Isabelle on a While language model of the Cross Domain Desktop Compositor, demonstrating to our knowledge the first use of a compiler verification result to carry an information-flow security property down to the assembly-level model of a non-trivial concurrent program.
机译:通常通过对源代码进行推理来证明程序不会泄漏敏感数据。但是,这样做在推理和现实之间留下了空白,只有通过考虑编译器的行为才能填补空白。当程序强制执行依赖于值的信息流安全属性(其中位置的分类可以根据其他位置的值而变化)时,此任务将变得很复杂,而当程序利用共享变量并发时,此任务将变得更加复杂。先前的工作已经正式定义了并发感知细化的概念,用于保留基于值的安全属性。但是,此概念比通常在编译器验证语义保留的过程中使用的标准细化定义要复杂得多。迄今为止,尚不清楚是否可以将其应用于实际的编译器,因为不存在将其划分为更小,更熟悉的证明义务的通用分解原理。在这项工作中,我们提供了这样的分解原理,我们证明了该分解原理几乎可以将证明安全细化的复杂性减半。此外,我们通过在Isabelle / HOL中通过概念验证编译器从命令式的While语言到通用的RISC样式的汇编语言证明具有价值相关的安全性,证明了其对编译安全的适用性。由锁定原语介导的内存并发。最后,我们在Cross Domain Desktop Compositor的While语言模型中在Isabelle中执行编译器,以我们的知识展示了首次使用编译器验证结果将信息流安全性传递到非组装程序的装配级模型中。 -平凡的并发程序。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号