6.3.2 模型分析

如果甲乙双方进行明文消息通讯,但要求能够鉴别消息在传输过程中是否被篡改,就可参照如图6-5所示的模型。当然,此模型对MD和SHA算法同样适用。

如图所示,甲乙双方分别作为消息发送者与接收者。我们也可以把甲方看做软件发布厂商,把乙方看做软件使用客户。甲方向乙方发送一则消息,需要经历以下几个步骤:

1)甲方公布消息摘要算法。这个算法可以被其他人获取,包括监听者。

2)甲方对待发送的消息做摘要处理,并获得摘要信息。

3)甲方向乙方发送摘要信息。这个数字指纹可以被其他人获取,包括监听者。

4)甲方向乙方发送消息。该消息可以是明文,有可能被监听者篡改。

5)乙方获得消息后,使用甲方提供的消息摘要算法对其做摘要处理,获得数字指纹并对比甲方传递过来的数字指纹是否匹配。

figure_0182_0042

图 6-5 基于MD/SHA算法的消息传递

如果两个数字指纹相同则说明消息来源于甲方,否则,甲方传递的消息很可能在传递途中被篡改。

用这个流程图来分析并校验数据的完整性,确定下载到的文件是不是有效的再合适不过了。一般小型的网络交互应用都可参照此模型设计,完成消息的发送与回复。