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