列表

详情


阅读下列说明,回答问题l至问题4,将解答填入答题纸的对应栏内。
【说明】
用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据的安全保密极其重要。以下过程给出了实现用户B对用户A身份的认证过程。
1.A->B:A
2.B->A:{B,Nb}pk(A)
3.A->B:h(Nb)
此处A和B是认证的实体,Nb是一个随机值,pk(A)表示实体A的公钥,{B,Nb}pk(A)表示用A的公钥对消息B娜进行加密处理,h(Nb)表示用哈希算法h对Nb计算哈希值。
【问题1】(5分)
认证与加密有哪些区别?
【问题2】(6分)
(1)包含在消息2中的“Nb”起什么作用?
(2)“Nb“的选择应满足什么条件?
【问题3】(3分)
 为什么消息3中的Nb要计算哈希值?
【问题4】(4分)
 上述协议存在什么安全缺陷?请给出相应的解决思路。

参考答案: 【问题1】
认证和加密的区别在于:加密用以确保数据的保密性,阻止对手的被动攻击,如截取,窃听等;而认证用以确保报文发送者和接收者的真实性以及报文的完整性,阻止对手的主动攻击,如冒充、篡改、重播等。
【问题2】
(1) Nb是一个随机值,只有发送方B和A知道,起到抗重放攻击作用。
(2) 应具备随机性,不易被猜测。
【问题3】
哈希算法具有单向性,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息。
 
【问题4】

存在重放攻击和中间人攻击的安全缺陷;针对重放攻击的解决思路是加入时间戳、验证码等信息;针对中间人攻击的解决思路是加入身份的双向验证。

详细解析:

1、认证又称鉴别或确认,它是证实某事是否名副其实或是否有效的一个过程,认证和加密的区别在于:加密用以确保数据的保密性,阻止对手的被动攻击,比如发送方给接收方发送信息[我是希赛教育王老师]为确保信息在传输过程中不被别人看到,可以对该信息进行加密;而认证用以确保报文发送者和接收者的真实性以及报文的完整性,比如发送方防止在发送上述信息时被别人篡改,就可以采用认证方法。

2、(1)Nb是一个随机值,用户B在验证用户A的身份时,首先会生成一个随机数,然后将该随机数和自己的身份信息一起用用户A的公钥加密发送给用户A,用户A接收后再将该随机数发送给用户B,因此,随机值Nb是验证的关键,并且该随机值只有发送方B和A知道,可以起到抗重放攻击作用。
(2)在验证身份时,该随机值是关键,不仅要求传输的安全性,而且还要保证该数值的随机性且不易被猜测,因为一旦被猜出来,就可能假冒用户A的身份。

3、哈希算法是具有单向性的,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息,可以保障Nb在传输过程中的保密性。

4、上述协议只有用户A的身份是经过验证的,攻击者可以重复发送第二个数据包给A消耗计算资源。攻击者可以截获第一个包,伪造A的身份,给B发送包声称自己是C,结果用户B会以用户C的公钥来加密,攻击者以C的私钥解密出数据包内容,得到Nb的产生信息。

上一题