安全协议分析与设计 卫剑钒 -第3章-上
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这些规则表明:如果P相信K是P、Q之间良好的共享密钥,并且P收到了 用密钥K加密的信息X,则P相信Q曾经说过X。
注意,BAN逻辑假设自身发出的消息是可识别的,也即自己发送过的消 息,自己能够识别。那么P看到{X}K就意味着一定不是自己以前发送过的, 而是Q发送的。
13
现时验证(Nonce-verification)规则 现时验证规则的含义是:如果P相信了公式X是新鲜
37
BAN逻辑认为明文可以被攻击者伪造和篡改,在协 议中仅仅起提示作用,与安全性分析是无关的,因 而在理想化时被略去,但事实并非如此 。
下图协议中,如果Msg2在理想化中被略去,就无法 使用BAN逻辑分析。
38
Snekkenes问题
Snekkenes协议的一个用例是使用在控制器A和传感器B之间, A定期地发送询问q给B,B给出响应a,A负责检查Nb的新鲜 性。
的,而且P相信Q曾经发送过X,则P相信Q相信X。
14
仲裁(jurisdiction)规则
仲裁规则的含义是:如果P相信Q拥有对X的仲裁权, 而且P相信Q相信X,则P就相信X。这里需要强调的 是Q controls X是指Q对于X的任何断言都是正确的。
15
信念连接规则
这类规则的含义是:主体相信公式的集合当且仅 当主体相信集合中的每一个公式。类似的规则还 可以给出很多,BAN逻辑中并没有一一列举。
安全协议分析与设计 第三章(上)
卫剑钒
逻辑类分析方法
概述 BAN逻辑 BAN类逻辑 SVO逻辑
2
概述
逻辑类分析方法易于理解和使用,能够较为容易地 发现协议中存在的漏洞,虽然在完备性等性质上存 在局限性,但仍然值得使用。
安全协议的设计是很容易出错的,这是因为安全协 议的运行是并发的,并且运行的环境是不可靠的, 攻击者具有强大的能力。
的可靠性; A6、A7表明了A、B分别相信自己所产生的现时的新
鲜性; A5表明了A相信S控制Kab的新鲜性。
23
协议的目标
24
协议的理想化
25
理想化协议与原协议的区别
明文Msg1在理想化时被忽略掉了,BAN认为协议中 的明文在推理中是无用的,因为攻击者可以随意地 伪造明文。
Msg4和Msg5中加上了消息发送者的标识,目的是 区分这两条消息。BAN逻辑中总是假设主体能够识 别自己的消息。
6
规则(rule):即推理规则,也称“变形规则”,是从已有 定理产生其他定理的方法,指“从Γ得出A”或者“若Γ,则A”, 本文用“Γ⇒A”描述规则,其中Γ是公式的有限序列,且Γ中每 一个公式是定理。
初始规则是不需要另外依据的规则,非初始规则的规则称为 “导出规则”,导出规则是证明中出现的子证明的紧缩,以 缩短证明的步骤。
35
BAN逻辑的作者对Nessett做出了回应,他们指出 BAN逻辑已经明确地限制了协议分析的对象是诚实 的主体,而且BAN逻辑并不关心在协议中未经授权 的暴露密钥的问题。
在Nessett协议中,A在第1条消息中就暴露了自己的 密钥,所以关于A2. A bel SharedKey( Kab, A, B )的 假设与使用BAN逻辑的前提是不一致的。
定理(theorem):在有的文献中称为“公式”,表 示系统内的重言式(或称永真式),也即逻辑真理 在形式系统中的表现形式。它们是经过证明或是可 证明的公式。
初始定理又称“形式公理”,简称“公理”。在形 式系统中,公理不需要另外的依据,它是作为产生 其他定理的初始假设。非公理的定理称为“导出定 理”。
可以看出,BAN逻辑的分析依赖于初始的逻辑公式 和假设集,而这些部分容易出错,从而导致形式化 的分析得不到正确的结论。
36
理想化带来的问题
BAN逻辑没有为协议理想化过程提供形式化的转换 方法,使得同一个协议由于分析者的不同理解而得 到不同的理想化版本。而理想化后得到逻辑公式,
Woo和 Lam在文献[WL93]中指出:协议的理想化使 得在原始协议与理想化协议之间存在一个潜在的语 义鸿沟。
19
用BAN逻辑分析协议的步骤
(1)给出对协议分析的假设。 (2)列出协议的目标。
(3)将协议进行理想化,并把协议中形如“P→Q :
M”的消息写成“Q sees M ”的形式。 (4)利用假设和BAN逻辑中的规则进行推理,得出主
体的信念。
20
NSSK协议
21
对协议的假设
22
A1、A2是指主体A和B相信他们和S之间的通信密钥; A3、A4表明了A和B确信S控制了A、B之间通信密钥
Msg5中用Nb代替了原来的Nb−1,因为既然已经用消 息的来源来区别了Msg4和Msg5,就没有必要再使 用Nb−1了。
26
逻辑推导
27
逻辑推导
这里就得到了对于主体A的两个目标G1和G2,A确 信它和B之间的通信密钥是良好的并且是新鲜的。
28
主体B做类似的推导:
(8)通过消息含义规则和A2、P2得到
7
逻辑类分析方法
BAN逻辑[BAN89]是安全协议形式化分析方法的一个开创性 的工作。
在此之后,又有一系列类似的逻辑分析方法相继出现,包括 Gong、Needham和Yahalom在1990年提出的GNY逻辑 [GNY90],Abadi和Tuttle在1991年提出的AT逻辑[AT91], van Oorschot PC在1993年提出的VO逻辑[VO93]以及 Syverson、van Oorschot在1994年提出的SVO逻辑[SVO94] 等。
这时,攻击者无法再蒙蔽A,但使用BAN逻辑,两个协议的 证明并无区别,因为BAN逻辑的证明过程和消息的顺序没有 关系。
40
BAN逻辑无法检测并行会话攻击
使用假设和推理规则。
9
BAN逻辑
A、B、S代表协议中的主体;Kab、Kas、Kbs代表 主体之间的共享密钥;Ka、Kb、Ks分别代表主体的 公开密钥;Ka−1、Kb−1、Ks−1代表对应的秘密密钥;
Na、Nb、Ns代表主体各自生成的用于确认新鲜性的 Nonce;P、Q、R代表主体变量;X、Y代表公式变 量,K代表密钥变量。
(2)密钥假设。没有正确的密钥不能解密密文;密钥 不能从密文中获得;主体能够知道它是否使用了正 确的解密密钥。
(3)主体假设。在BAN逻辑系统中,认为参与协议运 行的主体都是诚实的。
(4)自身消息可识别假设。假设接收方能分辨接收到 的消息是否为自己发出过的消息。有了这条假设, 消息含义规则的成立才有了合理性。
协议的问题是,攻击者可以位于A和B之间,每次截获B给A 的Msg2,如果觉得a不满意,就冒充A多次发送q,直到从 Msg2中获得满意的a,再将其转发给A。这就蒙蔽了A,使A 不能获得真实的和即时的a。
39
但是只要将Msg2和Msg3进行交换,这个攻击就不存在了。 改进后,随机数Na的检验由B负责。
演绎装置包括定义、公理(可空)和规则。 一个广义的形式系统除了上述的狭义形式系统(或
称语法部分)外,还有语义部分,即对初始符号、 公式和规则的解释。 解释是把形式系统与一定的模型(模型代表对象域 或客观原型)连接起来,从而赋予初始符号和公式 以一定的意义。
5Hale Waihona Puke 逻辑系统的一些基本概念 公式(formula):一些文献中称之为“合式公式” 或“式”,表示一类具有一定形成规则的、解释后 有意义的符号串。
这一系列逻辑方法中,大多采用了基于知识和信念推理的模 态逻辑,它们被统称为BAN类(BAN-like)逻辑。
8
逻辑类分析方法的特点
简洁直观、易于使用。相对于其他形式化分析方法 来说,逻辑类分析方法还是比较简单易用的。
理想化方法。由于相同的消息在不同的协议中可能 代表不同的意义, 因此, 在使用逻辑分析协议之前必 须对协议进行理想化处理,但这个过程是非形式化 的。
“蕴含”及“若,则”关系:“实质蕴含”简称“蕴含”, 记为A→B,指(not A)or B,但它并不是人们通常逻辑思考 中的充分条件关系。“蕴含”不能被简单地念做“若,则” 。
“蕴含”通常应用于公理系统中,而“若,则”这样的推理 规则通常使用在自然推理系统中。公理系统和自然推理系统 是等效的,采用哪种方法都有着同样的演绎能力。
符号化将命题形式中的变项(如p、q、r)和常项 (如命题连接词)用符号(符号指可重复和可辨认 的标记)表示。
系统化是在符号化的基础上将一定范围所有有效的 推理形式构成一个形式系统。
4
逻辑
一个狭义的形式系统包括形式语言和演绎装置两个 部分。
形式语言包括系统的初始符号(或称字母表)和形 成规则(即如何使用符号组成公式)。
31
32
协议的假设
A5和A6分别表明了B认可由A来分密钥,并且由A来保证密 钥的新鲜性。 A4和A7,说明Nessett协议认为接收方可以判断对方发来的 一个Nonce是否为新鲜的,
33
34
•至此,BAN逻辑推导出了Nessett协议下主体A和B的认证目 标。BAN逻辑的推导说明了Kab是A和B之间良好的会话密钥, 并未发现协议的问题。
B bel S said (SharedKey( Kab, A, B))
P10
根据现有的假设和逻辑推理规则,对B而言只能推到这一步, 那就是B确信S曾经发送过A、B之间的一个通信密钥,但是 他无法确信这个密钥的新鲜性。
BAN认为协议不能使B达成目标G3、G4、G5,协议存在缺 陷。
29
BAN逻辑的局限性
11
Sec( X, P, Q ):X是P和Q之间共享的秘密 (secret),如可以将口令看成是一种秘密。
{X}K:用密钥K加密X得到的结果; <X>Y:X和Y的组合,Y是P和Q之间的秘密,Y伴随
着X的出现,意味着X来源于拥有Y的主体。
12
消息含义(Message-Meaning)规则
靠人力来发现安全协议的错误,是一件很有挑战性 的工作,即便是很有经验的研究者,也不能保证能 够发现所有的漏洞,这一点,从很多富有经验的协 议设计者仍然设计出含有漏洞的协议就可得知。
3
逻辑
逻辑是研究推理形式有效性的学科,它运用形式化 的方法研究和判定推理形式的有效性。
形式化方法是将一套特制的人工符号(形式语言) 应用于演绎体系以使其严格化、精确化的研究方法, 它包括符号化和系统化两个环节。
Nessett协议引出的问题 理想化带来的问题 Snekkenes问题 BAN逻辑无法检测并行会话攻击
30
Nessett协议引出的问题
1990年Nessett在文献[Ness90]中给出了Nessett协 议来说明BAN逻辑的局限性。
•这是一个基于公钥密码的协议,其不安全性 是显而易见的,因为任何知道A的公开密钥的 主体都能够得到A、B之间的会话密钥Kab。
16
新鲜性规则
新鲜性规则的含义是:如果公式的一部分是新鲜的, 则整个公式也是新鲜的。
BAN逻辑不分析明文,所以这里的公式(X,Y)是出 现在密文里的,密文中有一部分是新鲜的,则整个 部分也是新鲜的。
17
接收消息规则
接收消息规则的含义是:如果主体P收到一个消息, P也就收到了这个消息的组成部分,以及P能够从中 解出的信息。
18
使用BAN逻辑的前提条件
(1)时间假设。协议分析中区分两个时间:past-time 和current-time。 current-time起始于本次协议运行 的开始阶段,而在此之前都是past-time。如果某一 观点在协议开始时是成立的,那么在整个currenttime中也是成立的,但是在past-time中成立的观点 在current-time中却并不一定成立。
10
P bel X:P 相信(believe)X; P sees X:P 接收了X; P said X:P 发送了X; P cont X:P 拥有对X 的仲裁权,即P拥有对X正确与否的判
决权; #(X):或写作fresh(X),表明X 是新鲜的(fresh),也就是说,
X没有在当前协议执行之前被发送过; SharedKey( K, P, Q ):主体P和Q之间拥有共享密钥K; PK( K, P ):K是P的公开密钥;
注意,BAN逻辑假设自身发出的消息是可识别的,也即自己发送过的消 息,自己能够识别。那么P看到{X}K就意味着一定不是自己以前发送过的, 而是Q发送的。
13
现时验证(Nonce-verification)规则 现时验证规则的含义是:如果P相信了公式X是新鲜
37
BAN逻辑认为明文可以被攻击者伪造和篡改,在协 议中仅仅起提示作用,与安全性分析是无关的,因 而在理想化时被略去,但事实并非如此 。
下图协议中,如果Msg2在理想化中被略去,就无法 使用BAN逻辑分析。
38
Snekkenes问题
Snekkenes协议的一个用例是使用在控制器A和传感器B之间, A定期地发送询问q给B,B给出响应a,A负责检查Nb的新鲜 性。
的,而且P相信Q曾经发送过X,则P相信Q相信X。
14
仲裁(jurisdiction)规则
仲裁规则的含义是:如果P相信Q拥有对X的仲裁权, 而且P相信Q相信X,则P就相信X。这里需要强调的 是Q controls X是指Q对于X的任何断言都是正确的。
15
信念连接规则
这类规则的含义是:主体相信公式的集合当且仅 当主体相信集合中的每一个公式。类似的规则还 可以给出很多,BAN逻辑中并没有一一列举。
安全协议分析与设计 第三章(上)
卫剑钒
逻辑类分析方法
概述 BAN逻辑 BAN类逻辑 SVO逻辑
2
概述
逻辑类分析方法易于理解和使用,能够较为容易地 发现协议中存在的漏洞,虽然在完备性等性质上存 在局限性,但仍然值得使用。
安全协议的设计是很容易出错的,这是因为安全协 议的运行是并发的,并且运行的环境是不可靠的, 攻击者具有强大的能力。
的可靠性; A6、A7表明了A、B分别相信自己所产生的现时的新
鲜性; A5表明了A相信S控制Kab的新鲜性。
23
协议的目标
24
协议的理想化
25
理想化协议与原协议的区别
明文Msg1在理想化时被忽略掉了,BAN认为协议中 的明文在推理中是无用的,因为攻击者可以随意地 伪造明文。
Msg4和Msg5中加上了消息发送者的标识,目的是 区分这两条消息。BAN逻辑中总是假设主体能够识 别自己的消息。
6
规则(rule):即推理规则,也称“变形规则”,是从已有 定理产生其他定理的方法,指“从Γ得出A”或者“若Γ,则A”, 本文用“Γ⇒A”描述规则,其中Γ是公式的有限序列,且Γ中每 一个公式是定理。
初始规则是不需要另外依据的规则,非初始规则的规则称为 “导出规则”,导出规则是证明中出现的子证明的紧缩,以 缩短证明的步骤。
35
BAN逻辑的作者对Nessett做出了回应,他们指出 BAN逻辑已经明确地限制了协议分析的对象是诚实 的主体,而且BAN逻辑并不关心在协议中未经授权 的暴露密钥的问题。
在Nessett协议中,A在第1条消息中就暴露了自己的 密钥,所以关于A2. A bel SharedKey( Kab, A, B )的 假设与使用BAN逻辑的前提是不一致的。
定理(theorem):在有的文献中称为“公式”,表 示系统内的重言式(或称永真式),也即逻辑真理 在形式系统中的表现形式。它们是经过证明或是可 证明的公式。
初始定理又称“形式公理”,简称“公理”。在形 式系统中,公理不需要另外的依据,它是作为产生 其他定理的初始假设。非公理的定理称为“导出定 理”。
可以看出,BAN逻辑的分析依赖于初始的逻辑公式 和假设集,而这些部分容易出错,从而导致形式化 的分析得不到正确的结论。
36
理想化带来的问题
BAN逻辑没有为协议理想化过程提供形式化的转换 方法,使得同一个协议由于分析者的不同理解而得 到不同的理想化版本。而理想化后得到逻辑公式,
Woo和 Lam在文献[WL93]中指出:协议的理想化使 得在原始协议与理想化协议之间存在一个潜在的语 义鸿沟。
19
用BAN逻辑分析协议的步骤
(1)给出对协议分析的假设。 (2)列出协议的目标。
(3)将协议进行理想化,并把协议中形如“P→Q :
M”的消息写成“Q sees M ”的形式。 (4)利用假设和BAN逻辑中的规则进行推理,得出主
体的信念。
20
NSSK协议
21
对协议的假设
22
A1、A2是指主体A和B相信他们和S之间的通信密钥; A3、A4表明了A和B确信S控制了A、B之间通信密钥
Msg5中用Nb代替了原来的Nb−1,因为既然已经用消 息的来源来区别了Msg4和Msg5,就没有必要再使 用Nb−1了。
26
逻辑推导
27
逻辑推导
这里就得到了对于主体A的两个目标G1和G2,A确 信它和B之间的通信密钥是良好的并且是新鲜的。
28
主体B做类似的推导:
(8)通过消息含义规则和A2、P2得到
7
逻辑类分析方法
BAN逻辑[BAN89]是安全协议形式化分析方法的一个开创性 的工作。
在此之后,又有一系列类似的逻辑分析方法相继出现,包括 Gong、Needham和Yahalom在1990年提出的GNY逻辑 [GNY90],Abadi和Tuttle在1991年提出的AT逻辑[AT91], van Oorschot PC在1993年提出的VO逻辑[VO93]以及 Syverson、van Oorschot在1994年提出的SVO逻辑[SVO94] 等。
这时,攻击者无法再蒙蔽A,但使用BAN逻辑,两个协议的 证明并无区别,因为BAN逻辑的证明过程和消息的顺序没有 关系。
40
BAN逻辑无法检测并行会话攻击
使用假设和推理规则。
9
BAN逻辑
A、B、S代表协议中的主体;Kab、Kas、Kbs代表 主体之间的共享密钥;Ka、Kb、Ks分别代表主体的 公开密钥;Ka−1、Kb−1、Ks−1代表对应的秘密密钥;
Na、Nb、Ns代表主体各自生成的用于确认新鲜性的 Nonce;P、Q、R代表主体变量;X、Y代表公式变 量,K代表密钥变量。
(2)密钥假设。没有正确的密钥不能解密密文;密钥 不能从密文中获得;主体能够知道它是否使用了正 确的解密密钥。
(3)主体假设。在BAN逻辑系统中,认为参与协议运 行的主体都是诚实的。
(4)自身消息可识别假设。假设接收方能分辨接收到 的消息是否为自己发出过的消息。有了这条假设, 消息含义规则的成立才有了合理性。
协议的问题是,攻击者可以位于A和B之间,每次截获B给A 的Msg2,如果觉得a不满意,就冒充A多次发送q,直到从 Msg2中获得满意的a,再将其转发给A。这就蒙蔽了A,使A 不能获得真实的和即时的a。
39
但是只要将Msg2和Msg3进行交换,这个攻击就不存在了。 改进后,随机数Na的检验由B负责。
演绎装置包括定义、公理(可空)和规则。 一个广义的形式系统除了上述的狭义形式系统(或
称语法部分)外,还有语义部分,即对初始符号、 公式和规则的解释。 解释是把形式系统与一定的模型(模型代表对象域 或客观原型)连接起来,从而赋予初始符号和公式 以一定的意义。
5Hale Waihona Puke 逻辑系统的一些基本概念 公式(formula):一些文献中称之为“合式公式” 或“式”,表示一类具有一定形成规则的、解释后 有意义的符号串。
这一系列逻辑方法中,大多采用了基于知识和信念推理的模 态逻辑,它们被统称为BAN类(BAN-like)逻辑。
8
逻辑类分析方法的特点
简洁直观、易于使用。相对于其他形式化分析方法 来说,逻辑类分析方法还是比较简单易用的。
理想化方法。由于相同的消息在不同的协议中可能 代表不同的意义, 因此, 在使用逻辑分析协议之前必 须对协议进行理想化处理,但这个过程是非形式化 的。
“蕴含”及“若,则”关系:“实质蕴含”简称“蕴含”, 记为A→B,指(not A)or B,但它并不是人们通常逻辑思考 中的充分条件关系。“蕴含”不能被简单地念做“若,则” 。
“蕴含”通常应用于公理系统中,而“若,则”这样的推理 规则通常使用在自然推理系统中。公理系统和自然推理系统 是等效的,采用哪种方法都有着同样的演绎能力。
符号化将命题形式中的变项(如p、q、r)和常项 (如命题连接词)用符号(符号指可重复和可辨认 的标记)表示。
系统化是在符号化的基础上将一定范围所有有效的 推理形式构成一个形式系统。
4
逻辑
一个狭义的形式系统包括形式语言和演绎装置两个 部分。
形式语言包括系统的初始符号(或称字母表)和形 成规则(即如何使用符号组成公式)。
31
32
协议的假设
A5和A6分别表明了B认可由A来分密钥,并且由A来保证密 钥的新鲜性。 A4和A7,说明Nessett协议认为接收方可以判断对方发来的 一个Nonce是否为新鲜的,
33
34
•至此,BAN逻辑推导出了Nessett协议下主体A和B的认证目 标。BAN逻辑的推导说明了Kab是A和B之间良好的会话密钥, 并未发现协议的问题。
B bel S said (SharedKey( Kab, A, B))
P10
根据现有的假设和逻辑推理规则,对B而言只能推到这一步, 那就是B确信S曾经发送过A、B之间的一个通信密钥,但是 他无法确信这个密钥的新鲜性。
BAN认为协议不能使B达成目标G3、G4、G5,协议存在缺 陷。
29
BAN逻辑的局限性
11
Sec( X, P, Q ):X是P和Q之间共享的秘密 (secret),如可以将口令看成是一种秘密。
{X}K:用密钥K加密X得到的结果; <X>Y:X和Y的组合,Y是P和Q之间的秘密,Y伴随
着X的出现,意味着X来源于拥有Y的主体。
12
消息含义(Message-Meaning)规则
靠人力来发现安全协议的错误,是一件很有挑战性 的工作,即便是很有经验的研究者,也不能保证能 够发现所有的漏洞,这一点,从很多富有经验的协 议设计者仍然设计出含有漏洞的协议就可得知。
3
逻辑
逻辑是研究推理形式有效性的学科,它运用形式化 的方法研究和判定推理形式的有效性。
形式化方法是将一套特制的人工符号(形式语言) 应用于演绎体系以使其严格化、精确化的研究方法, 它包括符号化和系统化两个环节。
Nessett协议引出的问题 理想化带来的问题 Snekkenes问题 BAN逻辑无法检测并行会话攻击
30
Nessett协议引出的问题
1990年Nessett在文献[Ness90]中给出了Nessett协 议来说明BAN逻辑的局限性。
•这是一个基于公钥密码的协议,其不安全性 是显而易见的,因为任何知道A的公开密钥的 主体都能够得到A、B之间的会话密钥Kab。
16
新鲜性规则
新鲜性规则的含义是:如果公式的一部分是新鲜的, 则整个公式也是新鲜的。
BAN逻辑不分析明文,所以这里的公式(X,Y)是出 现在密文里的,密文中有一部分是新鲜的,则整个 部分也是新鲜的。
17
接收消息规则
接收消息规则的含义是:如果主体P收到一个消息, P也就收到了这个消息的组成部分,以及P能够从中 解出的信息。
18
使用BAN逻辑的前提条件
(1)时间假设。协议分析中区分两个时间:past-time 和current-time。 current-time起始于本次协议运行 的开始阶段,而在此之前都是past-time。如果某一 观点在协议开始时是成立的,那么在整个currenttime中也是成立的,但是在past-time中成立的观点 在current-time中却并不一定成立。
10
P bel X:P 相信(believe)X; P sees X:P 接收了X; P said X:P 发送了X; P cont X:P 拥有对X 的仲裁权,即P拥有对X正确与否的判
决权; #(X):或写作fresh(X),表明X 是新鲜的(fresh),也就是说,
X没有在当前协议执行之前被发送过; SharedKey( K, P, Q ):主体P和Q之间拥有共享密钥K; PK( K, P ):K是P的公开密钥;