4. Exporter Definition (Exporteur-Definition)
4. Exporter Definition (Exporteur-Definition)
Die Ausgabe des Exporteurs ist für die Verwendung in einem einzelnen Bereich vorgesehen, der mit der TLS-Sitzung, dem Label und dem Kontextwert verbunden ist.
Der Exporteur nimmt drei Eingabewerte:
-
eine eindeutige Label-Zeichenfolge,
-
einen pro Assoziation bereitgestellten Kontextwert durch die Anwendung, die den Exporteur verwendet, und
-
einen Längenwert.
Wenn kein Kontext bereitgestellt wird, berechnet er:
PRF(SecurityParameters.master_secret, label,
SecurityParameters.client_random +
SecurityParameters.server_random
)[length]
Wenn ein Kontext bereitgestellt wird, berechnet er:
PRF(SecurityParameters.master_secret, label,
SecurityParameters.client_random +
SecurityParameters.server_random +
context_value_length + context_value
)[length]
Wobei PRF die für die Sitzung verwendete TLS-Pseudozufallsfunktion (Pseudorandom Function) ist. Die Ausgabe ist eine pseudozufällige Bitfolge der Länge length Bytes, die aus dem master_secret generiert wird. (Diese Konstruktion ermöglicht die Interoperabilität mit älteren Exporteur-Typ-Konstruktionen, die keine Kontextwerte verwenden, z.B. [RFC5281]).
Labels haben hier die gleiche Definition wie in TLS, d.h. eine ASCII-Zeichenfolge ohne abschließendes NULL. Label-Werte, die mit "EXPERIMENTAL" beginnen, KÖNNEN für private Nutzung ohne Registrierung verwendet werden. Alle anderen Label-Werte MÜSSEN über Specification Required wie von RFC 5226 [RFC5226] beschrieben registriert werden. Beachten Sie, dass Exporteur-Labels das Potenzial haben, mit vorhandenen PRF-Labels zu kollidieren. Um dies zu verhindern, SOLLTEN Labels mit "EXPORTER" beginnen. Dies ist kein MUSS, da es bestehende Verwendungen gibt, die Labels haben, die nicht mit diesem Präfix beginnen.
Der Kontextwert ermöglicht es der Anwendung, die den Exporteur verwendet, ihre eigenen Daten mit der TLS-PRF für die Exporteur-Ausgabe zu mischen. Ein Beispiel, wo dies nützlich sein könnte, ist eine Authentifizierungseinstellung, bei der die Client-Anmeldeinformationen für mehr als eine Identität gültig sind; der Kontextwert könnte dann verwendet werden, um die erwartete Identität in das Schlüsselmaterial zu mischen und so Substitutionsangriffe zu verhindern. Die Länge des Kontextwerts wird als vorzeichenlose 16-Bit-Größe (uint16; siehe [RFC5246], Abschnitt 4.4) kodiert, die die Länge des Kontextwerts darstellt. Der Kontext KANN eine Länge von Null haben. Da der Kontextwert über die PRF mit dem master_secret gemischt wird, ist es sicher, vertrauliche Informationen in den Exporteur zu mischen, vorausgesetzt, das master_secret wird dem Angreifer nicht bekannt sein.