4. TLS-Erweiterungen für ECC
In dieser Spezifikation werden zwei TLS-Erweiterungen definiert: (i) die Supported Elliptic Curves Extension (Unterstützte Elliptische Kurven Erweiterung) und (ii) die Supported Point Formats Extension (Unterstützte Punktformate Erweiterung). Diese ermöglichen die Aushandlung der Verwendung bestimmter Kurven und Punktformate (z. B. komprimiert vs. unkomprimiert) während eines Handshakes, der eine neue Sitzung beginnt. Diese Erweiterungen sind besonders relevant für eingeschränkte Clients, die möglicherweise nur eine begrenzte Anzahl von Kurven oder Punktformaten unterstützen. Sie folgen dem in [RFC4366] skizzierten allgemeinen Ansatz; die Nachrichtendetails sind in Abschnitt 5 spezifiziert. Der Client zählt die von ihm unterstützten Kurven und die Punktformate, die er parsen kann, auf, indem er die entsprechenden Erweiterungen in seine ClientHello-Nachricht aufnimmt. Der Server zählt ebenfalls die Punktformate auf, die er parsen kann, indem er eine Erweiterung in seine ServerHello-Nachricht aufnimmt.
Ein TLS-Client, der ECC-Cipher-Suites in seiner ClientHello-Nachricht vorschlägt, SOLLTE (SHOULD) diese Erweiterungen aufnehmen. Server, die ECC-Cipher-Suites implementieren, MÜSSEN diese Erweiterungen unterstützen, und wenn ein Client diese Erweiterungen verwendet, DÜRFEN Server KEINE ECC-Cipher-Suite aushandeln (MUST NOT), es sei denn, sie können den Handshake unter Berücksichtigung der vom Client angegebenen Kurvenauswahl abschließen. Dies eliminiert die Möglichkeit, dass ein ausgehandelter ECC-Handshake später abgebrochen wird, weil ein Client nicht in der Lage ist, den EC-Schlüssel des Servers zu verarbeiten.
Der Client DARF diese Erweiterungen NICHT in die ClientHello-Nachricht aufnehmen (MUST NOT), wenn er keine ECC-Cipher-Suites vorschlägt. Ein Client, der ECC-Cipher-Suites vorschlägt, kann sich dafür entscheiden, diese Erweiterungen nicht aufzunehmen. In diesem Fall kann der Server jede der in Abschnitt 5 aufgeführten elliptischen Kurven oder Punktformate frei wählen. Dieser Abschnitt beschreibt auch die Struktur und Verarbeitung dieser Erweiterungen im Detail.
Im Falle einer Sitzungswiederaufnahme ignoriert der Server einfach die Supported Elliptic Curves Extension und die Supported Point Formats Extension, die in der aktuellen ClientHello-Nachricht erscheinen. Diese Erweiterungen spielen nur bei Handshakes eine Rolle, bei denen eine neue Sitzung ausgehandelt wird.