在RFC 5246中,
第6.2.2章:
记录压缩和解压缩:(第21页)
以下TLSCompressed.fragment的长度(以字节为单位)。长度不得超过2^14 + 1024。
第6.2.3章:
记录有效载荷保护:(第21页)
以下TLSCiphertext.fragment的长度(以字节为单位)。长度不得超过2^14 + 2048。
在这个上下文中,2^14表示TLSPlaintext.fragment
的长度。1024和2048是什么意思?
发布于 2019-01-03 10:40:59
这些数字并不“意味着”任何东西,它们只是被选择为明智的数字。
对于压缩,下面给出了如下原因:
压缩必须是无损的,并且不能将内容长度增加超过1024字节。
由于内容最多可以是2^14字节,压缩版本最多可以是2^14 + 1024字节。如果TLS端点接收到一个太大的TLSCompressed片段,则允许(甚至预期)终止连接,因为发送方正在向其发送无效数据。这种限制允许TLS端点知道在最坏情况下支持连接所需的最大内存量。
对于TLSCiphertext,最多加密2^14 + 1024字节的有效负载。结果会有一些开销(nonce、身份验证标记、填充),这取决于加密方法。这个子句保证无论加密方法是什么,开销都不会超过1024字节。(实际上,这里的措辞并不保证当有效负载小于2^14字节时的开销限制。在第6.2.3.3节中对AEAD密码有明确的保证,但对其他密码没有明确的保证,这可能是一个疏忽。)
https://security.stackexchange.com/questions/200723
复制相似问题