Passa al contenuto principale

1. Introduction (Introduzione)

1. Introduction (Introduzione)

Implementare Transport Layer Security (TLS) [TLS] o Datagram TLS (DTLS) [DTLS] per dispositivi vincolati può essere impegnativo. Tuttavia, i recenti miglioramenti alla progettazione e all'implementazione degli algoritmi crittografici hanno reso il TLS accessibile ad alcuni dispositivi fortemente limitati (vedere ad esempio [RFC7925]).

Ricevere record protetti di grandi dimensioni può essere particolarmente difficile per un dispositivo con memoria operativa limitata. Le versioni TLS 1.2 [RFC5246] e precedenti consentono ai mittenti di generare record di 16384 ottetti, più qualsiasi espansione dovuta a compressione e protezione fino a 2048 ottetti (sebbene tipicamente tale espansione sia solo di 16 ottetti). TLS 1.3 riduce l'espansione consentita a 256 ottetti. Allocare fino a circa 18 KB di memoria per il testo cifrato supera la capacità di alcune implementazioni.

Un'API per cifrari Authenticated Encryption with Additional Data (AEAD) (vedere [RFC5116]) richiede che un intero record sia presente per decifrarlo e autenticarlo. Analogamente, altri cifrari non possono produrre dati autenticati finché l'intero record non è presente. L'elaborazione incrementale dei record espone gli endpoint al rischio di dati contraffatti.

L'estensione max_fragment_length [RFC6066] è stata progettata per consentire ai client vincolati di negoziare una dimensione di record inferiore. Tuttavia, max_fragment_length presenta diversi problemi di progettazione (vedere la sezione 3).

Questo documento definisce l'estensione record_size_limit (sezione 4). Questa estensione sostituisce max_fragment_length [RFC6066], che il presente documento depreca. L'estensione è valida per tutte le versioni del TLS.

Una dimensione di record protetto inferiore è solo uno dei molti problemi che un'implementazione vincolata potrebbe dover affrontare. L'estensione record_size_limit affronta solo il problema dell'allocazione di memoria; non affronta limiti di dimensione del codice, capacità di elaborazione o larghezza di banda.