2017年上半年信息安全工程师下午案例分析试题五真题与答案(共10分)
阅读下列说明,回答问题1和问题2,将解答写在答题纸的对应栏内。
【说明】
在公钥体制中,每一用户U 都有自己的公开密钥PKu 和私钥SKu 。如果任意两个用户A 和B 按以下方式通信:
A 发给B 消息 [EpkB (m), A] 。
其中 Ek(m)代表用密钥 K 对消息 m 进行加密。
B 收到以后,自动向A 返回消息【EpkA(m),B 】,以使A 知道B 确实收到消息m 。
【问题 1】 (4分)
用户C 怎样通过攻击手段获取用户A 发送给用户B 的消息m 。
参考答案:用户C的攻击过程如下:
第1步:用户C截获消息:(EpkB(m),A)。
第2步:用户C纂改消息,并发给B:(EpkB(m),C)。
第3步:用户B接收消息,以为是C发出,返回消息:(EpkC(m),B),
第4步:用户C解密收到的消息,最后得到明文m。
参考解析:由于A发给B消息(EpkB(m),A),B收到该消息后就知道是A发出的,但消息中的A是明文,容易被篡改。
【问题 2】 (6 分)
若通信格式变为:
A 给B 发消息:EpkB(EskA(m), m , A)
B 给A 发消息: EpkA(EskB (m), m , B)
这时的安全性如何?请分析A , B 此时是如何相互认证并传递消息的。
参考答案:这种方式提高了安全性,实现了加密和认证的双重功能,并且能对信息传输进行确认。但存在重放攻击的可能。
A、B相互认证并传递消息的过程如下:
(1)A发送消息到B。A用私钥SKA对消息m加密,也就是进行数字签名;附上m和A信息后:最后用B的公钥PKB加密所有信息。
(2)B接收了A发过来的消息。先用B的私钥解密,再用A的公钥验证签名信息,确认和认证A的身份,并得到明文m。
同样,A也可以EpkA(EskB,(m),m,B),安全发送m消息,并验证B的身份。