一句话:提出多面值机制,为动态信息流控制提供避免卡死执行的终止不敏感非干涉保障,并处理异常、解密与许可。
JavaScript 中不受信任代码常以完整权限运行,导致跨站脚本和恶意广告等安全问题,信息流控制旨在防止数据机密性与完整性被破坏。本文提出并研究“多面值”(faceted values)机制,以动态方式实施信息流安全,避免 no-sensitive-upgrade 等技术可能造成的卡死执行(stuck execution)。多面值可同时模拟不同安全级别下的执行,从而保证终止不敏感非干涉(termination-insensitive noninterference)。文章进一步探讨多面值与异常、解密(declassification)和 clearance 的交互,分析该机制在这些语言特性下的行为与保障。
JavaScript is the source of many security problems, including cross-site scripting attacks and malicious advertising code. Central to these problems is the fact that code from untrusted sources runs with full privileges. Information flow controls help prevent violations of data confidentiality and integrity. This article explores faceted values , a mechanism for providing information flow security in a dynamic manner that avoids the stuck executions of some prior approaches, such as the no-sensitive-upgrade technique. Faceted values simultaneously simulate multiple executions for different security levels to guarantee termination-insensitive noninterference. We also explore the interaction of faceted values with exceptions, declassification, and clearance.
@article{AustinSF17,
title = {Multiple Facets for Dynamic Information Flow with Exceptions},
author = {Thomas H. Austin and Tommy Schmitz and Cormac Flanagan},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {39},
number = {3},
year = {2017},
doi = {10.1145/3024086}
}