并发程序的自动化定量信息流分析
1. 引言
安全信息流是评估系统安全性的严格技术。若系统不向公共输出泄露任何秘密信息,则满足保密性要求。然而,实施无泄漏策略过于严格,实际中系统的安全策略往往允许少量泄漏。例如,密码检查程序在提示用户输入错误密码时,会泄露关于密码不是什么的信息。定量信息流正是为克服这一缺陷而出现的成熟方法。
给定一个具有秘密(高保密性)输入和公共(低保密性)输出的系统,定量信息流旨在衡量信息泄漏的程度,即攻击者通过观察输出能推断出的关于秘密输入的信息量。它广泛应用于分析定时攻击、差分隐私、匿名协议和加密算法等领域。
对于一个有秘密输入和公共输出的程序,以及能执行程序并观察公共输出的攻击者,常用不确定性的概念来衡量泄漏的信息量。在执行程序前,攻击者对秘密有初始不确定性,这由其对秘密的先验知识决定。执行程序并观察输出后,攻击者可能推断出关于秘密的信息,从而降低不确定性。信息泄漏可直观定义为:泄漏信息 = 初始不确定性 - 剩余不确定性。
本文提出了一种实用且自动化的形式化方法,用于量化终止并发程序的信息泄漏。该方法考虑了程序执行中间状态的泄漏以及调度策略的影响。
假设程序有一个秘密输入 h、一个公共输出 l 和零个或多个中性变量。中性变量是运行时程序配置的临时或辅助组件,本身不属于特定的保密级别,如栈指针和循环索引。h 在程序执行过程中固定不变,公共和中性变量有单一初始值。同时,假设存在一个概率攻击者,他完全了解并发程序的源代码,能够选择调度器并在其控制下执行程序,可观察执行过程中 l 的值序列(即执行轨迹),且能任意次数执行程序并进行一次猜测,这被称为一次猜测模型。
为了对并发程序进行建模,使用了马尔可夫决
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



