题目描述
“我们面临巨大压力,福尔摩斯”,Lestrade侦探看起来有些紧张。“我们已经了解到有几份敏感政府文件保存在伦敦的外国大使馆的计算机里。通常情况下,这些文件只存在于几台满足最高安全要求的计算机上。然而它们必须通过连接到所有政府计算机的互联网进行传送,但是网络上的信息都被我们最好的密码学家验证过的算法所加密。即便是NSA和KGB也无法攻克它。目前我们发现这些文件已经被一些小国外交官掌握,不知道这是怎么发生的”。
“但是你怀疑是某些人做的,对吗?”福尔摩斯说。
“是的,我们做了例行调查。其中有个人可以合法访问其中一台政府计算机,并且频繁和大使馆的外交官联系。但是他有权访问的计算机并不是存储文件的。他很可疑,但是我们不知道他是如何获得这些文件的,即便他可以获得加密后的文件,他也无法解密。”“嗯,请描述-一下网络上的通信协议。”福尔摩斯睁开眼睛,以证明自己一直听着Lestrade侦探的话,尽管看起来睡眼蒙胧。
“协议是这样的,网络中每个节点N都被分派了一个独特的密钥Kn,这个密钥保证节点和服务器之间的安全通信。所有的密钥也被存储在服务器上。用户A希望发送秘密信息M给用户B,发起如下的协议:
(1) A生成一个随机数R并把自己的名字A,目标B和E (Ka, R)发送到服务器。
(2)服务器把E (Kb, R)发给A。
(3) A把E(R, M)和E(Kb, R)发给B。
(4)B知道K,所以解密E (Kb,R)获得R,随后使用R来解密M。
每个信息被发送时都会生成一个随机数。我承认那个人可以截获高度保密节点之间的通信,但是我认为他无法解密。”
“我认为你找到了想要的人,这个协议并不安全,因为并不对发送请求的人进行认证。显然协议的设计者认为发送E(Kx,R)隐含认证X用户为发送者,因为只有X (和服务器)知道Kx。但是E(Kx, R)可以被截获并延时传播。一旦你知道了漏洞存在的地方,你就可以通过监控疑犯的计算机使用情况获得足够的证据。很有可能他是这样做的,在获得E (Ka, R)和E (R, M)后,疑犯,我们称他为Z,会假装自己是A,并…”完成福尔摩斯的句子。
答案简析
1)发送给服务器自己的名字A,目标Z(他自己),E(Ka,R)。
2)服务器会返回E(Kz,R)。
3)Z知道Kz,所以他可以用Kz解密出R,用R解密E(R,M)来获得密文M。