2.7. Traffic Flow Confidentiality (TFC) Padding (TFC-Padding)
Wie oben erwähnt, ist das Padding-Feld auf 255 Bytes Länge beschränkt. Dies wird im Allgemeinen nicht ausreichend sein, um Verkehrsmerkmale in Bezug auf Anforderungen an die Verkehrsfluss-Vertraulichkeit zu verbergen. Ein optionales Feld innerhalb der Nutzdaten wird speziell zur Erfüllung der TFC-Anforderung bereitgestellt.
Eine IPsec-Implementierung SOLLTE in der Lage sein, Verkehr durch Hinzufügen von Bytes nach dem Ende der Payload Data, vor dem Beginn des Padding-Feldes, zu padden. Dieses Padding (im Folgenden als TFC-Padding bezeichnet) kann jedoch nur hinzugefügt werden, wenn das Payload Data-Feld eine Spezifikation der Länge des IP-Datagramms enthält. Dies ist im Tunnelmodus immer wahr und kann im Transportmodus wahr sein, abhängig davon, ob das Protokoll der nächsten Schicht (z.B. IP, UDP, ICMP) explizite Längeninformationen enthält. Diese Längeninformationen ermöglichen es dem Empfänger, das TFC-Padding zu verwerfen, da die wahre Länge der Payload Data bekannt ist. (ESP-Trailer-Felder werden durch Rückwärtszählen vom Ende des ESP-Pakets lokalisiert.) Wenn TFC-Padding hinzugefügt wird, DARF das Feld, das die Spezifikation der Länge des IP-Datagramms enthält, NICHT modifiziert werden, um dieses Padding widerzuspiegeln. Für den Wert dieses Paddings werden durch diesen Standard keine Anforderungen festgelegt.
Prinzipiell hätten bestehende IPsec-Implementierungen diese Fähigkeit zuvor auf transparente Weise nutzen können. Da Empfänger jedoch möglicherweise nicht darauf vorbereitet waren, mit diesem Padding umzugehen, MUSS das SA-Verwaltungsprotokoll diesen Dienst aushandeln, bevor ein Sender ihn verwendet, um Rückwärtskompatibilität zu gewährleisten. In Kombination mit der in Abschnitt 2.6 oben beschriebenen Konvention über die Verwendung der Protokoll-ID 59 ist eine ESP-Implementierung in der Lage, Dummy- und echte Pakete zu erzeugen, die eine viel größere Längenvariabilität aufweisen, zur Unterstützung von TFC.
Implementierungen SOLLTEN lokale Verwaltungssteuerungen bereitstellen, um die Verwendung dieser Funktion auf SA-Basis zu ermöglichen. Die Steuerungen sollten es dem Benutzer ermöglichen anzugeben, ob diese Funktion verwendet werden soll, und auch parametrische Steuerungen für die Funktion bereitstellen.