有谁能解释一下为什么在PKCS7 https://www.rfc-editor.org/rfc/rfc2315页面22中声称的填充物之间有区别呢?
01
02 02
03 03 03 ..。
以及在TLS 1.2 https://www.rfc-editor.org/rfc/rfc5246页面24或http://www.isg.rhul.ac.uk/~kp/mee-comp.pdf页面1中使用的填充-这是
00
01 01
02 02 02
03 03 03 ..。
为什么TLS的人不使用PKCS7版本的填充?
发布于 2015-05-08 22:20:05
填充没有什么不同--实际上是PKCS7填充。不同之处在于,数据以一个1字节字段结尾,该字段表示填充的长度。因此,你看到的是:
MAC Padding PadLen
xx xx xx .. xx | 05 05 05 05 05 | 05这并不是TLS 1.2所独有的--如果您仔细研究一下RFCs,您会发现TLS 1.1、TLS 1.0、SSL3.0也有相同之处。原因似乎是遗留兼容性。
SSL2.0规范并不十分清楚如何(或什么)应用填充,但填充长度本身作为包中的字段以明文形式给出。由于这将导致填充长度与填充本身不同,因此可以看到03 03 03的填充长度记录为03,给出了完整的03 03 03 03值。也就是说,SSL2.0不使用PKCS7 7风格的填充,而是使用随机填充,例如A3 89 03 03。通过将相同的填充方法引入SSL3.0(以及稍后的TLS),可能会更容易地适应现有代码。
因此,答案是:只要正确检查填充的所有字节,TLS 1.2中的额外字节就没有安全好处或危害。其原因在于遗留支持和在旧堆栈之上实现新协议的易用性。
https://security.stackexchange.com/questions/88839
复制相似问题