Какой контент входит в размер Record Size Limit (TLS 1.3)

Читаю RFC и никак не могу понять какой максимальный размер пользовательских данных можно уместить в Record TLS 1.3...
В спецификации указан лимит (1 << 14) + 1 (16385 байт). Но у нас ещё есть заголовок записи длиной в 5 байт, 1 байт для определения типа payload-а в конце сообщения, и 16 байт gcm_auth_tag.

Подскажите пожалуйста, вот эти 5 + 1 + 16 входят в лимит 16385? Или входят только 1 + 16, или только 1, или ничего не входит и весь лимит расчитан под данные приложения? Пишу свою реализацию и надо понимать какой максимальный буффер выделять под record.


Ответы (1 шт):

Автор решения: Pak Uula

Лимит в 16384 байтов относится к открытому тексту (RFC 8446, стр. 79). Реализация может добавлять к открытому тексту выравнивание произвольной длины и необходимые для алгоритма шифрования дополнительные данные. Итоговый размер записи не может превышать 2^14 + 256 байтов (RFC 8446, стр. 81)

length: The length (in bytes) of the following TLSCiphertext.encrypted_record, which is the sum of the lengths of the content and the padding, plus one for the inner content type, plus any expansion added by the AEAD algorithm. The length MUST NOT exceed 2^14 + 256 bytes.

→ Ссылка