The Goal
The goal is to gradually discourage and eventually deprecate support for peers with SRT version prior to v1.3.0.
SRT library versions prior to v1.3.0 use Handshake version 4. Newer SRT versions use Handshake version 5.
HSv4 has certain disadvantages compared to HSv5.
Security Concerns of HSv4
#1977. HSv5 accepts HSv4 connection with a bad passphrase.
HSv4 does not have the information about the key to be used (Key Material message as HS extension). Instead, a separate control packet with the key is expected to arrive later on. Therefore, there is no way to determine if the peer has the correct key at the stage of handshaking to reject the connection.
Maintenance Burden.
- Compatibility tests with SRT versions prior to 1.3.0 are required to maintain the functionality.
- There is no proper description of the HSv4 procedure. Only UDT and SRT implementation-defined.
- It would be nice to clean up the code related to the handshaking procedure. Rewriting/cleaning would require changing/touching the HSv4 code as well. Hence an increased maintenance burden.
Rough Roadmap
- SRT v1.6.0: raise
SRTO_MINVERSION to 1.3.0. Older peers are still supported, but the option value has to be explicitly set to allow this.
- SRT v1.7.0: remove support for HSv4 (hence SRT versions prior to v1.3.0);
SRTO_MINVERSION minimum allowed value set to 1.3.0.
Related Task
The Goal
The goal is to gradually discourage and eventually deprecate support for peers with SRT version prior to v1.3.0.
SRT library versions prior to v1.3.0 use Handshake version 4. Newer SRT versions use Handshake version 5.
HSv4 has certain disadvantages compared to HSv5.
Security Concerns of HSv4
#1977. HSv5 accepts HSv4 connection with a bad passphrase.
HSv4 does not have the information about the key to be used (Key Material message as HS extension). Instead, a separate control packet with the key is expected to arrive later on. Therefore, there is no way to determine if the peer has the correct key at the stage of handshaking to reject the connection.
Maintenance Burden.
Rough Roadmap
SRTO_MINVERSIONto 1.3.0. Older peers are still supported, but the option value has to be explicitly set to allow this.SRTO_MINVERSIONminimum allowed value set to 1.3.0.Related Task
SRTO_SENDERsocket option.