可靠证据:通过类型检查实现可审计性
在当今的编程和协议设计中,确保程序的安全性和可审计性至关重要。本文将深入探讨如何通过类型检查来实现程序的可审计性,以及相关的概念和技术。
1. 协议安全性示例
以协议 Lmail 为例,程序 Lmail[princA () ↱princB ()] 是安全的。 assert 仅在 princB 的代码中出现,并且在通道 c 接收消息后进行评估。只有 princA 会在通道 c 上发送内容为 “Hey” 的消息,并且是在假设 Send("A","Hey") 之后。这些操作会导致一个配置:
E
assert (Send("A",text)){"Hey"/text}
假设公式的多重集 F = {Send("A","Hey")} ,显然有 F ⊢ Send("A","Hey") 。更重要的是,Lmail 还具有鲁棒安全性。即使存在恶意对手在启动 princB 后通过公共通道 c 发送消息 ("A","Hey") , B 执行的签名验证也能确保接收到的消息确实是由 A 发送的,并且之前已经假设了公式 Send("A","Hey")
超级会员免费看
订阅专栏 解锁全文

656

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



