TLS/SSL 协议详解 (5) 运用密码学原理构建安全信道3

来源:互联网 发布:网络作家村 编辑:程序博客网 时间:2024/06/13 02:54

保证数据的完整性

  到目前为止,我们后续的报文可以加密通信了。现在只要保证,后续加密的数据不被篡改就行了,或者说,SSL需要辨别数据是否被篡改的能力。

  这时候摘要就派上用场了。回顾第三章中,我们提到的摘要的特性:

    1:不同的数据,即使是一字节改变,其摘要的结果变化非常大。

    2:无论摘要的输入长度是多少,其输出是固定长度,对于MD5而言输出16字节,对于SHA1而言,输出20字节。

   3:无法从摘要的结果中得出原文。只有输入相同的明文数据经过相同的摘要算法才能得到相同的结果。

为了达到能够辨别数据被修改的能力,我们这加密:



好了,假设密文中某一字节被改变,那么接受者收到报文解密后,必定要么明文部分是错误的,不是”GET …”,要么摘要部分是错误的。此时接受者只要对明文做一次摘要,然后拿自己的结果和收到的摘要比较一下是否相同,就能判断数据是否被改动过。过程如下:


上述加密过程屏蔽了padding相关操作,但并不影响理解如何保证数据完整性。



原创粉丝点击