Zum Hauptinhalt springen

1. Introduction (Einführung)

1. Introduction (Einführung)

Die Implementierung von Transport Layer Security (TLS) [TLS] oder Datagram TLS (DTLS) [DTLS] für eingeschränkte Geräte kann herausfordernd sein. Jüngste Verbesserungen bei Entwurf und Implementierung kryptographischer Algorithmen haben TLS jedoch für einige stark begrenzte Geräte zugänglich gemacht (siehe beispielsweise [RFC7925]).

Das Empfangen großer geschützter Datensätze kann für ein Gerät mit begrenztem Arbeitsspeicher besonders schwierig sein. TLS-Versionen 1.2 [RFC5246] und früher erlauben Absendern, Datensätze mit 16384 Oktetten Größe zu erzeugen, zuzüglich beliebiger Expansion durch Kompression und Schutz bis zu 2048 Oktetten (typischerweise beträgt diese Expansion jedoch nur 16 Oktetten). TLS 1.3 reduziert die zulässige Expansion auf 256 Oktetten. Die Zuweisung von bis zu 18 KB Speicher für Geheimtext übersteigt die Kapazität einiger Implementierungen.

Eine API für Authenticated Encryption with Additional Data (AEAD)-Chiffren (siehe [RFC5116]) erfordert, dass ein vollständiger Datensatz vorliegt, um ihn zu entschlüsseln und zu authentifizieren. Ebenso können andere Chiffren keine authentifizierten Daten erzeugen, bevor der gesamte Datensatz vorliegt. Inkrementelle Verarbeitung von Datensätzen setzt Endpunkte dem Risiko gefälschter Daten aus.

Die Erweiterung max_fragment_length [RFC6066] sollte eingeschränkten Clients ermöglichen, eine geringere Datensatzgröße auszuhandeln. max_fragment_length leidet jedoch unter mehreren Designproblemen (siehe Abschnitt 3).

Dieses Dokument definiert die Erweiterung record_size_limit (Abschnitt 4). Diese Erweiterung ersetzt max_fragment_length [RFC6066], die dieses Dokument als veraltet markiert. Die Erweiterung gilt für alle TLS-Versionen.

Eine kleinere Größe geschützter Datensätze ist nur eines von vielen Problemen, die eine eingeschränkte Implementierung angehen muss. Die Erweiterung record_size_limit befasst sich nur mit dem Problem der Speicherzuweisung; sie befasst sich nicht mit Grenzen der Codegröße, Verarbeitungskapazität oder Bandbreite.