DTLS 1.3: finish implementation, add connection_id extension

This commit adds support for the connection_id extension, adds a trace
that uses DTLS 1.3 connection IDs, and adds parsing for the DTLS 1.3
unified header, in case connection IDs are not used.

In case connection IDs are used, parsing of the DTLS 1.3 unified header
is skipped. This is due to the fact, that the header then contains a
variable length element, with the length of the element not given in the
header. Instead, the length is given in the client/server hello message
of the opposite side of the connection (which we might have missed).

Furthermore, parsing is not of a high importance, since we are not
passing the connection ID, or any of the other parsed values of the
unified header into scriptland.
This commit is contained in:
Johanna Amann 2023-05-10 11:08:26 +01:00
parent d6c4c510ea
commit a8e84c6192
12 changed files with 188 additions and 19 deletions

7
NEWS
View file

@ -207,6 +207,10 @@ New Functionality
- The ``ip4_hdr`` record was extended by ``DF``, ``MF``, ``offset`` and ``sum``
to aid packet-level analysis use-cases.
- Zeek now supports parsing the recently standardized DTLS 1.3. Besides the protocol
messages being correctly parsed and raising the typical SSL/TLS events, the biggest
visible change is the newly added ``ssl_extension_connection_id`` event.
Changed Functionality
---------------------
@ -306,6 +310,9 @@ Changed Functionality
- Libpcap based packet source now avoids the 32bit wraparound of link and
dropped packet counters as reported by users.
- The ``ssl_history`` field of ``ssl.log`` now correctly logs Hello Retry Request
messages. Before, they were incorrectly logged as Server Hellos.
Removed Functionality
---------------------