试题四(共18分)
阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。
【说明】
用户的身份认证是许多应用系统的第一道防线、身份识别对确保系统和数据的安全保密及其重要,以下过程给出了实现用户B对用户A身份的认证过程。
1、 B->B:A
2、 B->A:{B,NB}pk(A)
3、 A->B:b(Nb)
此处A和B 是认证实体,Nb是一个随机值,pk(A)表示实体A的公钥、{B,Nb}pk(A)表示用A的公钥对消息BNb进行加密处理,b(Nb)表示用哈希算法h对Nb计算哈希值。
【问题1】(5分)
认证和加密有哪些区别?
【问题2】(6分)
(1)包含在消息2中的“Nb”起什么作用?
(2)“Nb”的选择应满足什么条件?
【问题3】(3分)
为什么消息3中的Nb要计算哈希值?
【问题4】(4分)
上述协议存在什么安全缺陷?请给出相应的解决思路。
尚大教育-软考学院-参考答案:
【问题1尚大教育-参考答案】(5分)
认证和加密的区别在于:加密用以确保数据的保密性,阻止对手的被动攻击,如截取,窃听等;而认证用以确保报文发送者和接收者的真实性以及报文的完整性,阻止对手的主动攻击,如冒充、篡改、重播等。
【问题2尚大教育-参考答案】(6分)
(1)Nb是一个随机值,只有发送方B和A知道,起到抗重放攻击作用。
(2)应具备随机性,不易被猜测。
【问题3尚大教育-参考答案】(3分)
哈希算法具有单向性,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息。
【问题4尚大教育-参考答案】(4分)
攻击者可以通过截获h(Nb)冒充用户A的身份给用户B发送h(Nb)。
解决思路:用户A通过将A的标识和随机数Nb进行哈希运算,将其哈希值h(A,Nb)发送给用户B,用户B接收后,利用哈希函数对自己保存的用户标识A和随机数Nb进行加密,并与接收到的h(A,Nb)进行比较。若两者相等,则用户B确认用户A的身份是真实的,否则认为用户A的身份是不真实的。
各省软考办 | ||||||||||