You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment, Teleport does not allow you to select the ciphers, key exchange algorithms, or MAC algorithms that the client and/or server support.
This is typically not an problem, as the Go SSH library supports sensible defaults and most users would not benefit from changing the defaults. However, in certain situations it would be clearly advantageous to control this:
If a security vulnerability in the cipher, key exchange algorithm, or MAC is discovered, Teleport users have to wait for Teleport developers (and/or Go developers) to update Teleport and then redeploy.
In certain restricted environments where only approved cryptographic primitives can be used, Teleport is a non-starter.
Proposed Solution
To support both sensible defaults as well as configurability, Teleport should add a optional configuration section that allows defining the cipher, key exchange algorithm, and MAC used on the server initially (and potentially follow up with allowing you to configure the client at some time in the future). If either of the three are specified, we override the sensible defaults.
At the time of writing, the SSH library we use, supports the following ciphers:
The changes would be made to the teleport section of the file configuration. All three fields (ciphers, kex_algos, and mac_algos) are optional and are a list of strings. If any of the three fields is provided, at least one value should exist for it. If no value is provided, the default values that the Go SSH library provides will be used.
Problem
At the moment, Teleport does not allow you to select the ciphers, key exchange algorithms, or MAC algorithms that the client and/or server support.
This is typically not an problem, as the Go SSH library supports sensible defaults and most users would not benefit from changing the defaults. However, in certain situations it would be clearly advantageous to control this:
Proposed Solution
To support both sensible defaults as well as configurability, Teleport should add a optional configuration section that allows defining the cipher, key exchange algorithm, and MAC used on the server initially (and potentially follow up with allowing you to configure the client at some time in the future). If either of the three are specified, we override the sensible defaults.
At the time of writing, the SSH library we use, supports the following ciphers:
The following key exchange algorithms:
The following MACs:
Changes to configuration
The changes would be made to the
teleport
section of the file configuration. All three fields (ciphers
,kex_algos
, andmac_algos
) are optional and are a list of strings. If any of the three fields is provided, at least one value should exist for it. If no value is provided, the default values that the Go SSH library provides will be used.Examples
A few sample configurations:
teleport:
Changes in code
The server needs to be updated to propagate configuration to Config in ServerConfig.
Changes to documentation
We should document the these additions fields and possible values for them.
The text was updated successfully, but these errors were encountered: