参考答案:
【问题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的产生信息。