雨衣

MAC是一个经过验证的静态信息流控制库。编程语言Haskell在信息流控制(IFC)研究中发挥着独特的特权作用:它能够通过库来加强信息安全。许多最先进的IFC库(例如LIO和HLIO)支持多种高级功能,如可变数据结构、异常和并发,它们之间微妙的交互作用使安全保证的验证具有挑战性。在这项工作中,我们关注MAC,一个Haskell的静态强制IFC库。在MAC中,与其他IFC库一样,计算有一个完善的代数结构,用于计算(即monad),负责操作来自抽象数据类型的标记值值,该抽象数据类型将敏感度标签与一条信息相关联。在这项工作中,我们用函子结构来丰富标记值,并提供一个实用的函子运算符,它鼓励更具函数性的编程风格并简化代码。此外,我们提出了一个成熟的,机械验证的MAC模型。具体地说,我们展示了序列演算的进程不敏感的不干扰,并指出了对调度程序的充分要求,以证明我们的并发演算的进程敏感的不干扰。为此,我们使用术语擦除(term erasure)研究MAC的安全保证,这是一种证明技术,确保在程序执行之前或之后删除机密时,应该产生相同的公共输出。作为另一个贡献,我们将术语擦除扩展为两步擦除,这是一种灵活的新技术,极大地简化了不干涉证明,并有助于证明MAC的许多高级特性。