NTS-KE is the TLS v1.3 based first phase of NTS used to acquire parameters for the following NTPv4 phase securely.
Due to its TLS v1.3 nature it is hard to watch in Wireshark.
There is an excellent one at https://github.com/vgiotsas/NTS-KE-Dissector. Only problems:
- it's for Draft version 28 - the protocol used is
4430
instead of the4460
from the final RFC 8915 - its showing the NTS Cookies as strings instead of hex strings
So - this repo contains the original version + my patches.
- make the TLS library used record the ephemeral keys and parameters
- depends on the NTS client used (my
chrony
used GnuTLS,ntpd
used OpenSSL)- sometimes you can use environment variable
SSLKEYLOGFILE
out-of-the box - if this doesn't work, create a shared library that instruments the TLS library used to record this file and then preload it via
LD_PRELOAD
- sometimes you can use environment variable
- after you did this, the TLS parameters are written to this file
- make Wireshark use this file as TLS
(Pre)-Master Secret Log File
underSettings | Protocols | TLS
- invoke the NTS client and record the whole TLSv1.3 handshake
- with the dissector loaded (put it into your Lua plugins directory, see
Help | About | Folders
), you can now dissect NTS-KE
Repository contains a nts-ke.pcapng
and tls-secrets.txt
to load into your Wireshark.