1. Introduction (简介)
1. Introduction (简介)
在受限设备上实现 Transport Layer Security (传输层安全, TLS) [TLS] 或 Datagram TLS (数据报 TLS, DTLS) [DTLS] 可能具有挑战性. 然而, 密码算法在设计与实现上的近期改进已使 TLS 能够用于某些资源极其有限的设备 (例如见 [RFC7925]).
对于工作内存有限的设备, 接收大型受保护记录 (protected record) 尤其困难. TLS 1.2 [RFC5246] 及更早版本允许发送方生成 16384 字节大小的记录, 加上压缩与保护带来的最多 2048 字节扩展 (尽管通常该扩展仅为 16 字节). TLS 1.3 将允许的扩展缩减为 256 字节. 为密文分配最多约 18K 内存超出了某些实现的能力.
带附加数据的认证加密 (Authenticated Encryption with Additional Data, AEAD) 密码套件 (见 [RFC5116]) 的 API 要求完整记录到达后才能解密并认证. 同样, 其他密码套件在完整记录到达之前也无法产出已认证数据. 对记录进行增量处理会使端点面临伪造数据的风险.
max_fragment_length 扩展 [RFC6066] 旨在使受限客户端能够协商更小的记录大小. 然而, max_fragment_length 存在若干设计问题 (见第 3 节).
本文档定义 record_size_limit 扩展 (第 4 节). 该扩展取代 max_fragment_length [RFC6066], 本文档同时废弃后者. 该扩展适用于所有版本的 TLS.
更小的受保护记录只是受限实现可能需要解决的众多问题之一. record_size_limit 扩展仅解决内存分配问题, 并不解决代码体积, 处理能力或带宽容量方面的限制.