当前位置:文档之家› 安全协议与标准复习资料—电子科大综合考试复习

安全协议与标准复习资料—电子科大综合考试复习

1,2,3步不能放在4步后,为什么?

1,2,3步不能放在4步后,为什么?

下图式中KA、KB分别是A、B与KDC共享的主密钥。协议的目的是由KDC为A、B安全地分配会话密钥KS,A在第②步安全地获得了KS,而第③步的消息仅能被B解读,因此B在第③步安全地获得了KS ,第④步中B向A示意自己已掌握KS,N2用于向A询问自己在第③步收到的KS是否为一新会话密钥,第⑤步A对B的询问作出应答,一方面表示自己已掌握KS,另一方面由f(N2)回答了KS的新鲜性。可见第④、⑤两步用于防止一种类型的重放攻击,比如敌手在前一次执行协议时截获第③步的消息,然后在这次执行协议时重放,如果双方没有第④、⑤两步的握手过程的话,B就无法检查出自己得到的KS是重放的旧密钥。

然而以上协议却易遭受另一种重放攻击,假定敌手能获取旧会话密钥,则冒充A向B重放第③步的消息后,就可欺骗B使用旧会话密钥。敌手进一步截获第④步B发出的询问后,可假冒A作出第⑤步的应答。进而,敌手就可冒充A使用经认证过的会话密钥向B发送假消息。

其中T是时戳,用以向A、B双方保证KS的新鲜性。A和B可通过下式检查T的实时性: |Clock-T|<Δt1+Δt2

其中Clock为用户(A或B)本地的时钟,Δt1是用户本地时钟和KDC时钟误差的估计值,Δt2是网络的延迟时间。

以上协议中由于T是经主密钥加密的,所以敌手即使知道旧会话密钥,并在协议的过去执行期间截获第③步的结果,也无法成功地重放给B,因B对收到的消息可通过时戳检查其是否为新的。

以上改进还存在以下问题: 方案主要依赖网络中各方时钟的同步,这种同步可能会由于系统故障或计时误差而被破坏。

如果发送方的时钟超前于接收方的时钟,敌手就可截获发送方发出的消息,等待消息中时戳接近于接收方的时钟时,再重发这个消息。这种攻击称为等待重放攻击。 抗击等待重放攻击的一种方法是要求网络中各方以KDC的时钟为基准定期检查并调整自己的时钟,另一种方法是使用一次性随机数的握手协议,因为接收方向发送方发出询问的随机数是他人无法事先预测的,所以敌手即使实施等待重放攻击,也可被下面的握手协议检查出来。

协议的具体含义如下:

① A将新产生的一次性随机数NA与自己的身份IDA一起以明文形式发往B,NA以后将与会话密钥KS一起以加密形式返回给A,以保证A收到的会话密钥的新鲜性。

② B向KDC发出与A建立会话密钥的请求,表示请求的消息包括B的身份、一次性随机数NB以及由B与KDC共享的主密钥加密的数据项。其中NB以后将与会话密钥一起以加密形式返回给B以向B保证会话密钥的新鲜性,请求中由主密钥加密的数据项用于指示KDC向A发出一个证书,其中的数据项有证书接收者A的身份、B建议的证书截止时间TB、B从A收到的一次性随机数。

③ KDC将B产生的NB连同由KDC与B共享的密钥KB加密的IDA‖KS‖TB一起发给A,其中KS是KDC分配的会话密钥,EKB[IDA‖KS‖TB]由A当作票据用于以后的认证。KDC向A发出的消息还包括由KDC与A共享的主密钥加密的IDB‖NA‖KS‖TB,A用这一消息可验证B已收到第①步发出的消息(通过IDB),A还能验证这一步收到的消息是新的(通过NA),这一消息中还包括KDC分配的会话密钥KS以及会话密钥的截止时间TB。

④ A将票据EKB[IDA‖KS‖TB]连同由会话密钥加密的一次性随机数NB发往B,B由票据得到会话密钥KS,并由KS得NB。NB由会话密钥加密的目的是B认证了自己收到的消息不是一个重放,而的确是来自于A。

如果A保留由协议得到的票据,就可在有效时间范围内不再求助于认证服务器而由以下方式实现双方的新认证:见下图

B在第①步收到票据后,可通过TB检验票据是否过时,而新产生的一次性随机数N′A、N′B则向双方保证了没有重放攻击。

以上协议中时间期限TB是B根据自己的时钟定的,因此不要求各方之间的同步。

该协议目的是在KDC提供的可信服务的帮助下, A和B实现双方认证和认证的密钥建立。如果协议中一次性随机数和密钥都是随机的,并有相同的规模,那么该协议会受到类型缺陷攻击。

该攻击中,M使用一次性随机数NA替换要建立的会话密钥Ks,因而B如果不能辨别类型的差别,就会受骗而接受NA。

类型缺陷通常因实现而定,如果协议的描述对于协议中出现的变量没有提供足够明确的类型信息,那么类型缺陷在实现中出现就是很平常的。

下面的协议使用公钥加密体制分配会话密钥:

AS:认证服务器(Authentication server)

其中SKAS、SKA 分别是AS和A的秘密钥,PKA、PKB分别是A和B的公开钥,E为公钥加密算法,AS是认证服务器(authentication server)。第①步,A将自己的身份及欲通信的对方的身份发送给AS。第②步,AS发给A的两个链接的数据项都是由自己的秘密钥加密(即由AS签字),分别作为发放给通信双方的公钥证书。第③步,A选取会话密钥并经自己的秘密钥和B的公开钥加密后连同两个公钥证书一起发往B。因会话密钥是由A选取,并以密文形式发送给B,因此包括AS在内的任何第3者都无法得到会话密钥。时戳T用以防止重放攻击,所以需要各方的时钟是同步的。

如何攻击?怎么样改进?

2004年文章提及的协议如下图所示:

我们给出的修改协议(两轮):

直接的基于口令的协议:

上面的口令协议中任何主体都没有执行密码操作,所以会带来两个严重的问题:

第一个问题是主机H所维护的口令文件的脆弱性。因为保存的口令文件可能会被Malice读取(现在Malice是内部人员,甚至是系统管理员)。在Malice拥有口令文件之后,他就拥有了所有用户的所有权限;于是他就能够通过伪装某个用户登陆系统,从而对该用户甚至整个系统造成不可检测的损害。很明显,在某个用户名下攻击系统降低了Malice被发现的危险。

基于口令的简单远程访问协议带来的第二个问题是,从U到H发送的口令是明文形式,这样该口令可能会被Malice窃听。该攻击称为在线口令窃听 (Online Password

Eavesdropping)。

Needham首先提出了一个非常有效并且十分简单的方法,该方法可以解决口令在主机中的安全存储问题:主机H可以使用某个单向函数来对口令编码,也就是说,记录(IDU, PU)→(IDU, f(PU))代替,f是一个单向函数,对该函数求逆是困难的。

协议: Needham 的口令认证协议

S/KEY协议( “一次性口令”系统):

遗憾的是,S/KEY对Lamport的原始协议的修改是件危险的事。我们注意到,在最好情况下,基于口令的远端访问协议所实现的也只是H识别U的身份。这样,H发送给U的计数器值可能事实上是由Malice发送的,或者已经被Malice修改过的。

对S/KEY协议的攻击:

后果: Malice获得了fc-2(PU), 在下一次会话时, 他就能够以用户U的名义登录了。

规模不大的口令空间就使得离线字典攻击(Offline Dictionary Attack)成为可能。在这种攻击中,Malice使用 搜索一个包含不好口令的字典来匹配PU 。因为该攻击是离线进行的,所以它可以是自动的,并能快速执行。这里我们应该注意Lamport的一次性口令机制也不能抗击离线口令攻击:Malice可以窃听当前的状态值i和 ,并进而展开字典搜索攻击。

加密的密钥交换(EKE—Encrypted Key Exchange)。

EKE协议不仅可以抗击对于口令的在线窃听,还可以抗击离线字典攻击。本质上,EKE机制中使用的技术是概率加密(Probabilistic Encryption)。可以认为该技术是对口令进行了加盐操作。

()UfP()iUfP• 前提:用户U和主机H共享口令PU;系统已经预先协商的对称加密算法,K()表示以K为密钥的对称加密;U和H也已经协商的非对称加密体制,EU表示以U为密钥的非对称加密。

• 目标 :U和H完成双方实体认证,并协商一个共享密钥。

EKE协议的独创性在于前两个步骤。在步骤1,密文组PU(EU)是用口令PU作为密钥,对一次性随机串EU加密得到的。在步骤2,双重加密的密文组 PU (EU(K))中包含的是另一个一次性随机数:会话密钥K。由于通常PU是容易记忆的, PU是小空间当中的一个值,所以这两个随机串EU和K应该比PU的规模大。这样,消息1和消息2的密文组就能够通过和PU统计独立的方式把PU隐藏起来。

我们必须强调,该协议中,正是这一次性EU的随机性才起到了“加盐操作”的作用。如果这个“公钥”不是一次性的,EKE协议的独特功能就会完全丧失。

如果消息行3,4,5中加密的一次性随机数NU、NH是随机生成的并且有足够大的规模(例如,比会话密钥K的规模大),那么这些随机数就进一步隐蔽了会话密钥K,其中的道理和前两条消息隐蔽PU相同。这样,PU依旧保持着和EKE协议中任何消息的统计独立性。

口令PU和协议运行时传输的消息的这种统计独立性,意味着该口令对于窃听者的安全是一种信息论意义上的安全。所以被动窃听者不能运用协议消息对PU实施离线的口令攻击。攻击该协议的其它可能方法要么对PU直接猜测,要么通过修改协议消息实施主动攻击。考虑猜测攻击没有多大的意义,因为不能阻止这种攻击方法,然而幸好,这种方法通常是无效的。而主动攻击,则会以很大的概率被诚实的协议参与者检测到,并果断废止协议的运行。

在步骤1中U对随机公钥的加密以及步骤2中H对随机会话密钥的加密,就是我们所称的对PU的“加盐操作”。正是不断变化的“加盐操作”使得攻击者一无所获。因此,EKE协议中前面的两行消息提供一种具独创性的技术珍品。消息3,4,5实际上构成了传统上基于问-答机制的双方认证协议。事实上,这几部分可以用基于对称密钥的双方认证协议结构代替。

请指出下图存在的三种攻击方式:冒充攻击、中间人攻击和在线口令猜测攻击。

其中,在线口令猜测攻击示意图如下:

RSA-OAEP可抗击适应性选择密文攻击

算法 RSA最优非对称加密填充(RSA-OAEP)

加密操作原语类型:

RSAES-OAEP-ENCRYTP((n, e), M, L)

可选项:Hash 哈希函数(hLen表示哈希函数输出的八元组的长度)

MGF 掩模产生函数。

输入:(n, e) 接收方的RSA公钥(k表示以八元组计算的RSA合模的长度)。

M 待加密的消息,以八元组为单位计算的长度为mLen,满足mLenk-2hLen-2.

L 可选的附加标签,默认值为空串。

输出:C 密文,一个长度为k的八元组串。

出错:“message too long”, “label too long”。

具体过程:

(1)长度检查

a. 如果L大于哈希函数的输入限制,则输出“label too long”,并停止。

b. 如果mLen>k-2hLen-2,则输出“message too long” ,并停止。

(2)EME-OAEP编码

(3)RSA加密

a. 将八元组串用OS2IP原语转换成相应的整数代表m:m= OS2IP(EM)

b. 利用RSAEP加密原语和RSA公钥(n, e)加密m,产生一个整数形式的密文表示c:

相关主题