协议组合逻辑学习笔记

一.challenge

面临的挑战是 通过组合各部分的独立证明 来建立 复合协议的安全性证明。但组合是一个困难的问题,因为一个组件 泄露的信息并不会影响其自身的安全性,但会降低其他组件的安全性!

因为即使 各个部分的独立证明可能已经确保了它们的安全性,然而,将这些部分组合在一起时,某个组件可能会泄露与其自身无关的信息,但却降低了其他组件的安全性。

如果能找到一种方法,将两者考虑进来,既 组合独立组件的安全性证明,又考虑它们之间的安全降级问题。

二.a framework consisting of two formal systems 由两个正式系统组成的框架

Protocol Derivation System 协议推导系统 (PDS) and Protocol Composition Logic 协议组合逻辑 (PCL).

PDS

PDS从基本组件开始,使用一连串的 组合、细化、转化操作来组合或者扩展。

安全协议推导框架由 一组基本的构件(组件)和一组操作(用于从旧的协议中构建新的协议) 组成。

操作可以分为:

1.composition

组合composition(组合了两个协议,有并行合成和顺序合成两种操作。对于顺序合成:将第一个组件的输出给第二个组件的输入)、

2.transformation

转换transformation(作用于单个协议,它会修改协议的若干步骤,通过 将数据从一个消息移动到另一个,或组合步骤,或插入一个或多个附加步骤。例如,在同一个party中,将数据从某个协议信息移动到一个更早的消息中)

Message component move, T1: 消息组件移动,将消息m中的顶层字段t移动到之前的消息m’中,其中,它们具有相同的发送方和接收方,并且t在 消息m和消息m‘之间没有生成或接收到新数据,否则会出现后续过程数据不一致的情况。使用该转换的原因是 为了减少协议中总消息数量。

Binding, T2:绑定。

在这里插入图片描述
绑定转换通常以某种有意义的方法将协议的一部分信息添加到另一部分,以绑定这两部分。上述我们将 n 添加到后续消息的签名部分中,我们首先使用T1转换,将n移动到第二条信息,然后在应用T2,从而获得右边的协议,这样可以确保m和n属于同一个会话。

对于右边binding转换得到的协议,会存在一种这样的问题,响应方和发起方对于它们完成会话的对象持不同的belief,攻击者M截取前两条信息,获取到m和n,随后M阻塞了I的最后一条信息,并替换为SIGM(m,n)。 经过上述步骤,发起方I认为m和n是与响应方R交换的,但是响应方R认为随机数m是M生成的

Cookie, T3

在这里插入图片描述

Cookie转换的目的是使协议对blind denial-of-service攻击具有抵抗力。在传统的协议中,响应方在收到发起方的消息之后会立即进行昂贵的计算和状态的创建,攻击者可以利用这一点进行大量的请求来消耗响应方的 计算资源和内存资源,从而导致拒绝服务攻击。 使用cookie转换时,我们假设消息由两部分组成:1.可以在不执行任何昂贵操作的情况下计算出来mc2;2.需要昂贵操作的me2。响应方在接收到第一条消息后,不会创建本地状态,也不会执行昂贵的计算。它会将一个不可伪造的token(cookie)发送回给发起方I,只有I返回了此cookie后,才恢复协议的运行。cookie是消息 m1和mc2的带密钥的哈希值, 注意,HKR只有R知道。昂贵的计算和状态的创建都被推迟到发起者可以通过 它声称是自己的IP地址 接收信息之后,因此产生的协议可以抵御 盲目dos攻击。

3.refinement

细化refinement(作用于单个协议的消息组件,比如使用加密nonce替换明文nonce,它不会改变消息的数量或协议的基本结构)

R1在这里插入图片描述

K是 对等方共享的密钥,这里的目的是提供身份保护,为了抵抗passive attackers。因为签名内容是public的,所以,如果签名不加密,攻击者可以验证对主体身份的猜测。中间人攻击不在生效,因为攻击者无法计算加密密钥K。

R2
在这里插入图片描述

签名itself可以证明该term m是由实体X生成的,附加的keyed hash(基于密钥的哈希)可以证明实体X拥有密钥K。

R3

在这里插入图片描述

它与R2的作用相同。

R4

在这里插入图片描述

Y是peer(对等体), 假设X拥有Y的必要识别信息,也包含了x主体的预期收件人的标识IDY 。

R5:

在这里插入图片描述

nx是一个新鲜值, Diffie-Hellman指数的计算成本很高,故使用了nonce随机数,使用nonce使得可以在多个会话中重复使用指数,但这会使完全前向保密性丢失。

R6:
在这里插入图片描述

IDX表示X的公钥证书,对于对方可能没有对应的公钥证书的情况,无法对 签名的有效性进行验证,通过将 证书和签名一起发送,以便接收方可以验证签名的有效性,从而解决这个问题。这样,**通过包含证书,**协议可以消除 **进行会话之前必须持有对方公钥证书的假设。**满足在对方可能没有公钥证书的情况下,仍然能够验证签名的有效性。

R7:
在这里插入图片描述
K’和K是peer之间的 共享keyrole用来标识产生m的协议角色(如:发起者或响应者)。

组件 是构件更大协议的基本协议步骤或步骤集合。如 Diffie-Hellman key exchange 和 challenge-response 就是基本组件。一个协议组件包括了一组角色(发起者、响应者、服务器),每个角色都有一系列的输入、输出和协议动作。直观地说,执行协议角色的principal从一个已知输入的状态开始,执行规定的动作,然后产生输出。

PCL

PCL是Floyd-Hoare风格的逻辑[52,64],支持协议属性的公理化证明。 关于 公理化证明,它是一种通过使用公理和推理规则来推导出逻辑论断的方法。这意味着,使用 一组公理和推理规则来,利用已知的 公理和协议规范,推导出关于协议安全性或其他属性的结论。从而,可以 形式化地证明协议的正确性或安全性。

Protocol Composition Logic(PCL)是用于证明网络协议的安全属性的逻辑。 目前,能够通过二十至六十行证明过程,来证明常见安全协议的认证和保密性属性。 其简洁性的原因在于,逻辑的证明规则定义了 协议追踪的通用属性 ,所以只需进行相对较少的推理步骤,就能得到证明结果。

协议追踪用于 观察和分析参与者之间的消息交互以及协议状态的变化,以便验证协议的正确性、安全性和性能

PCL是围绕一个 进程演算(process calculus) 设计的,其中每个 协议步骤都有相应的动作。协议动作被附加了 断言(它描述了特定动作在执行时应该满足的条件),以类似于顺序命令式程序的动态逻辑的方式。 逻辑的语义是 基于协议执行的轨迹的集合,逻辑遵循标准的符号模型来描述协议执行和攻击。

一个核心思想是 与action相关联的断言(assertion)在包含该动作的任何协议执行中成立。 这项结论的意义在于 通过关联断言和动作,不需要考虑对手的具体行为,在协议执行中推断关于动作的可能性和性质。 因为我们 无法事先确定对手将会采取哪些具体的行动,基于断言和条件来进行推理,而不需要考虑对手可能采取的具体策略。

另一个思想是 诚实规则,由于诚实的参与方忠实地遵循协议,所以协议角色的程序不变量也在所有运行中成立,无论对手采取怎样的行为。

上述方法的最终目标是为PDS中的每个 派生操作 开发PCL的证明方法,从而实现 协议及其安全性证明 的并行开发。

三.other issues

1.Commutativity of Rules规则的交换性

由于 属性在逻辑上是相互独立(一个属性的存在或实现并不会影响或依赖于另一个属性)的,这意味着我们可以以不同的顺序应用这些refinement,在推导过程中进行交换,而不会影响最终的结果。例如,R1(加密签名)和R5(将随机数附加到指数) 是可交换的,因为它们对应的属性—身份保护和指数的可重用性—在逻辑上是独立的。

2.refinement的一般化

例如将 R1(SIGX(m) ⇒ EK(SIGX(m)))一般化为 m ⇒ EK(m)

m是any term,K是个共享key。这个refinement的一般化的目的是 将m从公开已知值集合中去除掉。通过将细化规则泛化为更通用的形式,我们可以更好地适应各种协议的需求,并提供更大的灵活性和可重用性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值