阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 ?【说明】 用户的身份认证是许多应用系统的第一道防线,身份识别对确保系统和数据 的安全保密极及其重要。以下过程给出了实现用户B对用户A身份的认证过程。 ?
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分) ?上述协议存在什么安全缺陷?请给出相应的的解决思路。
(中级) 信息安全工程师 2023-09-01
参考答案:
【问题1】加密用于确保数据的机密性,阻止信息泄露;
认证用于确保报文发送者和接收者身份的真实性以及报文的完整性,阻止如冒充、篡改等攻击。【问题2】(1)Nb是一个随机值,只有发送方B和A知道,起到抗重放攻击作用。
(2)应具备随机性,不易被猜测。【问题3】哈希算法具有单向性,经过哈希值运算之后的随机数,即使被攻击者截获也无法对该随机数进行还原,获取该随机数Nb的产生信息。
【问题4】攻击者可以通过截获h(Nb)冒充用户A的身份给用户B发送h(Nb)。
解决方案:用户A通过将A的标识和随机数Nb进行哈希运算,将其哈希值h(A,Nb)发送给用户B,用户B接收后,利用哈希函数对自己保存的用户标识A和随机数Nb进行hash运算,并与接收到的h(A,Nb)进行比较。若两者相等,则用户B确认用户A的身份是真实的,否则认为用户A的身份被冒充。
加载更多~