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

保证数据的完整性

 

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

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

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

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

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

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

 

 

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

 

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

上面是典型的 MAC-then-Encrypted 的模式,还有 Encrypt-and-Mac,例如AES-GCM,详见:https://blog.csdn.net/mrpre/article/details/79324505

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值