83
安全协议理论与方法 基于推理结构性方法

安全协议理论与方法 - staff.ustc.edu.cnstaff.ustc.edu.cn/~chenkm/ch3svo.pdf · 主体、共享密钥、公钥、私钥及数字常量等。 消息语言m t是建立在t之上的满足下列性质的

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

安全协议理论与方法

基于推理结构性方法

SVO逻辑优点

■Syverson和Oracho建立一个清晰明确的语义基础,并

且以此来保证在此语义基础之上的逻辑推理是可靠的。

■具有更为详细的模型,很好地消除了由于逻辑表达式意义引起的模糊推理问题,可以更准确的I理解协议消息的真实含义。

■在保持了BAN逻辑简洁易用性,由于增加语义部分,

使得扩展方便。

SVO逻辑优点

细化协议的认证目标: 1.存活确认:让A相信B最近发送过消息(即B是活的)。

2.身份认证:A相信B最近发送的消息是对A挑战的响应。

3.安全密钥建立:A相信与B通信的密钥是好的。

4.密钥确认:让A相信B也知道该Key。

5.密钥新鲜性:让A相信Key是新鲜的。

6.相互确认密钥:让A相信B最近确认了B拥有一个用于和

A通信的良好的密钥Key。

SVO逻辑语法

■语言:消息和公式(有真假值)语言。 ■规则:两个初始规则。 ■公理:20条公理。

SVO语言

■定义T为初始术语(原子项)集合,包括互不相交的符号集合:主体、共享密钥、公钥、私钥及数字常量等。

■消息语言MT是建立在T之上的满足下列性质的最小语言集合:

1) 如果X∈T,则X是消息。 2) 如果X1,…,Xn是消息,F是任意一个n维函

数(连接、加密或签名),则F(X1,…,Xn)是消息。

3) 如果φ是公式,则φ是消息。

SVO语言 ■公式语言FT是满足下列性质的最小公式集合

1)如果P是原始命题,则P是公式。

2)如果ψ,Φ是公式,则¬ψ和ψ∧Φ是公式。

3) 若ψ是公式,则P believes ψ和P controls ψ是公式,P是主体。

4)若P是主体,X是消息,则P sees X,P says X,P said

X,P received X和fresh(X)是公式。

5)若K是密钥,X和Y是消息,则SV(X,K,Y)是公式,表示签名验证。

6)若P、Q是主体,K是密钥,则Shared(K,P,Q),PK(P,K)(与P有关的公钥)及其对应的私钥是良好的。

SVO语言解释

1)P says X:本次会话开始后P发送了X,不同于P said X。

2)P sees X:等价于P has X,指“P拥有X”,可能是P原本有X,P收到X,P生成X和这三种情况组合。

3) {X}k:用密钥K对消息X加密后得到的消息。

4) [X]k: 用私钥K对消息X签名后得到的消息。区别于BAN中的{X}k-1。收到[X]K,就自动获得了X。 5)*: 表示主体所收到的,不可识别的消息。

SVO规则

■SVO两条初始规则 ∧:与,⊃:蕴含,╞ Φ:表示Φ是一个定理,=>表示推理。 分离规则: ψ∧(ψ⊃Φ) => Φ 含义:可将公式ψ和ψ蕴含的Φ替换成公式 Φ。

必要性规则: ╞ Φ => ╞ P believes Φ 含义:如果Φ是一定理,则P believes Φ也是定理。

SVO公理(20条)

■ 1. 相信公理 对于任一主体P和公式ψ,Φ有: Ax1. P believes ψ ∧ P believes(ψ⊃Φ) ⊃ P believes Φ 解释:主体相信从他所相信的逻辑中推理出的公式。

Ax2. P believes ψ ⊃ P believes ( P believes ψ) 解释:说明一个主体知道他相信什么。

SVO公理(20条)

■ 2. 源关联公理 对于任一主体P和公式ψ,Φ有: Ax3. ShardKey(K,P,Q)∧R received {XQ}k ⊃Q said X ∧ Q sees K

解释:XQ指消息X来自于Q,Q sees K可理解为Q has K。

Ax4. PK ψ(Q,k) ∧ R received X ∧ SV(X,K,Y) ⊃Q said Y 解释: PK ψ(Q,k)表示K是Q的签名验证公钥, SV(X,K,Y) 表示使用K可验证X是否为消息Y的签名, 如果收到X, 且签名验证通过,则可推理出Q说过Y。

SVO公理(20条)

3. 密钥协商公理 Ax5: PKσ(P, KP)∧PKσ(Q, Kq) ⊃ SharedKey(Fσ(Kp,Kq), P, Q) Ax6: PKσ(Q, Kq)∧PKσ(P, Kp) ⊃ SharedKey(Fσ(Kq,Kp), Q, P) 解释: PKσ(P, KP) 表示Kp是P的协商公钥,还隐含表达了对应

私钥的秘密性。 Fσ(Kp,Kq)表示协商密钥生成函数(如DH算法),Fσ使用第一个参数所表示的公钥, 使用第二个参数所对应的私钥。

SVO公理(20条)

4. 接收公理 Ax7: P received(X1, …, Xn) ⊃ P received Xi

Ax8: P received {X}K ∧ P sees K-1 ⊃ P received X Ax9: P received [X]k ⊃ P received X 解释:主体接收到一个消息,也同时接收了该消息中

的连接项; 如果主体拥有解密密钥,可以获得被加密前的消息;主体能够从签名中得到被签名的消息。

SVO公理(20条)

5. 看见公理 Ax10: P received X ⊃ P sees X Ax11: P sees (X1,…,Xn)⊃ P sees Xi

Ax12:P sees X1∧…∧P sees Xn ⊃ P sees F(X1,…,Xn) 解释:Ax10表明一个主体能看见所有他接收到的,

Ax11表明主体可以看见连接消息项中的一部分,Ax12中的F是主体P可计算的函数(如加密函数、解密函数及散列函数等)。

SVO公理(20条)

6. 理解公理 Ax13: P believes (P sees F(X)) ⊃ P believes (P sees X)

解释: F是函数,且F或F-1是P可以计算的。理解公理

指主体可以运用F或F-1,对F(X)进行检验,如X为P产生的nonce,F为对X加密或者Hash,P可以对[X]k解密或对X进行Hash,并检验是否为X或H(X),若检验成功,则P相信P拥有F(X),这意味着P能识别它。

反向定理:P believes (P sees X) ⊃ P believes (P seesF(X))

SVO公理(20条)

7. 说过公理 Ax14:P said(X1,…,Xn)⊃ P said Xi ∧ P sees Xi

Ax15:P says(X1,…,Xn)⊃ P said (X1,…,Xn) ∧ P says Xi

■解释:Ax14表明主体只能说他所拥有的。

Ax15表明主体最近说过蕴含着他说过。

SVO公理(20条)

8. 仲裁公理 Ax16:P controls ψ ∧ P says ψ ⊃ψ 解释:Ax16表明P对ψ有仲裁权。

SVO公理(20条)

9. 新鲜性公理 Ax17:fresh(Xi) ⊃fresh(X1,…,Xn) Ax18:fresh(X1,…,Xn)⊃fresh(F(X1,…,Xn))

SVO公理(20条)

10. Nonce验证公理 Ax19: fresh(X)∧ P said X ⊃ P says X ■解释:如果X是新鲜的,且主体说过X,就意味

着主体最近说过。

SVO公理(20条)

11. 共享密钥对称公理 ■如果K是P,Q之间的良好密钥当且仅当K是Q,P

之间的良好密钥。

Ax20: SharedKey(K,P,Q) ≡ShardKey(K,Q,P)

SVO认证目标形式化

细化协议的认证目标: G1.存活确认: A believes B says X

G2.身份认证: A believes B says F(X,Na)

G3.安全密钥建立:A believes SharedKey(K-,A,B)

解释:K-表示该密钥还未得到确认。K+表示已得到确认。

G4.密钥确认: A believes SharedKey(K+,A,B)

G5.密钥新鲜性: A believes fresh(K)

G6.相互确认密钥:A believes B says SharedKey(K-,B,A)

SVO逻辑语义

定义: 用来解释符号,公式和规则的精确含义。

对于二值逻辑而言,就是研究公式何时取值为真,何时取值为假?

作用:语义作为一个解释,需要把形式系统与一定的计算模型(用以抽象客观模型)连接起来,进而赋予符号和公式以一定的意义。

SVO逻辑语义-计算模型

■计算模型: 1.由有限个P1,P2,…,Pn组成,主体间可发送消息。

2. Pe:代表环境,用于消息传送并模拟攻击者行为。

3. Pi:每个主体Pi有一个局部状态Si,全局状态是n+1个局

部状态的组合。可有三种动作:

发送消息send(X,G):给主体G发送消息X;

接收消息receive(X):无主体参数;

生成新数据generate(X):只生成原子项集合T中的元素,其他的计算被看成内部行为。

SVO逻辑语义—计算模型续

■协议一次运行体现为一系列全局状态,以时间作为索引:

运行的第一个状态:t<=0

协议开始运行: t=0

时刻t: 全局状态记为r(t)

主体Pi对应的局部状态:ri(t)

SVO逻辑语义—计算模型续

■每个主体Pi的局部状态:协议一次运行体现

为一系列全局状态,以时间作为索引:

运行的第一个状态:t<=0

协议开始运行: t=0

时刻t: 全局状态记为r(t)

主体Pi对应的局部状态:ri(t)

SVO逻辑语义—计算模型续

■每个主体Pi的局部状态包括在(r,t)时刻:

收到的消息集合包括:

主体所做过的所有动作;

所有可能的消息生成记为Ai;

■环境状态包括:全局的的历史消息、环境主体(如攻击者)可生成的消息;用于保存发给主体Pi而Pi未收到消息的消息缓冲区。

SVO逻辑语义—计算模型续

■主体Pi在(r,t)点上,显式接收消息集合包括以下内容:

1) t及t之前的局部消息历史中,所有receive(X)中的X;

2) 所收到消息中的级联项。

3) 加密消息{X}k中的消息X,若该时刻Pi持有解密密钥K-1。

4) 签名[X]k中的X。

主体Pi看到消息集:主体显式接收消息集,主体新

近生成的消息集、主体初始所知的消息集以及由主体可以衍生的消息集。

SVO逻辑语义—计算模型续

■主体Pi在(r,t)发送消息M,定义M说过子消息集合包括:

1) M中所有子消息。

2) M中加密形式子消息{X}k的解密部分X,要求K为主体所持有且X为主体看到的消息。

3) M中签名[X]k中的X,要求签名密钥为主体所持有且X为主体看到的消息。

4) M中Hash形式子消息Hash(X)中的X,要求X为主体看到的消息。

5) M的有隐含意义的子消息,Pi通过该子消息暗示M’,要求M’为主体看到的消息。

SVO逻辑语义—真值条件

■定义:解释在什么条件下一个公式为真。用计算模型解释receive,see,believe等含义。

╞ ψ 表示公式在所有点都为真。

如果公式ψ在点(r,t)为真记为:

(r,t) ╞ ψ。

SVO逻辑语义-公式成立条件续

■逻辑连接词:

(r,t)╞ψ∧Φ iff(r,t)╞Φ ∧ (r,t)╞ ψ (r,t)╞¬Φ iffΦ ¬(r,t) ╞Φ

SVO逻辑语义-公式成立条件续

接收

(r,t)╞ p received X

iff X位于主体P在(r,t)的接受消息集合中。

SVO逻辑语义-公式成立条件续

■看到 (r,t) ╞ p sees X iff X 位于主体P在(r,t)

时的已看到消息集合中。

■说过 (r,t) ╞ p said X iff 对于消息M和运行r

的某个时间t’<=t,主体P在(r,t’)发送过某个消息M,且X属于M的说过子消息集合。

SVO逻辑语义-公式成立条件续

当前时期说过(指本轮协议运行的初始点起)

(r,t)╞ p says X iff 对于某个时刻t’,0≤t’≤t,P在(r,t’)发送了M,并且X属于M的说过子消息集合。

SVO逻辑语义-公式成立的条件续

仲裁命题 (r,t)╞ p controls ψ iff 对于所有

t’≥0,(r,t)╞ p says ψ 蕴含

(r,t’) ╞ ψ。

SVO逻辑语义-公式成立条件续

新鲜性 (r,t)╞ fresh(X) iff 对于所有主体P和所有

时间t’<0, 有

(r,t’)╞ ¬(P said X)

SVO逻辑语义-公式成立条件续

共享密钥:

(r,t)╞SharedKey(K,P,Q) iff 对于所有的t’,(r,t’)╞P said {XQ}k 隐含(r,t’) ╞ R received {XQ}K ,或者蕴含R=Q∧(r,t’)╞R said X∧(r,t’)╞R sees K

解释:即如果共享密钥良好,R说过{XQ}k蕴含着要么是R在转发这个加载项,要么R是Q并且R说过X且R拥有K。

(r,t)╞SV(Y,K,X) iff 存在K-1使得可以使用K验证Y=[X]K-1.

SVO逻辑语义-公式成立条件续

签名密钥:

(r,t) ╞ PKσ(P,K) iff 对于所有t’,

(r,t’)╞ (Q received Y ∧SV(Y,K,X))蕴含着 (r,t’) ╞ P said X

公钥加密密钥:

(r,t) ╞ PKΨ(P,K) iff 对于任意t’,当Q=P时,

(r,t’)╞ Q sees {X}k 蕴含

(r,t’)╞Q sees X

SVO逻辑语义-公式成立条件续

协商密钥

(r,t) ╞ PKÓ(P,K) iff 对于所有的t’,有:

(1)对一些Q及Kq,(r,t’)╞SharedKey(FÓ (K,Kq),P,Q)

(2)对所有的R和Kp,如果(r,t’) ╞¬SharedKey(FÓ (Kp,K),R,P),那么对于所有的U和Ku, (r,t’) ╞¬SharedKey(FÓ (Kp,Ku),R,U)

其中,FÓ是生成共享密钥函数,参数是双方用以进行协议的密钥。

SVO逻辑语义-公式成立条件续

协商密钥解释

(1)表明P可以用K和一些Q及Kq生成良好的共享密钥;

(2)表明如果一个主体R和Kp不能和P用K生成良好的共享密钥,那么R也不能和任何其他主体生成良好的共享密钥。

SVO逻辑语义-公式成立条件续

不可区分性 (r,t)∽p(r’,t’) iff P在这两个点除不能理解的

部分外,局部状态相同。

“理解”解释:

一个主体可以理解的消息是那些它最终可以绑定到它所看到明文的消息。一个主体的局部状态包括看到它的消息集合,这其中有些部分是主体不能理解的,如它看到H(X)但没有看到X,则它不能理解H(X)。

SVO逻辑语义-公式成立条件续

Pi可理解消息集合:

在(r,t)点上,Pi可理解消息集合的初始内容为在该点上Pi看到消息集合中所有原子公式、常数公式以及SharedKey(K,P,Q), PK(P,K),P sees K这样类型的公式。

SVO逻辑语义-公式成立条件续

Pi可理解消息集合递归增加: (1)如果P和消息X都位于理解集合,则P sees X,P received

X,P says X,P said X,fresh(X)位于理解集合。

(2)若P和公式Ψ都位于理解集合,则P believes Ψ和P controls

Ψ 也是可以被理解的。

(3)任何可以被理解的子公式的组合仍然是可被理解的。

(4)若连接起来的消息(X1,…,Xn)位于看到消息集合中,该连接中任意子消息Xi可被置换为*,如果置换后所有非*子消息都可被理解,那么这被置换后的消息连接是可被理解的。

SVO逻辑语义-公式成立条件续

Pi可理解消息集合递归增加: (5) F(X)是可被理解的,如果满足下面三个条件:

①F 或F-1是P可运算的函数。

②X位于理解消息集合中。

③F(X)位于看到消息集合中。

相信的真值条件:

(r,t) ╞ P believes Ψ iff 对于所有的(r’,t’)∽p(r,t),有

(r‘,t’) ╞ Ψ

SVO逻辑语义-公式成立条件续

合理性证明:

逻辑的合理性: 指该逻辑所推导出的结论与模型的运行是否一致。如果某个公式Ψ可以由初始条件集合Γ从SVO逻辑推理出为真,那么在任何使得Γ为真的世界里,有Ψ为真。

据此原则证明前述公理。

SVO逻辑应用实例1

(4) 消息接收者对消息的解释:

BAN的理想化在SVO中被替换为假设,如:

A believes (A received {Ts,B,*}kas∩)

SVO逻辑应用实例1

(1) 初始假设:协议运行开始时被认为成立的公式:

如主体相信自己产生的Nonce的新鲜性

fresh(Ti), A believes fresh(Ti)

主体和可信第三方之间密钥的良好性

SharedKey(Kab,A,B)

A believes SharedKey(Kab,A,B)

可信第三方产生的密钥的新鲜性、良好性等。

SVO逻辑应用实例1

(2) 反映消息接收的假设:

SA: {Ts,B,Kab}kas 改写为

A received {Ts, B,Kab}kas

(3) 反映主体对接收消息理解的假设:

对(2)中消息,A只能识别出Ts和B是否有效,而无法识别kab

(由S生成),因A无法检验,此消息接收的假设被改为:

A believes A received {Ts,B,*} kas 其中* 表示一个A无法检验的项。

SVO逻辑应用实例1

(4) 反映主体对接收消息解释的假设:

类似于BAN的理想化,在此被替换为假设如:

A believes (A received {Ts,B,*} kas⊇ A received {Ts,B,SharedKey(Kab,A,B),fresh(Kab)}kas)

SVO逻辑应用实例1

NSSK协议:

Msg1 AS:A,B,Na

Msg2 SA:{Na,B,Kab,{Kab,A}kbs}kab

Msg3 AB:{Kab,A}kbs

Msg4 BA:{Nb}kab

Msg5 AB:{Nb-1}kab

SVO逻辑应用实例1

第一步NSSK协议假设(初始假设): P1. A believes fresh(Na)

B believes fresh(Nb)

P2. A believes S controls SharedKey(Kab,A,B)

B believes S controls SharedKey(Kab,A,B)

P3. A believes S controls (fresh(Kab))

B believes S controls (fresh(Kab))

P4. A believes SharedKey(Kas,A,S)

B believes SharedKey(Kbs,B,S)

SVO逻辑应用实例1

第一步NSSK协议(接收消息假设): P5. A received {Na,B,Kab,{Kab,A}kbs}kas

P6. B received {Kab,A}kbs

P7: A received {Nb}kab

P8. B received {Nb-1}kab

SVO逻辑应用实例1

第一步NSSK协议(接收消息理解假设): P9. A believes A received {Na,B,*1,*2}kas

P10. B believes B received {*,A}kbs

P11: B believes received {Nb-1}*3

SVO逻辑应用实例1

第一步NSSK协议(主体对接收消息的解释): P12. A believes (A received {Na,B,*1,*2})kas ⊇A

received {Na, B, SharedKey(Kab,A,B),fresh(Kab),*2}kas) P13. B believes ((B received {*3,A}kbs) ⊇B received

{SharedKey(Kab,A,B),fresh(kab)}kbs) P14. B believes ((B received {*3,A}kbs Λ B received {Nb-1}*3)

⊇ B received {Nb-1}kab)

SVO逻辑应用实例1

第二步 用SVO的推理规则和公理进行推

由P9,P12和Ax1得: A believes A received {Na,B,SharedKey(Kab,A,B),fresh(Kab),*2}kas

(1)

由Ax3可知:

A believes (SharedKey(Kas,A,S) ΛA received {XS}kas) ⊇s said X) (2) 再由P4,(1)和Ax1可得: A believes S said (Na,B,SharedKey(Kab,A,B),fresh(kab),*2) 由P1,Ax17,Ax1可得: A believes fresh(Na,B,SharedKey(Kab,A,B),fresh(Kab),*2) (3)

SVO逻辑应用实例1

第二步 用SVO的推理规则和公理进行推

由(2),(3),Ax19,Ax1可得: A believes s says {Na,B,SharedKey(Kab,A,B),fresh(Kab),*2}

(4)

由(4), P2,Ax15, Ax16和Ax1可得: A believes SharedKey(Kas,A,B) (5)

由(4),P3,Ax15, Ax16和Ax1可得:

A believes fresh(kab) (6) 以上为对A的信念的推导。

SVO逻辑应用实例1

由P10,P13和Ax1得: B believes B received {SharedKey(Kab,A,B),fresh(Kab),A}kbs

(7)

由(7), P4,Ax3, Ax1可知:

B believes S said (SharedKey(Kab,A,B), fresh(Kab),A) (8) 由(8),Ax14,Ax1可得: B believes S said SharedKey(Kab,A,B) (9) 由(8),Ax14,Ax1可得: B believes S said fresh(Kab) (10) 由P10,P11,P14,Ax1可得 B believes B received {Nb-1}kab

(11)

SVO逻辑应用实例1

第二步 用SVO的推理规则和公理进行推

由(2),(3),Ax19,Ax1可得: A believes s says {Na,B,SharedKey(Kab,A,B),fresh(Kab),*2}

(4)

由(4), P2,Ax15, Ax16和Ax1可得: A believes SharedKey(Kas,A,B) (5)

由(4),P3,Ax15, Ax16和Ax1可得:

A believes fresh(kab) (6) 以上为对A的信念的推导。

SVO逻辑的应用实例2

1) 主体目标相同:密钥分配和认证。则不大可能会出现否认性。

2) 主体目标不同:电子商务,为了利益需求,可能对已发生行为进行否认。收费后否认收费或者因质量问题而否认发货。

■解决:收集并持有一个声称事件或行为的不可否认证据,并使之能有效地用于解决由于否认事件或行为而引起的纠纷。

SVO逻辑-一个不可否认协议实例

不可否认协议的实现:

■证据的生成

■证据的交换

■证据的验证

■纠纷的解决

一是双方进行同时的秘密交换(麻烦,要求协议双方具有同等计算能力不现实)。

二是借助一个可信第三方(TTP)。

SVO逻辑-不可否认协议实例 两个基本证据: ■NRO(Non-repudiation of Origin):发方不可否认,用

于证明发放的确发送了消息,由发方提供。

■NRR(Non-repudiation of Receipt):收方不可否认,

用于证明收方的确收到了消息,由收方提供。

SVO逻辑-不可否认协议实例续

如果协议中有可信第三方TTP的介入,则还需

要下面两个证据:

■NRS:(Non-repudiation of Submission):

提交不可否认,证明已提交给了TTP,由提交方提供。

■NRD:(Non-repudiation of Delivery):

传递不可否认,证明TTP已交付给了意定接收者,由TTP提供。

SVO逻辑-不可否认协议实例

【Zhou和Gollman提出】ZG协议 1) AB: fNRO, B,L,C, NRO 2) BA: fNRR, A,L,C, NRR 3) ATTP: fNRS, B,L,K, NRS_K 4) B↔TTP: fNRD, A,B,L,K, NRD_K 5) A↔TTP: fNRD, A,B,L,K, NRD_K

SVO逻辑-不可否认协议解释 ■A:不可否认协议交换的发起者。

■B:不可否认协议交换的接收者。

■TTP:可提供网络服务的在线可信第三方。

■M:A发给B的消息。

■C:A发给B的密文。

■K:A定义的消息密钥。

■L:协议轮的标识。

■SI: 表示主体I的签名密钥。

SVO逻辑-不可否认协议实例

↔:ftp 操作符。 NRO= SA(fNRO, B,L,C) NRR= SB(fNRR, A,L,C) NRS_K= SA(fNRS, B,L,K) NRD_K= STTP(fNRD, A,B,L,K)

SVO逻辑-不可否认协议执行过程 1)A将C=K(M)、轮标志L、意定接收者的标识以及NRO发送给B,

B将之作为用于证明A在L轮协议的发送C的证据。

2)B返回一个签名消息NRR用于证明在L轮中收到C,这为A提供了C已被B收到的证据。

3)A将K以及一个提交不可否认证据NRS_K发送给可信第三方TTP。

4)在第4和5步中,A和B通过ftp操作从TTP处得到一个已先期存放的密钥K以及由TTP签发的传递不可否认证据NRD_K。

SVO逻辑-不可否认执行过程续 ■协议执行完毕时,如果A希望证明消息已被对方接收,

它可向仲裁出示证据:

SB(f2,A,L,C)

STTP(f4,A,B,L,K)

前者证明B收到了C,后者证明K已在TTP中,因此意味着B能够得到K并进而得到M。

■如果B希望证明消息已被发送,可向仲裁出示证据: SA(f1,B,L,C),STTP(f4,A,B,L,K)。前者证明C已被A发送,后者证明K也已被发送给了TTP。

SVO逻辑-不可否认协议实例分析 ■定义3.1 不可否认协议的公平性:

是指从协议执行的开始到协议执行结束的任何一个阶段,通信的双方要么能够同时得到它们所期望的,要么任何一方都得不到有利于自己的信息,从而避免协议的任一方中断执行的协议,或否认其已发生的行为以达成利益不平等的可能。

■定理3.1不可否认协议的不可否认性是成立的,如果:

1) 协议任何一方执行后的中止将不会破坏通信双方主体的地位的公平性。

2) 在协议结束时提供主体参与协议行为的有效证据,即证据的有效性。

SVO逻辑-不可否认协议ZG证明步骤

■给出协议的前提或假设

■说明协议目标

■运用规则和公理进行推证

SVO逻辑-ZG证明假设

■给出协议的前提或假设

A0:协议的运行环境是不安全的(基本假设)。

A1:每个主体的公钥是公开的。

A2:每个主体的私钥仅为其所知。

A3:TTP believes SA A4:TTP believes SB A5:P believes STTP:P 为参与协议运行的主体

A6:TTP believes(B received C)⊃TTP believes(A said C)

SVO逻辑-ZG证明假设续 A7:A said(A,B,L,Ek(M))∧A said(A,B,L,K)⊃A said M A8:B received (A,B,L,Ek(M)) ∧ B received(A,B,L,K) ⊃ B received M

A9:TTP believes (A said C ∧ B received C ∧ TTP received K) ⊃ TTP says K

表示TTP只有在确信A已说过C,并且B已收到了C,以及TTP收到了K,才将K公布到其公开目录中。

A10:TTP says X⊃P ftp X⊃ P sees X TTP将其认为是有效的数据放入到其公共目录下,并

可为任何主体通过ftp操作访问。

SVO逻辑-ZG证明假设续

A11: P believes PKÓ(Q,K) ∧ P received {X}K

-1⊃ P believes (Q said X) 表示如果P收到一个签名消息,并且P相信这个签名密钥是Q的,那么P相信Q说过X。

A12: A beliveves fresh(Na)

A13: TTP believes ψ⊃ψ

SVO逻辑-ZG证明协议目标

■一般目标: G1 ---A believes (B received M) G2 ---B believes (A said M) ■仲裁目标 G3 ---J believes (A said M) G4 ---J believes (B received M)

SVO逻辑-ZG证明过程

■解答:由 消息1),得: F1: B received SA(fNRO,B,L,C) 由F1,A2,P4,A11,得: (P4: PKÓ(A,K) ∧ B received {X}K

-1⊃ A said X) (A11: B believes PKÓ(A,K) ∧ B received {X}K

-1)⊃ B believes (A said X)) 得F2: B believes (A said (fNRO,B,L,C))

SVO逻辑-ZG证明过程续

■由F2,P5得:

F3: B believes (A said C)

同理,对原协议消息 2)的分析只能得到

A believes (B said C),但无法 得到

A believes (B received C),原协议修改为

1’) AB:fNRO,B,L,C,SA(fNRO,B,L,Na,C)

2’) BA:fNRR,A,L,C,SB(fNRR,A,L,Na+1,C)

SVO逻辑-ZG证明过程

■对修改后的协议进行分析得: F4: A receives SB(FNRR,A,L,Na+1,C) 由F4,A2,P4,A11,A12,得: F5: A believes (B received (fNRO, B,L,Na,C)) ⊃ A believes (B received C) 由消息 3)得: F6: TTP received SA(FNRS, B,L,K)

SVO逻辑-ZG证明过程续

■由F6, A2,A3得:

F7: TTP believes (A said (fNRS,B,L,K)) ⊃ TTP received K

根据假设A9,TTP只有确信A已说过C,并且B收到C,

以及TTP收到了K,才将K公布到其公开目录中,但在原有协议中,TTP并不能确知B是否已收到了C,因此,A可对NRR进行签名,并将结果发给TTP。对消息 3)修改如下:

SVO逻辑-ZG证明过程续

3’) ATTP: fNRS, B,L,K,NRS_K, SA(NRR) ■ TTP收到消息3’)后由P5得: F8: TTP received SA(NRR) 由F8,A3,A11,P1,得: F9: TTP believed (A said C ∧ B received C) 由F8,F9,A9,A6,得: F10: TTP says K

SVO逻辑-ZG证明过程续

由F10,A10,消息4)得: F11: B received (fNRD, A,B,L,K,STTP(fNRO, A,B,L,K)) 由F11,P5,A13,得: F12:(B received K∧ B received C)⊃ B received M 由F12,P6, A7,消息5)得: F13:A received (fNRD,A,B,L,K, STTP(fNRO, A,B,L,K)) 由F10,F12,F13,A5,A11,P5,P7,P10,得:

SVO逻辑-ZG证明过程续

F14:A believes (TTP says K) ⊃A believes(B sees K) ⊃ A believes (B received M)--G1 由F7,F11,A5,得: F15:B believes(TTP says K)⊃ B believes (A said K) 由F3,F15,得: F16: B believes (A said M)--G2

SVO逻辑-ZG证明过程续

协议可能出现的纠纷及解决

■ Case 1: A 否认向B发送了消息M。

在这种情况下B可将M,C,K,L以及NRO,NRD_K提交给仲裁,仲裁通过以下几步可证明A发送了消息M。

■1) 检查NRD_K用T的私钥对(fNRD,A,B,L,K)签名。

J received STTP(fNRD,A,B,L,K)⊃ J believes (TTP says K)⊃ J believes (A said K)

SVO逻辑-ZG证明过程续

■ 2) 检查NRO用A的私钥对(fNRO,B,L,Na,C)的签名。

J received SA(fNRO, B,L,Na,C)⊃ J believes (A said C)

■3) 如果检查M=D(K,C),则:

J believes (A said M)

得证G3。

SVO逻辑-ZG证明过程续

■ Case 2 B否认收到了消息M。

在这种情况下A将M,C,K,L以及NRR,NRD_K提交给仲裁,仲裁通过以下几步可证明B接收到了消息M。

■1)检查NRD_K用T的私钥对(fNRD,A,B,L,K)的签名。

J received STTP(fNRD, A,B,L,K)⊃ J believes (TTP says K) ⊃ J believes(B received K)

SVO逻辑-ZG证明过程续

■ 2)检查NRR用B的私钥对(fNRO,A,L,Na+1,C)的签名。

J received SB(fNRO, A,L,Na+1,C)⊃ J believes (B received C)

■如果检查M=D(K,C),则:

J believes (B received M)

得证G4。

SVO逻辑-ZG证明运用规则和公理进行推证

修改后的协议为: 1) AB: fNRO, B,L,C, SA(fNRO,B,L,Na,C) 2) BA: fNRR, A,L,C, SB(fNRR,A,L,Na+1,C) 3) ATTP: fNRS, B,L,K, NRS_K,SA(NRR) 4) B↔TTP: fNRD, A,B,L,K, NRD_K 5) A↔TTP: fNRD, A,B,L,K, NRD_K