最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

CCITT X.509协议的形式化分析及其改进

IT圈 admin 29浏览 0评论

2024年3月12日发(作者:抗贞芳)

CIlMplJ l’ R 

SliI:IJ薹毫1TY 

—n2满足n2 nl E Nc。 

(3)如果nl E Nc,且有n2二 nl,那么n2 

二>nl E Nc。 

由于Bundle是串空间的一个子集,用来表示 

个完整的协议,是一个图。 

1.2认证测试理论 

认证测试是在利用串空间模型建立协议状态和 

过程的基础上,通过构造不同的测试类型来验证协 

议的认证属性和特定消息的保密属性。 

定义6 在一个串空间(strand)∑下,称正则 

串的某个部分为测试。如果有: 

(1)a c t且t是n的分量。 

(2)t不是任何正规节点n’E∑的n’的真 

子项。 

则称t={h} 是a在节点n中的测试分量。 

定义7 如果nO为负n1为正,且a C 

term(n1),若存在a从n0接收并以新组件的形式 

从nl中发出,则称边n0二=> n1是关于a的转换 

边。 

定义8如果nO为正n1为负且a c term(n0), 

若存在a从n0发出并在节点nl以新组件的形式接 

收,则称边n0二=> n1是关于a的被转换边。 

定义9如果a只在n0的测试分量t中出现, 

且t={h} ,这里K K。(K。是攻击者密钥集合), 

则称边nO nl是a丛C中的输出测试边。 

定义10如果a只在n1的测试分量t中出现且 

与n0无关,t={h} ,这里K K。(K。是攻击 

者密钥集合),则称边nO nl是a丛C中的 

输入测试边。 

定义l 1如果t是对于负结点n中任何a的测 

试分量且t={h} ,这里K K。(K。是攻击者密 

钥集合),则称节点n是关于a的主动测试。 

认证测试方法: 

认证测试1令C为一个簇(bundle),nl E C, 

2 0 1 2.0 6 

51ll面目晒图 

WWW r3SCorg CO 

nO nl称为a在t中的出测试,则: 

(1)存在正常结点m0,ml E C,使得t是m 

的分量且m0二=> ml是a的变换边。 

(2)若a仅存在于ml的分量tl={hl} 。中,t1 

不是任何一个正常分量的真子集,且K K。, 

则存在一个负的正常结点,tl为该结点分量。 

认证测试2令C为一个簇(bundle),nl E C, 

n0==> n1为a在t’中的入测试,则存在正结点 

m0,ml∈C使得t’是ml的分量且m0==> ml 

是a的转换边。 

认证测试3令C为一个簇(bundle),n E C, 

n是t={h} 的一个主动测试,则存在一个正结点 

m E C且t是m的一个分量。 

2 CCITT X.509协议缺陷分析 

2.1 CCITT x.509协议 

C CITT X.509协议 包括两个主体:发起者 

和响应者,协议中的消息交换如下: 

M1 A--+B:A,{Ta,Na,B,Xa,{Ya}K }K 

M2 B--+A:B,{Tb,Nb,A,Na,Xb,{Yb}K }KB- 

M3 A--+B:A,{Nb}K 

此协议中,第1步,A把时间戳Ta、临时值 

Na、B的身份标识、消息Xa以及用B的公钥加密 

的消息{Ya}K }用自己的私钥加密后,连同自己的 

身份标识A一起发给B。第2步,同样地,B把自 

己的身份标识以及用自己的私钥加密的消息发给A。 

第3步,A把加密消息{Nb}K 和A发给B。 

协议目的:(1)A和B相互认证;(2)保证Xa 

和Xb的完整性;(3)保证Ya和Yb的秘密性。协 

议运行过程如图1所示。 

A M1 B 

nl● 

蛹l ] 

n20 

8 

M3 

8 

图】协议运行过程 

S ClJRl frY田  I兰.:—  

i,2 

(1)发起者 串Init[A,B,Na,Nb,Ta, 

T b】=<+A{T a N a B X a{Y a}K }K ~,一 

B{TbNbANaXb{Yb}K }K ~,+A{Nb}KA-1>,和 

某个s∈Init[A,B,Na,Nb,Ta,Tb]相关联的协议 

主体是A。 

(2)响应者串Resp[A,B,Na,Nb,Ta,Tb】=<一 

A{T a N a B X a{Y a}K }K ~,+ 

B{TbNbANaXb{Yb}K }K ~,一A{Nb}K >,和某 

个s∈Resp[A,B,Na,Nb,Ta,Tb]相关联的协议主 

体是B。 

2.2协议缺陷分析 

1)认证性分析 

设有如下基本假设:(1)K A-I,K B 1 Kp; 

(2)Na,Nb惟一产生;(3)Na≠Nb 

响应者的认证: 

(1)构造测试分量。 响应者串 

Resp[A,B,Na,Nb,Ta,Tb】,由于Nb惟一产生于 

节点ml,因此{Nb}K 是Nb的测试分量,ml 

==>m2构造了Nb在{Nb}K 中的输入测试。 

(2)应用认证测试规则2得到:存在正常结点 

n,n’∈C,{Nb}K 是结点m’的分量,并且n 

==> n’是Nb的转换边。 

(3)定义结点n’。由第2步的结果可得n’为 

正结点,n’必定属于某个发起者A’中的结点, 

设A’=Init[A’,B’,Na’,Nb’,Ta’,Tb’】, 

{Nb’}K ’是结点n’的分量。 

(4)比较串的内容。比较term(n’)和发起者串 

中相应的分量,可以得到A--A’,Nb=Nb’,无 

法得到B=B’,Na=Na’。 

因此,响应者无法达到对发起者身份的认证, 

协议可能存在重放攻击。 

2)秘密性分析 

协议中,所有消息均使用私钥加密形式,攻击 

者很容易从公开信息中获得公钥。所以,攻击者很 

可能获取加密的信息并进行伪造,这样不满足消息 

的完整性和秘密性。 

3对CCITT X.509协议的改进 

通过第二节的分析,针对协议存在的缺陷,对 

CCITT X.509协议进行改进,如下: 

M1 A B:{B,Ta,Na,{Xa,Ya}K }K 

M2 B A:{A,Tb,Na,Nb,{Xb,Yb}K }K 

M3 A B:{Nb}K 

选用公钥代替私钥加密使得消息更加安全,需 

要保密的消息Ya、Yb以及需要保证完整的消息 

Xa、Xb分别用私钥加密后放在加密消息内,使得 

消息更加安全。下面运用认证测试理论证明A和B 

能够互相认证: 

设有如下基本假设:(1)K ,K --I K。; 

(2)Na,Nb惟一产生;(3)Na≠Nb 

发起者的认证: 

(1) 构造测试分量。 发起者串 

Init[A,B,Na,Nb,Ta,Tb],由于Na惟一产 

生于节点n0,因此{B,Ta,Na,{Xa,Ya}K } 

K 是Na的测试分量,nO==>nl构造了Na在 

{B,Ta,Na,{Xa,Ya}K )K 中的输出测试。 

(2)应用认证测试规则l得到:存在正常结点m, 

m’∈C,{B,Ta,Na,{Xa,Ya}K }K 是结点m’ 

的分量,并且m=>+m’是Na的转换边。 

(3)定义结点m’。由第2步的结果可得m’为 

负结点,m’必定属于某个响应者B’中的结点, 

设B’=Init[A’,B’,Na’,Nb’,Ta’,Tb’], 

{B’,Ta’,Na’,{Xa’,Ya’}K ’}K ’是结 

点m’的分量。 

(4)比较串的内容。 比较term(m’)和 

响应者串中相应的分量,可以得到A=A’, 

B=B’,Na=Na’,Ta=Ta’。那么响应者串 

S=Resp[A,B,Na, ,Ta, ]。 

2 0 1 2.0 6 

固口圈圈l52 

WWW NSC Org.crl  I

2024年3月12日发(作者:抗贞芳)

CIlMplJ l’ R 

SliI:IJ薹毫1TY 

—n2满足n2 nl E Nc。 

(3)如果nl E Nc,且有n2二 nl,那么n2 

二>nl E Nc。 

由于Bundle是串空间的一个子集,用来表示 

个完整的协议,是一个图。 

1.2认证测试理论 

认证测试是在利用串空间模型建立协议状态和 

过程的基础上,通过构造不同的测试类型来验证协 

议的认证属性和特定消息的保密属性。 

定义6 在一个串空间(strand)∑下,称正则 

串的某个部分为测试。如果有: 

(1)a c t且t是n的分量。 

(2)t不是任何正规节点n’E∑的n’的真 

子项。 

则称t={h} 是a在节点n中的测试分量。 

定义7 如果nO为负n1为正,且a C 

term(n1),若存在a从n0接收并以新组件的形式 

从nl中发出,则称边n0二=> n1是关于a的转换 

边。 

定义8如果nO为正n1为负且a c term(n0), 

若存在a从n0发出并在节点nl以新组件的形式接 

收,则称边n0二=> n1是关于a的被转换边。 

定义9如果a只在n0的测试分量t中出现, 

且t={h} ,这里K K。(K。是攻击者密钥集合), 

则称边nO nl是a丛C中的输出测试边。 

定义10如果a只在n1的测试分量t中出现且 

与n0无关,t={h} ,这里K K。(K。是攻击 

者密钥集合),则称边nO nl是a丛C中的 

输入测试边。 

定义l 1如果t是对于负结点n中任何a的测 

试分量且t={h} ,这里K K。(K。是攻击者密 

钥集合),则称节点n是关于a的主动测试。 

认证测试方法: 

认证测试1令C为一个簇(bundle),nl E C, 

2 0 1 2.0 6 

51ll面目晒图 

WWW r3SCorg CO 

nO nl称为a在t中的出测试,则: 

(1)存在正常结点m0,ml E C,使得t是m 

的分量且m0二=> ml是a的变换边。 

(2)若a仅存在于ml的分量tl={hl} 。中,t1 

不是任何一个正常分量的真子集,且K K。, 

则存在一个负的正常结点,tl为该结点分量。 

认证测试2令C为一个簇(bundle),nl E C, 

n0==> n1为a在t’中的入测试,则存在正结点 

m0,ml∈C使得t’是ml的分量且m0==> ml 

是a的转换边。 

认证测试3令C为一个簇(bundle),n E C, 

n是t={h} 的一个主动测试,则存在一个正结点 

m E C且t是m的一个分量。 

2 CCITT X.509协议缺陷分析 

2.1 CCITT x.509协议 

C CITT X.509协议 包括两个主体:发起者 

和响应者,协议中的消息交换如下: 

M1 A--+B:A,{Ta,Na,B,Xa,{Ya}K }K 

M2 B--+A:B,{Tb,Nb,A,Na,Xb,{Yb}K }KB- 

M3 A--+B:A,{Nb}K 

此协议中,第1步,A把时间戳Ta、临时值 

Na、B的身份标识、消息Xa以及用B的公钥加密 

的消息{Ya}K }用自己的私钥加密后,连同自己的 

身份标识A一起发给B。第2步,同样地,B把自 

己的身份标识以及用自己的私钥加密的消息发给A。 

第3步,A把加密消息{Nb}K 和A发给B。 

协议目的:(1)A和B相互认证;(2)保证Xa 

和Xb的完整性;(3)保证Ya和Yb的秘密性。协 

议运行过程如图1所示。 

A M1 B 

nl● 

蛹l ] 

n20 

8 

M3 

8 

图】协议运行过程 

S ClJRl frY田  I兰.:—  

i,2 

(1)发起者 串Init[A,B,Na,Nb,Ta, 

T b】=<+A{T a N a B X a{Y a}K }K ~,一 

B{TbNbANaXb{Yb}K }K ~,+A{Nb}KA-1>,和 

某个s∈Init[A,B,Na,Nb,Ta,Tb]相关联的协议 

主体是A。 

(2)响应者串Resp[A,B,Na,Nb,Ta,Tb】=<一 

A{T a N a B X a{Y a}K }K ~,+ 

B{TbNbANaXb{Yb}K }K ~,一A{Nb}K >,和某 

个s∈Resp[A,B,Na,Nb,Ta,Tb]相关联的协议主 

体是B。 

2.2协议缺陷分析 

1)认证性分析 

设有如下基本假设:(1)K A-I,K B 1 Kp; 

(2)Na,Nb惟一产生;(3)Na≠Nb 

响应者的认证: 

(1)构造测试分量。 响应者串 

Resp[A,B,Na,Nb,Ta,Tb】,由于Nb惟一产生于 

节点ml,因此{Nb}K 是Nb的测试分量,ml 

==>m2构造了Nb在{Nb}K 中的输入测试。 

(2)应用认证测试规则2得到:存在正常结点 

n,n’∈C,{Nb}K 是结点m’的分量,并且n 

==> n’是Nb的转换边。 

(3)定义结点n’。由第2步的结果可得n’为 

正结点,n’必定属于某个发起者A’中的结点, 

设A’=Init[A’,B’,Na’,Nb’,Ta’,Tb’】, 

{Nb’}K ’是结点n’的分量。 

(4)比较串的内容。比较term(n’)和发起者串 

中相应的分量,可以得到A--A’,Nb=Nb’,无 

法得到B=B’,Na=Na’。 

因此,响应者无法达到对发起者身份的认证, 

协议可能存在重放攻击。 

2)秘密性分析 

协议中,所有消息均使用私钥加密形式,攻击 

者很容易从公开信息中获得公钥。所以,攻击者很 

可能获取加密的信息并进行伪造,这样不满足消息 

的完整性和秘密性。 

3对CCITT X.509协议的改进 

通过第二节的分析,针对协议存在的缺陷,对 

CCITT X.509协议进行改进,如下: 

M1 A B:{B,Ta,Na,{Xa,Ya}K }K 

M2 B A:{A,Tb,Na,Nb,{Xb,Yb}K }K 

M3 A B:{Nb}K 

选用公钥代替私钥加密使得消息更加安全,需 

要保密的消息Ya、Yb以及需要保证完整的消息 

Xa、Xb分别用私钥加密后放在加密消息内,使得 

消息更加安全。下面运用认证测试理论证明A和B 

能够互相认证: 

设有如下基本假设:(1)K ,K --I K。; 

(2)Na,Nb惟一产生;(3)Na≠Nb 

发起者的认证: 

(1) 构造测试分量。 发起者串 

Init[A,B,Na,Nb,Ta,Tb],由于Na惟一产 

生于节点n0,因此{B,Ta,Na,{Xa,Ya}K } 

K 是Na的测试分量,nO==>nl构造了Na在 

{B,Ta,Na,{Xa,Ya}K )K 中的输出测试。 

(2)应用认证测试规则l得到:存在正常结点m, 

m’∈C,{B,Ta,Na,{Xa,Ya}K }K 是结点m’ 

的分量,并且m=>+m’是Na的转换边。 

(3)定义结点m’。由第2步的结果可得m’为 

负结点,m’必定属于某个响应者B’中的结点, 

设B’=Init[A’,B’,Na’,Nb’,Ta’,Tb’], 

{B’,Ta’,Na’,{Xa’,Ya’}K ’}K ’是结 

点m’的分量。 

(4)比较串的内容。 比较term(m’)和 

响应者串中相应的分量,可以得到A=A’, 

B=B’,Na=Na’,Ta=Ta’。那么响应者串 

S=Resp[A,B,Na, ,Ta, ]。 

2 0 1 2.0 6 

固口圈圈l52 

WWW NSC Org.crl  I

发布评论

评论列表 (0)

  1. 暂无评论