当前位置: X-MOL 学术ACM Trans. Program. Lang. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Modular Product Programs
ACM Transactions on Programming Languages and Systems ( IF 1.5 ) Pub Date : 2019-11-21 , DOI: 10.1145/3324783
Marco Eilers 1 , Peter Müller 1 , Samuel Hitz 1
Affiliation  

Many interesting program properties like determinism or information flow security are hyperproperties, that is, they relate multiple executions of the same program. Hyperproperties can be verified using relational logics, but these logics require dedicated tool support and are difficult to automate. Alternatively, constructions such as self-composition represent multiple executions of a program by one product program, thereby reducing hyperproperties of the original program to trace properties of the product. However, existing constructions do not fully support procedure specifications, for instance, to derive the determinism of a caller from the determinism of a callee, making verification non-modular. We present modular product programs, a novel kind of product program that permits hyperproperties in procedure specifications and, thus, can reason about calls modularly. We provide a general formalization of our product construction and prove it sound and complete. We demonstrate its expressiveness by applying it to information flow security with advanced features such as declassification and termination-sensitivity. Modular product programs can be verified using off-the-shelf verifiers; we have implemented our approach for both secure information flow and general hyperproperties using the Viper verification infrastructure. Our evaluation demonstrates that modular product programs can be used to prove hyperproperties for challenging examples in reasonable time.

中文翻译:

模块化产品计划

许多有趣的程序属性(如确定性或信息流安全性)都是超属性,也就是说,它们与同一程序的多次执行相关。可以使用关系逻辑来验证超属性,但这些逻辑需要专用工具支持并且难以自动化。或者,诸如自组合之类的结构表示一个产品程序对一个程序的多次执行,从而减少了原始程序的超属性以跟踪产品的属性。然而,现有的结构并不完全支持过程规范,例如,从被调用者的确定性中推导出调用者的确定性,使得验证非模块化。我们提出了模块化产品程序,这是一种新颖的产品程序,它允许程序规范中的超属性,因此,可以对调用进行模块化推理。我们提供了我们产品结构的一般形式,并证明它是健全和完整的。我们通过将其应用于具有高级功能(例如解密和终止敏感性)的信息流安全性来展示其表现力。模块化产品程序可以使用现成的验证器进行验证;我们已经使用 Viper 验证基础设施实现了我们的安全信息流和通用超属性方法。我们的评估表明,模块化产品程序可用于在合理的时间内证明具有挑战性的示例的超属性。我们通过将其应用于具有高级功能(例如解密和终止敏感性)的信息流安全性来展示其表现力。模块化产品程序可以使用现成的验证器进行验证;我们已经使用 Viper 验证基础设施实现了我们的安全信息流和通用超属性方法。我们的评估表明,模块化产品程序可用于在合理的时间内证明具有挑战性的示例的超属性。我们通过将其应用于具有高级功能(例如解密和终止敏感性)的信息流安全性来展示其表现力。模块化产品程序可以使用现成的验证器进行验证;我们已经使用 Viper 验证基础设施实现了我们的安全信息流和通用超属性方法。我们的评估表明,模块化产品程序可用于在合理的时间内证明具有挑战性的示例的超属性。
更新日期:2019-11-21
down
wechat
bug