メインコンテンツまでスキップ

1. Introduction (はじめに)

1. Introduction (はじめに)

制約の強いデバイス向けに Transport Layer Security (TLS) [TLS] または Datagram TLS (DTLS) [DTLS] を実装することは難しい場合がある. しかし, 暗号アルゴリズムの設計と実装の最近の改善により, 極めて限られたリソースのデバイスでも TLS が利用可能になった例がある (例えば [RFC7925] を参照).

動作メモリが限られたデバイスにとって, 大きな保護されたレコードを受信することは特に困難である. 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 のすべてのバージョンで有効である.

より小さい保護されたレコードサイズは, 制約の強い実装が対処しなければならない多くの問題の 1 つにすぎない. record_size_limit 拡張はメモリ割り当ての問題にのみ対処し, コードサイズ, 処理能力, 帯域容量の制限には対処しない.