有趣的密码问题:
一天在一家图书馆的电脑上发现了政府的一个机密文件,一个侦探调查到有一个人被记录曾用过政府的一台电脑,并总出入该图书馆,但是却没有足够的证据证明该人为密文的盗窃者,该侦探了解到该文件的加密算法非常强大可抗击各种攻击,并调查了该政府的内部网络协议,政府中有一台服务器连接各个政府内部电脑,形成一个内网。该服务器上存储着所有电脑的密钥,其每台主机上存有该主机的密钥。还听到一个用过该电脑的人说曾在这台电脑上向B用户请求发送信息,并始终没有得到服务器的相应。
网络协议如下:A请求将密文发给B,通过一下步骤:
A : ( A[A用户ID], B[B用户ID], EKa(R)[R为随机数] ) -> 服务器
服务器 : EKb(R) -> A
A : ( EKb(R), ER(M) ) -> B
B : 用Kb解密EKb(R),得到R,解密ER(M)得到密文。
思考角度:从后向前,若攻击者想要得到密文,必须要知道随机数R,而攻击者在一台电脑上可获得密文和这台电脑的密钥,所以他可以利用协议中的漏洞没有身份认证进行攻击,攻击主要过程就是A通过结果到的EKb(R),假冒B的身份向服务器发送消息(B, A, EKb(R)),服务器便会将EKa(R)发给假冒B的A,这样A就可以通过密钥Ka解开EKa(R),得到R,并解开密文ER(M) ,得到明文
这道题描述的有些粗略,嘿,主要就是说明没有身份认证的协议是不可靠的,所以,一个加密算法的可靠性不是这个网络通信的全部,网络协议对于加密算法的应用也是很重要的,希望能给大家一些启示。(有不同见解,愿闻其详,嘿,bye)
原文地址:http://www.cnblogs.com/zhhuzby/p/4002201.html